Перейти к основному содержанию
На этой странице перечислены все параметры конфигурации для поиска по памяти OpenClaw. Концептуальные обзоры см. здесь:

Обзор памяти

Как работает память.

Встроенный движок

Backend SQLite по умолчанию.

Движок QMD

Локальный sidecar.

Поиск по памяти

Конвейер поиска и настройка.

Active Memory

Подагент памяти для интерактивных сеансов.
Все настройки поиска по памяти находятся в agents.defaults.memorySearch в openclaw.json, если не указано иное.
Если вы ищете переключатель функции Active Memory и конфигурацию подагента, они находятся в plugins.entries.active-memory, а не в memorySearch.Active Memory использует модель с двумя условиями:
  1. Plugin должен быть включен и нацелен на текущий идентификатор агента
  2. запрос должен быть подходящим интерактивным постоянным сеансом чата
Модель активации, конфигурацию, принадлежащую Plugin, сохранение расшифровки и безопасный шаблон развертывания см. в Active Memory.

Выбор провайдера

КлючТипПо умолчаниюОписание
providerstring"openai"ID адаптера embedding, например bedrock, deepinfra, gemini, github-copilot, local, mistral, ollama, openai, openai-compatible или voyage; также может быть настроенным models.providers.<id>, чей api указывает на адаптер embedding памяти или OpenAI-совместимый API модели
modelstringdefault провайдераИмя модели embedding
fallbackstring"none"ID резервного адаптера, когда основной завершается с ошибкой
enabledbooleantrueВключить или отключить поиск по памяти
Когда provider не задан, OpenClaw использует embeddings OpenAI. Задайте provider явно, чтобы использовать Gemini, Voyage, Mistral, DeepInfra, Bedrock, GitHub Copilot, Ollama, локальную модель GGUF или OpenAI-совместимый endpoint /v1/embeddings. Устаревшие конфигурации, в которых все еще указано provider: "auto", разрешаются в openai.
Изменение провайдера embedding, модели, настроек провайдера, источников, области, chunking или tokenizer может сделать существующий векторный индекс SQLite несовместимым. OpenClaw приостанавливает векторный поиск и сообщает предупреждение об идентичности индекса вместо того, чтобы автоматически заново создавать embeddings для всего. Перестройте индекс, когда будете готовы, с помощью openclaw memory status --index --agent <id> или openclaw memory index --force --agent <id>.
Когда provider не задан, присутствует устаревший provider: "auto" или provider: "none" намеренно выбирает режим только FTS, восстановление памяти все равно может использовать лексическое ранжирование FTS, когда embeddings недоступны. Явные нелокальные провайдеры завершаются закрыто. Если вы задаете memorySearch.provider как конкретного удаленного провайдера, например OpenAI, Gemini, Voyage, Mistral, Bedrock, GitHub Copilot, DeepInfra, Ollama, LM Studio или OpenAI-совместимого пользовательского провайдера, и этот провайдер недоступен во время выполнения, memory_search возвращает результат о недоступности вместо неявного использования восстановления только через FTS. Исправьте конфигурацию провайдера/аутентификации, переключитесь на доступного провайдера или задайте provider: "none", если хотите намеренно использовать восстановление только через FTS.

Пользовательские ID провайдеров

memorySearch.provider может указывать на пользовательскую запись models.providers.<id> для специализированных адаптеров провайдера памяти, таких как ollama, или для OpenAI-совместимых API моделей, таких как openai-responses / openai-completions. OpenClaw разрешает владельца api этого провайдера для адаптера embedding, сохраняя пользовательский ID провайдера для endpoint, аутентификации и обработки префиксов моделей. Это позволяет конфигурациям с несколькими GPU или хостами выделять embeddings памяти на конкретный локальный endpoint:
{
  models: {
    providers: {
      "ollama-5080": {
        api: "ollama",
        baseUrl: "http://gpu-box.local:11435",
        apiKey: "ollama-local",
        models: [{ id: "qwen3-embedding:0.6b" }],
      },
    },
  },
  agents: {
    defaults: {
      memorySearch: {
        provider: "ollama-5080",
        model: "qwen3-embedding:0.6b",
      },
    },
  },
}

Разрешение ключа API

