Technical reference

Справочник по конфигурации памяти

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

Если не указано иное, все параметры поиска по памяти находятся в разделе agents.defaults.memorySearch файла openclaw.json (или в переопределении agents.list[].memorySearch для отдельного агента).


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

Ключ Тип Значение по умолчанию Описание
enabled boolean true Включение или отключение поиска по памяти
provider string "openai" Идентификатор адаптера эмбеддингов, например bedrock, deepinfra, gemini, github-copilot, local, mistral, ollama, openai, openai-compatible или voyage; также может быть настроенным models.providers.<id>, у которого api указывает на адаптер эмбеддингов памяти или API модели, совместимый с OpenAI
model string по умолчанию провайдера Имя модели эмбеддингов
fallback string "none" Идентификатор резервного адаптера на случай сбоя основного

Если provider не задан, OpenClaw использует эмбеддинги OpenAI. Явно задайте provider, чтобы использовать Bedrock, DeepInfra, Gemini, GitHub Copilot, Mistral, Ollama, Voyage, локальную модель GGUF или конечную точку /v1/embeddings, совместимую с OpenAI. Устаревшие конфигурации, в которых всё ещё указано provider: "auto", разрешаются в openai.

Если provider не задан, присутствует устаревший provider: "auto" или provider: "none" намеренно выбирает режим только FTS, извлечение из памяти всё равно может использовать лексическое ранжирование FTS, когда эмбеддинги недоступны.

Для явно указанных нелокальных провайдеров используется безопасный отказ. Если для memorySearch.provider задан конкретный провайдер с удалённой серверной частью, например Bedrock, DeepInfra, Gemini, GitHub Copilot, LM Studio, Mistral, Ollama, OpenAI, Voyage или пользовательский провайдер, совместимый с OpenAI, и этот провайдер недоступен во время выполнения, memory_search возвращает результат о недоступности вместо неявного перехода к извлечению только через FTS. Исправьте конфигурацию провайдера или аутентификации, переключитесь на доступного провайдера либо задайте provider: "none", если хотите намеренно использовать извлечение только через FTS.

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

memorySearch.provider может указывать на пользовательскую запись models.providers.<id> для специализированных адаптеров провайдера памяти, таких как ollama, или для API моделей, совместимых с OpenAI, таких как openai-responses / openai-completions. OpenClaw определяет владельца api этого провайдера для адаптера эмбеддингов, сохраняя пользовательский идентификатор провайдера для обработки конечной точки, аутентификации и префикса модели. Это позволяет конфигурациям с несколькими GPU или узлами выделить для эмбеддингов памяти конкретную локальную конечную точку:

json5
{  models: {    providers: {      "ollama-5080": {        api: "ollama",        baseUrl: "http://gpu-box.local:11435",        apiKey: "ollama-local",        models: [{ id: "qwen3-embedding:0.6b", name: "Qwen3 Embedding 0.6B" }],      },    },  },  agents: {    defaults: {      memorySearch: {        provider: "ollama-5080",        model: "qwen3-embedding:0.6b",      },    },  },}

Определение ключа API

Для удалённых эмбеддингов требуется ключ API. Вместо него Bedrock использует стандартную цепочку учётных данных AWS SDK (роли экземпляров, SSO, ключи доступа или ключ API Bedrock).

Провайдер Переменная окружения Ключ конфигурации
Bedrock Цепочка учётных данных AWS или AWS_BEARER_TOKEN_BEDROCK Ключ API не требуется
DeepInfra DEEPINFRA_API_KEY models.providers.deepinfra.apiKey
Gemini GEMINI_API_KEY models.providers.google.apiKey
GitHub Copilot COPILOT_GITHUB_TOKEN, GH_TOKEN, GITHUB_TOKEN Профиль аутентификации через вход с устройства
Mistral MISTRAL_API_KEY models.providers.mistral.apiKey
Ollama OLLAMA_API_KEY (заполнитель) --
OpenAI OPENAI_API_KEY models.providers.openai.apiKey
Voyage VOYAGE_API_KEY models.providers.voyage.apiKey

Конфигурация удалённой конечной точки

Используйте provider: "openai-compatible" для универсального сервера /v1/embeddings, совместимого с OpenAI, который не должен наследовать глобальные учётные данные чата OpenAI.