Удаленные embeddings требуют ключ API. Вместо этого Bedrock использует цепочку учетных данных AWS SDK по умолчанию (роли экземпляра, SSO, ключи доступа).
ПровайдерПеременная окруженияКлюч конфигурации
Bedrockцепочка учетных данных AWSКлюч API не нужен
DeepInfraDEEPINFRA_API_KEYmodels.providers.deepinfra.apiKey
GeminiGEMINI_API_KEYmodels.providers.google.apiKey
GitHub CopilotCOPILOT_GITHUB_TOKEN, GH_TOKEN, GITHUB_TOKENПрофиль аутентификации через вход с устройства
MistralMISTRAL_API_KEYmodels.providers.mistral.apiKey
OllamaOLLAMA_API_KEY (placeholder)
OpenAIOPENAI_API_KEYmodels.providers.openai.apiKey
VoyageVOYAGE_API_KEYmodels.providers.voyage.apiKey
Codex OAuth покрывает только chat/completions и не удовлетворяет запросы embedding.

Конфигурация удаленного endpoint

Используйте provider: "openai-compatible" для универсального OpenAI-совместимого сервера /v1/embeddings, который не должен наследовать глобальные учетные данные чата OpenAI.
remote.baseUrl
string
Пользовательский базовый URL API.
remote.apiKey
string
Переопределить ключ API.
remote.headers
object
Дополнительные HTTP-заголовки (объединяются со значениями провайдера по умолчанию).
{
  agents: {
    defaults: {
      memorySearch: {
        provider: "openai-compatible",
        model: "text-embedding-3-small",
        remote: {
          baseUrl: "https://api.example.com/v1/",
          apiKey: "YOUR_KEY",
        },
      },
    },
  },
}

Конфигурация для отдельных провайдеров

КлючТипПо умолчаниюОписание
modelstringgemini-embedding-001Также поддерживает gemini-embedding-2-preview
outputDimensionalitynumber3072Для Embedding 2: 768, 1536 или 3072
Изменение модели или outputDimensionality меняет идентичность индекса. OpenClaw приостанавливает векторный поиск, пока вы явно не перестроите индекс памяти.
OpenAI-совместимые endpoint embeddings могут включать специфичные для провайдера поля запроса input_type. Это полезно для асимметричных моделей embedding, которым нужны разные метки для embeddings запросов и документов.
КлючТипПо умолчаниюОписание
inputTypestringне заданОбщий input_type для embeddings запросов и документов
queryInputTypestringне заданinput_type во время запроса; переопределяет inputType
documentInputTypestringне заданinput_type индекса/документа; переопределяет inputType
{
  agents: {
    defaults: {
      memorySearch: {
        provider: "openai-compatible",
        remote: {
          baseUrl: "https://embeddings.example/v1",
          apiKey: "${EMBEDDINGS_API_KEY}",
        },
        model: "asymmetric-embedder",
        queryInputType: "query",
        documentInputType: "passage",
      },
    },
  },
}
Изменение этих значений влияет на идентичность кэша embeddings для пакетной индексации провайдера, и после него следует переиндексировать память, когда upstream-модель по-разному обрабатывает метки.

Конфигурация embedding Bedrock

Bedrock использует цепочку учетных данных AWS SDK по умолчанию — ключи API не нужны. Если OpenClaw работает на EC2 с ролью экземпляра, в которой включен Bedrock, просто задайте провайдера и модель:
{
  agents: {
    defaults: {
      memorySearch: {
        provider: "bedrock",
        model: "amazon.titan-embed-text-v2:0",
      },
    },
  },
}
КлючТипПо умолчаниюОписание
modelstringamazon.titan-embed-text-v2:0Любой ID модели embedding Bedrock
outputDimensionalitynumberdefault моделиДля Titan V2: 256, 512 или 1024
Поддерживаемые модели (с определением семейства и значениями размерности по умолчанию):
ID моделиПровайдерРазмерность по умолчаниюНастраиваемые размерности
amazon.titan-embed-text-v2:0Amazon1024256, 512, 1024
amazon.titan-embed-text-v1Amazon1536
amazon.titan-embed-g1-text-02Amazon1536
amazon.titan-embed-image-v1Amazon1024
amazon.nova-2-multimodal-embeddings-v1:0Amazon1024256, 384, 1024, 3072
cohere.embed-english-v3Cohere1024
cohere.embed-multilingual-v3Cohere1024
cohere.embed-v4:0Cohere1536256-1536
twelvelabs.marengo-embed-3-0-v1:0TwelveLabs512
twelvelabs.marengo-embed-2-7-v1:0TwelveLabs1024
Варианты с суффиксом пропускной способности (например, amazon.titan-embed-text-v1:2:8k) наследуют конфигурацию базовой модели.Аутентификация: аутентификация Bedrock использует стандартный порядок разрешения учетных данных AWS SDK:
  1. Переменные окружения (AWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEY)
  2. Кэш токенов SSO
  3. Учетные данные токена веб-идентификации
  4. Общие файлы учетных данных и конфигурации
  5. Учетные данные метаданных ECS или EC2
Регион определяется из AWS_REGION, AWS_DEFAULT_REGION, baseUrl провайдера amazon-bedrock или по умолчанию задается как us-east-1.Разрешения IAM: роли или пользователю IAM требуется:
{
  "Effect": "Allow",
  "Action": "bedrock:InvokeModel",
  "Resource": "*"
}
Для минимальных привилегий ограничьте область InvokeModel конкретной моделью:
arn:aws:bedrock:*::foundation-model/amazon.titan-embed-text-v2:0
КлючТипПо умолчаниюОписание
local.modelPathstringскачивается автоматическиПуть к файлу модели GGUF
local.modelCacheDirstringзначение по умолчанию node-llama-cppКаталог кэша для скачанных моделей
local.contextSizenumber | "auto"4096Размер контекстного окна для контекста эмбеддингов. 4096 покрывает типичные фрагменты (128–512 токенов), ограничивая VRAM, не занятую весами. На хостах с ограниченными ресурсами уменьшите до 1024–2048. "auto" использует обученный максимум модели — не рекомендуется для моделей 8B+ (Qwen3-Embedding-8B: 40 960 токенов → ~32 ГБ VRAM против ~8,8 ГБ при 4096).
Сначала установите официальный провайдер llama.cpp: openclaw plugins install @openclaw/llama-cpp-provider. Модель по умолчанию: embeddinggemma-300m-qat-Q8_0.gguf (~0,6 ГБ, скачивается автоматически). Для исходных checkout по-прежнему требуется одобрение нативной сборки: pnpm approve-builds, затем pnpm rebuild node-llama-cpp.Используйте автономный CLI, чтобы проверить тот же путь провайдера, который использует Gateway:
openclaw memory status --deep --agent main
openclaw memory index --force --agent main
Явно задайте provider: "local" для локальных эмбеддингов GGUF. Ссылки на модели hf: и HTTP(S) поддерживаются для явных локальных конфигураций, но они не меняют провайдера по умолчанию.

Тайм-аут inline-эмбеддингов

sync.embeddingBatchTimeoutSeconds
number
Переопределяет тайм-аут для inline-пакетов эмбеддингов во время индексирования памяти.Если значение не задано, используется значение провайдера по умолчанию: 600 секунд для локальных и самостоятельно размещенных провайдеров, таких как local, ollama и lmstudio, и 120 секунд для размещенных провайдеров. Увеличьте это значение, когда локальные CPU-bound пакеты эмбеддингов работают корректно, но медленно.

Конфигурация гибридного поиска

Все находится в memorySearch.query.hybrid:
КлючТипПо умолчаниюОписание
enabledbooleantrueВключить гибридный поиск BM25 + векторный поиск
vectorWeightnumber0.7Вес векторных оценок (0-1)
textWeightnumber0.3Вес оценок BM25 (0-1)
candidateMultipliernumber4Множитель размера пула кандидатов
КлючТипПо умолчаниюОписание
mmr.enabledbooleanfalseВключить повторное ранжирование MMR
mmr.lambdanumber0.70 = максимальное разнообразие, 1 = максимальная релевантность

Полный пример

{
  agents: {
    defaults: {
      memorySearch: {
        query: {
          hybrid: {
            vectorWeight: 0.7,
            textWeight: 0.3,
            mmr: { enabled: true, lambda: 0.7 },
            temporalDecay: { enabled: true, halfLifeDays: 30 },
          },
        },
      },
    },
  },
}

Дополнительные пути памяти