remote.baseUrlstring

Пользовательский базовый URL API.

remote.apiKeystring

Переопределение ключа API.

remote.headersobject

Дополнительные заголовки HTTP (объединяются со значениями провайдера по умолчанию).

json5
{  agents: {    defaults: {      memorySearch: {        provider: "openai-compatible",        model: "text-embedding-3-small",        remote: {          baseUrl: "https://api.example.com/v1/",          apiKey: "YOUR_KEY",        },      },    },  },}

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

Gemini
Ключ Тип Значение по умолчанию Описание
model string gemini-embedding-001 Также поддерживает gemini-embedding-2-preview
outputDimensionality number 3072 Для Embedding 2: 768, 1536 или 3072
Типы входных данных, совместимые с OpenAI

Конечные точки эмбеддингов, совместимые с OpenAI, могут включать зависящие от провайдера поля запроса input_type. Это полезно для асимметричных моделей эмбеддингов, которым требуются разные метки для эмбеддингов запросов и документов.

Ключ Тип Значение по умолчанию Описание
inputType string не задано Общий input_type для эмбеддингов запросов и документов
queryInputType string не задано input_type во время запроса; переопределяет inputType
documentInputType string не задано input_type индекса или документа; переопределяет inputType
json5
{  agents: {    defaults: {      memorySearch: {        provider: "openai-compatible",        remote: {          baseUrl: "https://embeddings.example/v1",          apiKey: "${EMBEDDINGS_API_KEY}",        },        model: "asymmetric-embedder",        queryInputType: "query",        documentInputType: "passage",      },    },  },}

Изменение этих значений влияет на идентичность кеша эмбеддингов при пакетной индексации провайдером; после этого следует переиндексировать память, если вышестоящая модель по-разному обрабатывает эти метки.

Bedrock

Конфигурация эмбеддингов Bedrock

Bedrock использует стандартную цепочку учётных данных AWS SDK и проверяемый OpenClaw токен-носитель, поэтому ключи API не хранятся в конфигурации. Если OpenClaw работает на EC2 с ролью экземпляра, имеющей доступ к Bedrock, просто задайте провайдера и модель:

json5
{  agents: {    defaults: {      memorySearch: {        provider: "bedrock",        model: "amazon.titan-embed-text-v2:0",      },    },  },}
Ключ Тип Значение по умолчанию Описание
model string amazon.titan-embed-text-v2:0 Любой идентификатор модели эмбеддингов Bedrock
outputDimensionality number по умолчанию модели Для Titan V2: 256, 512 или 1024

Поддерживаемые модели (с определением семейства и размерами по умолчанию):

Идентификатор модели Поставщик Размерность по умолчанию Настраиваемые размерности
amazon.titan-embed-text-v2:0 Amazon 1024 256, 512, 1024
amazon.titan-embed-text-v1 Amazon 1536 --
amazon.titan-embed-g1-text-02 Amazon 1536 --
amazon.titan-embed-image-v1 Amazon 1024 --
amazon.nova-2-multimodal-embeddings-v1:0 Amazon 1024 256, 384, 1024, 3072
cohere.embed-english-v3 Cohere 1024 --
cohere.embed-multilingual-v3 Cohere 1024 --
cohere.embed-v4:0 Cohere 1536 256, 384, 512, 768, 1024, 1536
twelvelabs.marengo-embed-3-0-v1:0 TwelveLabs 512 --
twelvelabs.marengo-embed-2-7-v1:0 TwelveLabs 1024 --

Варианты с суффиксом пропускной способности (например, amazon.titan-embed-text-v1:2:8k) и идентификаторы профилей инференса с префиксом региона (например, us.amazon.titan-embed-text-v2:0) наследуют конфигурацию базовой модели.

Регион: определяется в следующем порядке: переопределение memorySearch.remote.baseUrl, конфигурация models.providers.amazon-bedrock.baseUrl, AWS_REGION, AWS_DEFAULT_REGION, затем значение по умолчанию us-east-1.