КлючТипОписание
extraPathsstring[]Дополнительные каталоги или файлы для индексирования
{
  agents: {
    defaults: {
      memorySearch: {
        extraPaths: ["../team-docs", "/srv/shared-notes"],
      },
    },
  },
}
Пути могут быть абсолютными или относительными к рабочей области. Каталоги рекурсивно сканируются на наличие файлов .md. Обработка символических ссылок зависит от активного бэкенда: встроенный движок игнорирует символические ссылки, а QMD следует поведению базового сканера QMD. Для поиска расшифровок между агентами в рамках агента используйте agents.list[].memorySearch.qmd.extraCollections вместо memory.qmd.paths. Эти дополнительные коллекции имеют ту же форму { path, name, pattern? }, но объединяются отдельно для каждого агента и могут сохранять явно заданные общие имена, когда путь указывает за пределы текущей рабочей области. Если один и тот же разрешенный путь присутствует и в memory.qmd.paths, и в memorySearch.qmd.extraCollections, QMD сохраняет первую запись и пропускает дубликат.

Мультимодальная память (Gemini)

Индексируйте изображения и аудио вместе с Markdown с помощью Gemini Embedding 2:
КлючТипПо умолчаниюОписание
multimodal.enabledbooleanfalseВключить мультимодальное индексирование
multimodal.modalitiesstring[]["image"], ["audio"] или ["all"]
multimodal.maxFileBytesnumber10000000Максимальный размер файла для индексирования
Применяется только к файлам в extraPaths. Корневые пути памяти по умолчанию остаются только для Markdown. Требуется gemini-embedding-2-preview. fallback должен быть "none".
Поддерживаемые форматы: .jpg, .jpeg, .png, .webp, .gif, .heic, .heif (изображения); .mp3, .wav, .ogg, .opus, .m4a, .aac, .flac (аудио).

Кэш эмбеддингов

КлючТипПо умолчаниюОписание
cache.enabledbooleantrueКэшировать эмбеддинги фрагментов в SQLite
cache.maxEntriesnumber50000Максимум кэшированных эмбеддингов
Предотвращает повторное создание эмбеддингов для неизмененного текста при повторном индексировании или обновлении расшифровок.

Пакетное индексирование

КлючТипПо умолчаниюОписание
remote.nonBatchConcurrencynumber4Параллельные встроенные эмбеддинги
remote.batch.enabledbooleanfalseВключить API пакетных эмбеддингов
remote.batch.concurrencynumber2Параллельные пакетные задания
remote.batch.waitbooleantrueЖдать завершения пакета
remote.batch.pollIntervalMsnumberИнтервал опроса
remote.batch.timeoutMinutesnumberТайм-аут пакета
Доступно для openai, gemini и voyage. Пакетная обработка OpenAI обычно самая быстрая и дешевая для больших обратных заполнений. remote.nonBatchConcurrency управляет встроенными вызовами создания эмбеддингов, используемыми локальными/самостоятельно размещенными провайдерами и размещенными провайдерами, когда API пакетной обработки провайдера не активны. Для непакетного индексирования Ollama по умолчанию использует 1, чтобы не перегружать небольшие локальные хосты; на более крупных машинах задайте большее значение. Это отдельно от sync.embeddingBatchTimeoutSeconds, который управляет тайм-аутом встроенных вызовов создания эмбеддингов.

Поиск в памяти сеансов (экспериментально)

Индексируйте расшифровки сеансов и предоставляйте их через memory_search:
КлючТипПо умолчаниюОписание
experimental.sessionMemorybooleanfalseВключить индексирование сеансов
sourcesstring[]["memory"]Добавьте "sessions", чтобы включить расшифровки
sync.sessions.deltaBytesnumber100000Порог байтов для повторного индексирования
sync.sessions.deltaMessagesnumber50Порог сообщений для повторного индексирования
Индексирование сеансов включается явно и выполняется асинхронно. Результаты могут быть немного устаревшими. Журналы сеансов хранятся на диске, поэтому рассматривайте доступ к файловой системе как границу доверия.
Совпадения в стенограммах сессий также подчиняются tools.sessions.visibility. Видимость по умолчанию tree открывает только текущую сессию и сессии, которые она запустила. Чтобы из другой сессии, например из личного сообщения (DM), вспомнить несвязанную сессию того же агента, отправленную через Gateway, намеренно расширьте видимость до agent (или до all только когда также требуется вспоминание между агентами и это разрешает политика взаимодействия агентов). В примерах ниже эти настройки размещены в agents.defaults. Вы также можете применить эквивалентные настройки memorySearch в переопределении для отдельного агента, когда только один агент должен индексировать стенограммы сессий и искать по ним. Для вспоминания из Gateway в DM в рамках одного агента:
{
  agents: {
    defaults: {
      memorySearch: {
        experimental: { sessionMemory: true },
        sources: ["memory", "sessions"],
      },
    },
  },
  tools: {
    sessions: { visibility: "agent" },
  },
}
При использовании QMD agents.defaults.memorySearch.experimental.sessionMemory и sources: ["sessions"] сами по себе не экспортируют стенограммы в QMD. Также задайте memory.qmd.sessions.enabled: true.

Ускорение векторов SQLite (sqlite-vec)

КлючТипПо умолчаниюОписание
store.vector.enabledbooleantrueИспользовать sqlite-vec для векторных запросов
store.vector.extensionPathstringв комплектеПереопределить путь к sqlite-vec
Когда sqlite-vec недоступен, OpenClaw автоматически переключается на внутрипроцессное косинусное сходство.

Хранилище индексов

Встроенные индексы памяти находятся в SQLite-базе OpenClaw каждого агента: agents/<agentId>/agent/openclaw-agent.sqlite.
КлючТипПо умолчаниюОписание
store.fts.tokenizerstringunicode61Токенизатор FTS5 (unicode61 или trigram)

Конфигурация бэкенда QMD

Задайте memory.backend = "qmd", чтобы включить его. Все настройки QMD находятся в memory.qmd:
КлючТипПо умолчаниюОписание
commandstringqmdПуть к исполняемому файлу QMD; задайте абсолютный путь, когда PATH сервиса отличается от вашей оболочки
searchModestringsearchКоманда поиска: search, vsearch, query
rerankbooleanЗадайте false с searchMode: "query" и QMD 2.1+, чтобы пропустить reranking QMD
includeDefaultMemorybooleantrueАвтоматически индексировать MEMORY.md + memory/**/*.md
paths[]arrayДополнительные пути: { name, path, pattern? }
sessions.enabledbooleanfalseЭкспортировать стенограммы сессий в QMD
sessions.retentionDaysnumberСрок хранения стенограмм
sessions.exportDirstringКаталог экспорта
searchMode: "search" использует только лексический поиск/BM25. OpenClaw не запускает проверки готовности семантических векторов или обслуживание embedding QMD для этого режима, в том числе во время memory status --deep; vsearch и query по-прежнему требуют готовности векторов QMD и embeddings. rerank: false меняет только режим QMD query и требует QMD 2.1 или новее. В режиме прямого CLI OpenClaw передает --no-rerank; в режиме MCP на базе mcporter он передает rerank: false в единый инструмент запросов QMD. Оставьте параметр незаданным, чтобы использовать стандартное поведение reranking запросов QMD. OpenClaw предпочитает текущие формы коллекций QMD и запросов MCP, но сохраняет работоспособность старых выпусков QMD, при необходимости пробуя совместимые флаги шаблонов коллекций и старые имена инструментов MCP. Когда QMD объявляет поддержку нескольких фильтров коллекций, коллекции из одного источника ищутся одним процессом QMD; старые сборки QMD сохраняют путь совместимости для каждой коллекции. Один источник означает, что долговременные коллекции памяти группируются вместе, а коллекции стенограмм сессий остаются отдельной группой, чтобы диверсификация источников по-прежнему имела оба входа.
Переопределения моделей QMD остаются на стороне QMD, а не в конфигурации OpenClaw. Если вам нужно глобально переопределить модели QMD, задайте переменные окружения, такие как QMD_EMBED_MODEL, QMD_RERANK_MODEL и QMD_GENERATE_MODEL, в среде выполнения Gateway.
КлючТипПо умолчаниюОписание
update.intervalstring5mИнтервал обновления
update.debounceMsnumber15000Подавлять дребезг изменений файлов
update.onBootbooleantrueОбновлять при открытии долговременного менеджера QMD; установите false, чтобы пропустить немедленное обновление при запуске
update.startupstringoffНеобязательная инициализация QMD при запуске Gateway: off, idle или immediate
update.startupDelayMsnumber120000Задержка перед запуском обновления startup: "idle"
update.waitForBootSyncbooleanfalseБлокировать открытие менеджера до завершения его начального обновления
update.embedIntervalstringОтдельная периодичность embed
update.commandTimeoutMsnumberТайм-аут для команд QMD
update.updateTimeoutMsnumberТайм-аут для операций обновления QMD
update.embedTimeoutMsnumberТайм-аут для операций embed QMD
КлючТипПо умолчаниюОписание
limits.maxResultsnumber6Максимум результатов поиска
limits.maxSnippetCharsnumberОграничить длину фрагмента
limits.maxInjectedCharsnumberОграничить общий объем внедренных символов
limits.timeoutMsnumber4000Тайм-аут поиска
Управляет тем, какие сеансы могут получать результаты поиска QMD. Та же схема, что и session.sendPolicy:
{
  memory: {
    qmd: {
      scope: {
        default: "deny",
        rules: [{ action: "allow", match: { chatType: "direct" } }],
      },
    },
  },
}
Поставляемое значение по умолчанию разрешает прямые и канальные сеансы, но по-прежнему запрещает группы.По умолчанию разрешены только DM. match.keyPrefix сопоставляется с нормализованным ключом сеанса; match.rawKeyPrefix сопоставляется с исходным ключом, включая agent:<id>:.
memory.citations применяется ко всем бэкендам:
ЗначениеПоведение
auto (default)Включать строку Source: <path#line> внизу фрагментов
onВсегда включать строку внизу
offНе включать строку внизу (путь все равно передается агенту внутренне)
Когда инициализация QMD при запуске Gateway включена, OpenClaw запускает QMD только для подходящих агентов. Если update.onBoot равно true и обслуживание по интервалу/embed не настроено, при запуске используется одноразовый менеджер для обновления при загрузке, после чего он закрывается. Если настроен интервал обновления или embed, при запуске открывается долговременный менеджер QMD, чтобы он владел наблюдателем и таймерами интервалов; update.onBoot: false пропускает только немедленное обновление при запуске.