Аутентификация: OpenClaw сначала проверяет AWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEY или AWS_BEARER_TOKEN_BEDROCK, а затем переходит к стандартной цепочке поставщиков учётных данных AWS SDK по умолчанию:

  1. Переменные среды (AWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEY), если также не задана AWS_PROFILE
  2. SSO (только когда настроены поля SSO)
  3. Общие файлы учётных данных и конфигурации (fromIni, включая AWS_PROFILE)
  4. Процесс получения учётных данных (credential_process в файле конфигурации AWS)
  5. Учётные данные на основе токена веб-идентификации
  6. Учётные данные из метаданных экземпляра ECS или EC2

Разрешения IAM: роли или пользователю IAM требуются:

json
{  "Effect": "Allow",  "Action": "bedrock:InvokeModel",  "Resource": "*"}

Для соблюдения принципа минимальных привилегий ограничьте InvokeModel конкретной моделью:

text
arn:aws:bedrock:*::foundation-model/amazon.titan-embed-text-v2:0
Локально (GGUF + llama.cpp)
Ключ Тип По умолчанию Описание
local.modelPath string загружается автоматически Путь к файлу модели GGUF
local.modelCacheDir string значение по умолчанию node-llama-cpp Каталог кеша для загруженных моделей
local.contextSize number | "auto" 4096 Размер контекстного окна для контекста эмбеддингов. 4096 охватывает типичные фрагменты (128–512 токенов), одновременно ограничивая потребление видеопамяти, не связанное с весами. На системах с ограниченными ресурсами уменьшите до 1024–2048. "auto" использует обученный максимум модели — не рекомендуется для моделей 8B+ (Qwen3-Embedding-8B: до 40 960 токенов могут увеличить потребление видеопамяти примерно до 32 ГБ).

Сначала установите официальный поставщик llama.cpp: openclaw plugins install @openclaw/llama-cpp-provider. Модель по умолчанию: embeddinggemma-300m-qat-Q8_0.gguf (~0,6 ГБ, загружается автоматически). Для рабочих копий исходного кода по-прежнему требуется разрешение на нативную сборку: pnpm approve-builds, затем pnpm rebuild node-llama-cpp.

Используйте автономный CLI, чтобы проверить тот же путь поставщика, который использует Gateway:

bash
openclaw memory status --deep --agent mainopenclaw memory index --force --agent main

Числовые значения local.contextSize также учитываются при автоматическом распределении слоёв на GPU в node-llama-cpp, чтобы веса модели и запрошенный контекст эмбеддингов помещались вместе. После загрузки среды выполнения openclaw memory status --deep сообщает последние известные сведения о бэкенде llama.cpp, устройстве, выгрузке, запрошенном контексте и памяти с временными метками; пассивная проверка состояния не загружает модель.

Явно задайте provider: "local" для локальных эмбеддингов GGUF. hf: и ссылки на модели по HTTP(S) поддерживаются в явных локальных конфигурациях (через механизм разрешения моделей node-llama-cpp), но не изменяют поставщика по умолчанию.

Тайм-аут встроенного создания эмбеддингов

sync.embeddingBatchTimeoutSecondsnumber

Переопределяет тайм-аут для встроенных пакетов создания эмбеддингов при индексировании памяти.

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


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

Все параметры находятся в memorySearch.sync, если не указано иное:

Ключ Тип По умолчанию Описание
onSessionStart boolean true Синхронизировать индекс памяти при запуске сеанса
onSearch boolean true Выполнять отложенную синхронизацию при поиске после обнаружения изменений содержимого
watch boolean true Отслеживать файлы памяти (chokidar) и планировать переиндексацию при изменениях
watchDebounceMs number 1500 Интервал устранения дребезга для объединения частых событий наблюдения за файлами
intervalMinutes number 0 Интервал периодической переиндексации в минутах (0 отключает её)
sessions.postCompactionForce boolean true Принудительно переиндексировать сеанс после обновлений транскрипта, вызванных Compaction
chunking.tokensnumber

Размер фрагмента в токенах, используемый при разделении источников памяти перед созданием эмбеддингов (по умолчанию: 400).

chunking.overlapnumber

Перекрытие в токенах между соседними фрагментами для сохранения контекста вблизи границ разделения (по умолчанию: 80).


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

Все параметры находятся в memorySearch.query:

Ключ Тип По умолчанию Описание
maxResults number 6 Максимальное число результатов из памяти перед внедрением
minScore number 0.35 Минимальная оценка релевантности для включения результата

И в memorySearch.query.hybrid:

Ключ Тип По умолчанию Описание
enabled boolean true Включить гибридный поиск BM25 + векторный поиск
vectorWeight number 0.7 Вес векторных оценок (0–1)
textWeight number 0.3 Вес оценок BM25 (0–1)
candidateMultiplier number 4 Множитель размера пула кандидатов

MMR (разнообразие)

Ключ Тип По умолчанию Описание
mmr.enabled boolean false Включить повторное ранжирование MMR
mmr.lambda number 0.7 0 = максимальное разнообразие, 1 = максимальная релевантность

Временное затухание (давность)

Ключ Тип По умолчанию Описание
temporalDecay.enabled boolean false Включить повышение оценки за давность
temporalDecay.halfLifeDays number 30 Оценка уменьшается вдвое каждые N дней

Неустаревающие файлы (MEMORY.md, файлы без даты в memory/) никогда не подвергаются затуханию.

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

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

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

Ключ Тип Описание
extraPaths string[] Дополнительные каталоги или файлы для индексирования
json5
{  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.enabled boolean false Включить мультимодальное индексирование
multimodal.modalities string[] -- ["image"], ["audio"] или ["all"]
multimodal.maxFileBytes number 10485760 Максимальный размер файла для индексирования (10 MiB)

Поддерживаемые форматы: .jpg, .jpeg, .png, .webp, .gif, .heic, .heif (изображения); .mp3, .wav, .ogg, .opus, .m4a, .aac, .flac (аудио).


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

Ключ Тип По умолчанию Описание
cache.enabled boolean true Кешировать эмбеддинги фрагментов в SQLite
cache.maxEntries number не задано Приблизительная верхняя граница кеша эмбеддингов

Предотвращает повторное создание эмбеддингов для неизменённого текста при переиндексировании или обновлении расшифровок. Оставьте maxEntries незаданным для неограниченного кеша; задайте его, если рост занимаемого места на диске важнее максимальной скорости переиндексирования. Если значение задано, после превышения кешем лимита сначала удаляются самые старые записи по времени последнего обновления.


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

Ключ Тип По умолчанию Описание
remote.nonBatchConcurrency number 4 Параллельные встраиваемые эмбеддинги
remote.batch.enabled boolean false Включить API пакетных эмбеддингов
remote.batch.concurrency number 2 Параллельные пакетные задания
remote.batch.wait boolean true Ожидать завершения пакетной обработки
remote.batch.pollIntervalMs number 2000 Интервал опроса
remote.batch.timeoutMinutes number 60 Тайм-аут пакетной обработки

Доступно для gemini, openai и voyage. Пакетная обработка OpenAI обычно быстрее и дешевле всего для массового заполнения больших объёмов данных.

remote.nonBatchConcurrency управляет параллельными вызовами создания эмбеддингов, используемыми локальными или самостоятельно размещёнными провайдерами, а также облачными провайдерами, когда их API пакетной обработки не задействованы. При индексировании без пакетной обработки Ollama по умолчанию использует 1, чтобы не перегружать небольшие локальные серверы; на более мощных машинах задайте большее значение.

Этот параметр не связан с sync.embeddingBatchTimeoutSeconds, который управляет тайм-аутом параллельных вызовов создания эмбеддингов.


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

Индексируйте расшифровки сеансов и предоставляйте их через memory_search:

Ключ Тип По умолчанию Описание
experimental.sessionMemory boolean false Включить индексирование сеансов
sources string[] ["memory"] Добавить "sessions", чтобы включить расшифровки
sync.sessions.deltaBytes number 100000 Порог количества байтов для переиндексирования
sync.sessions.deltaMessages number 50 Порог количества сообщений для переиндексирования

Результаты из расшифровок сеансов также подчиняются tools.sessions.visibility. Стандартная область видимости tree предоставляет доступ только к текущему сеансу и созданным им сеансам. Чтобы из другого сеанса, например личной переписки, получить данные из несвязанного сеанса того же агента, запущенного через Gateway, намеренно расширьте область видимости до agent (или до all, только если также требуется поиск между агентами и это разрешено политикой взаимодействия агентов).

В приведённых ниже примерах эти параметры находятся в agents.defaults. Можно также применить эквивалентные параметры memorySearch в переопределении для отдельного агента, если индексировать расшифровки сеансов и выполнять по ним поиск должен только один агент.

Для получения данных из Gateway в личной переписке в рамках одного агента:

Встроенный бэкенд

json5
{  agents: {    defaults: {      memorySearch: {        experimental: { sessionMemory: true },        sources: ["memory", "sessions"],      },    },  },  tools: {    sessions: { visibility: "agent" },  },}

Бэкенд QMD

json5
{  agents: {    defaults: {      memorySearch: {        experimental: { sessionMemory: true },        sources: ["memory", "sessions"],      },    },  },  memory: {    backend: "qmd",    qmd: {      sessions: { enabled: true },    },  },  tools: {    sessions: { visibility: "agent" },  },}

При использовании QMD параметры agents.defaults.memorySearch.experimental.sessionMemory и sources: ["sessions"] сами по себе не экспортируют расшифровки в QMD. Также задайте memory.qmd.sessions.enabled: true.


Ускорение векторных операций SQLite (sqlite-vec)

Ключ Тип По умолчанию Описание
store.vector.enabled boolean true Использовать sqlite-vec для векторных запросов
store.vector.extensionPath string встроенный Переопределить путь к sqlite-vec

Если sqlite-vec недоступен, OpenClaw автоматически использует вычисление косинусного сходства внутри процесса.


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

Встроенные индексы памяти хранятся в базе данных OpenClaw SQLite каждого агента по адресу agents/<agentId>/agent/openclaw-agent.sqlite.

Ключ Тип По умолчанию Описание
store.fts.tokenizer string unicode61 Токенизатор FTS5 (unicode61 или trigram)

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

Задайте memory.backend = "qmd", чтобы включить его. Все параметры QMD находятся в memory.qmd:

Ключ Тип По умолчанию Описание
command string qmd Путь к исполняемому файлу QMD; задайте абсолютный путь, если служебный PATH отличается от используемого в командной оболочке
searchMode string search Команда поиска: search, vsearch, query
rerank boolean -- Задайте false вместе с searchMode: "query" и QMD 2.1+, чтобы пропустить повторное ранжирование QMD
includeDefaultMemory boolean true Автоматически индексировать MEMORY.md и memory/**/*.md
paths[] array -- Дополнительные пути: { name, path, pattern? }
sessions.enabled boolean false Экспортировать расшифровки сеансов в QMD
sessions.retentionDays number -- Срок хранения расшифровок
sessions.exportDir string -- Каталог экспорта

searchMode: "search" использует только лексический поиск/BM25. В этом режиме OpenClaw не выполняет проверки готовности семантических векторов или обслуживание эмбеддингов QMD, в том числе во время memory status --deep; vsearch и query по-прежнему требуют готовности векторов и эмбеддингов QMD.

rerank: false изменяет только режим QMD query и требует QMD 2.1 или новее. В режиме прямого CLI OpenClaw передаёт --no-rerank; в режиме MCP на базе mcporter он передаёт rerank: false унифицированному инструменту запросов QMD. Оставьте параметр незаданным, чтобы использовать стандартное поведение QMD для повторного ранжирования запросов.

OpenClaw предпочитает актуальные структуры коллекций QMD и запросов MCP, но сохраняет совместимость со старыми выпусками QMD, при необходимости пробуя совместимые флаги шаблонов коллекций и прежние имена инструментов MCP. Когда QMD заявляет о поддержке нескольких фильтров коллекций, поиск по коллекциям одного источника выполняется одним процессом QMD; старые сборки QMD продолжают использовать путь совместимости с отдельным процессом для каждой коллекции. Под одним источником понимается совместная группировка постоянных коллекций памяти — стандартных файлов памяти и пользовательских путей, — а коллекции расшифровок сеансов остаются отдельной группой, чтобы при диверсификации источников по-прежнему использовались оба входа.

Интеграция с mcporter

Все параметры находятся в memory.qmd.mcporter. Направляет поисковые запросы QMD через долгоживущий MCP-демон mcporter вместо запуска qmd для каждого запроса, сокращая накладные расходы на холодный запуск больших моделей.

Ключ Тип По умолчанию Описание
enabled boolean false Направлять вызовы QMD через mcporter вместо запуска qmd для каждого запроса
serverName string qmd Имя сервера mcporter, запускающего qmd mcp с lifecycle: keep-alive
startDaemon boolean true Автоматически запускать демон mcporter, когда enabled имеет значение true

Требуется установленный mcporter, доступный через PATH, а также настроенный сервер mcporter, запускающий qmd mcp. Оставьте эту функцию отключённой для более простых локальных конфигураций, в которых допустимы затраты на запуск отдельного процесса для каждого запроса.

Расписание обновлений
Ключ Тип По умолчанию Описание
update.interval string 5m Интервал обновления
update.debounceMs number 15000 Устранение дребезга при изменениях файлов
update.onBoot boolean true Обновлять при открытии долгоживущего менеджера QMD; установите false, чтобы пропустить немедленное обновление при запуске
update.startup string off Необязательная инициализация QMD при запуске Gateway: off, idle или immediate
update.startupDelayMs number 120000 Задержка перед запуском обновления startup: "idle"
update.waitForBootSync boolean false Блокировать открытие менеджера до завершения его первоначального обновления
update.embedInterval string 60m Отдельная периодичность векторизации
update.commandTimeoutMs number 30000 Время ожидания команд обслуживания QMD (просмотр/добавление коллекций)
update.updateTimeoutMs number 120000 Время ожидания каждого цикла qmd update
update.embedTimeoutMs number 120000 Время ожидания каждого цикла qmd embed
Ограничения
Ключ Тип По умолчанию Описание
limits.maxResults number 4 Максимальное количество результатов поиска
limits.maxSnippetChars number 450 Ограничение длины фрагмента
limits.maxInjectedChars number 2200 Ограничение общего количества внедряемых символов
limits.timeoutMs number 4000 Время ожидания команды QMD при поиске через QMD, включая memory_search; для настройки, синхронизации, встроенного резервного варианта и дополнительной работы сохраняется стандартный срок выполнения инструмента
Область действия

Определяет, какие сеансы могут получать результаты поиска QMD. Схема совпадает с session.sendPolicy:

json5
{  memory: {    qmd: {      scope: {        default: "deny",        rules: [{ action: "allow", match: { chatType: "direct" } }],      },    },  },}

Поставляемая конфигурация по умолчанию разрешает только личные/прямые сообщения, запрещая группы и другие типы каналов. match.keyPrefix сопоставляется с нормализованным ключом сеанса; match.rawKeyPrefix сопоставляется с исходным ключом, включая agent:<id>:.

Ссылки на источники

memory.citations применяется ко всем бэкендам:

Значение Поведение
auto (по умолчанию) Включать нижний колонтитул Source: <path#line> во фрагменты
on Всегда включать нижний колонтитул
off Не включать нижний колонтитул (путь всё равно передаётся агенту внутренним образом)

Когда инициализация QMD при запуске Gateway включена, OpenClaw запускает QMD только для подходящих агентов. Если update.onBoot имеет значение true и периодическое обновление или векторизация не настроены, при запуске для начального обновления используется одноразовый менеджер, который затем закрывается. Если настроен интервал обновления или векторизации, при запуске открывается долгоживущий менеджер QMD, управляющий наблюдателем и таймерами интервалов; update.onBoot: false пропускает только немедленное начальное обновление.

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

json5
{  memory: {    backend: "qmd",    citations: "auto",    qmd: {      includeDefaultMemory: true,      update: { interval: "5m", debounceMs: 15000 },      limits: { maxResults: 4, 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 являются деталями реализации.

Описание концептуального поведения и команд с косой чертой см. в разделе Dreaming.

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

Ключ Тип По умолчанию Описание
enabled boolean false Полностью включить или отключить Dreaming
frequency string 0 3 * * * Необязательное расписание Cron для полного прохода Dreaming
model string модель по умолчанию Необязательное переопределение модели субагента Dream Diary
phases.deep.maxPromotedSnippetTokens number 160 Максимальное расчётное количество токенов, сохраняемое из каждого фрагмента краткосрочного воспоминания, перенесённого в MEMORY.md; метаданные происхождения остаются видимыми

Пример

json5
{  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",          },        },      },    },  },}

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

Was this useful?
On this page

On this page