Полный пример QMD

{
  memory: {
    backend: "qmd",
    citations: "auto",
    qmd: {
      includeDefaultMemory: true,
      update: { interval: "5m", debounceMs: 15000 },
      limits: { maxResults: 6, timeoutMs: 4000 },
      scope: {
        default: "deny",
        rules: [{ action: "allow", match: { chatType: "direct" } }],
      },
      paths: [{ name: "docs", path: "~/notes", pattern: "**/*.md" }],
    },
  },
}

Dreaming

Dreaming настраивается в plugins.entries.memory-core.config.dreaming, а не в agents.defaults.memorySearch. Dreaming выполняется как один запланированный проход и использует внутренние фазы light/deep/REM как деталь реализации. Концептуальное поведение и slash-команды см. в Dreaming.

Пользовательские настройки

КлючТипПо умолчаниюОписание
enabledbooleanfalseПолностью включить или отключить dreaming
frequencystring0 3 * * *Необязательная периодичность Cron для полного прохода dreaming
modelstringмодель по умолчаниюНеобязательное переопределение модели субагента Dream Diary
phases.deep.maxPromotedSnippetTokensnumber160Максимальное расчетное число токенов, сохраняемых из каждого фрагмента краткосрочного recall, продвинутого в MEMORY.md; метаданные происхождения остаются видимыми

Пример

{
  plugins: {
    entries: {
      "memory-core": {
        subagent: {
          allowModelOverride: true,
          allowedModels: ["anthropic/claude-sonnet-4-6"],
        },
        config: {
          dreaming: {
            enabled: true,
            frequency: "0 3 * * *",
            model: "anthropic/claude-sonnet-4-6",
          },
        },
      },
    },
  },
}
  • Dreaming записывает машинное состояние в memory/.dreams/.
  • Dreaming записывает человекочитаемый повествовательный вывод в DREAMS.md (или существующий dreams.md).
  • dreaming.model использует существующий шлюз доверия субагента Plugin; перед включением задайте plugins.entries.memory-core.subagent.allowModelOverride: true.
  • Dream Diary повторяет попытку один раз с моделью сеанса по умолчанию, если настроенная модель недоступна. Сбои доверия или allowlist журналируются и не повторяются без уведомления.
  • Политика и пороги фаз light/deep/REM являются внутренним поведением, а не пользовательской конфигурацией.

Связанные материалы