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 указує на адаптер векторних представлень пам’яті або сумісний з OpenAI API моделі
model string стандартне для постачальника Назва моделі векторних представлень
fallback string "none" Ідентифікатор резервного адаптера на випадок відмови основного

Якщо provider не задано, OpenClaw використовує векторні представлення OpenAI. Задайте provider явно, щоб використовувати Bedrock, DeepInfra, Gemini, GitHub Copilot, Mistral, Ollama, Voyage, локальну модель GGUF або сумісну з OpenAI кінцеву точку /v1/embeddings. Застарілі конфігурації, які досі містять 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, або для сумісних з OpenAI API моделей, як-от 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" для універсального сумісного з OpenAI сервера /v1/embeddings, який не має успадковувати глобальні облікові дані чату 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

Підтримувані моделі (із визначенням сімейства та стандартними розмірностями):

ID моделі Постачальник Розмірність за замовчуванням Налаштовувана розмірність
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) та ID профілів інференсу з префіксом регіону (наприклад, 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 токенів), водночас обмежуючи використання VRAM неваговими даними. На хостах з обмеженими ресурсами зменште до 1024–2048. "auto" використовує навчений максимум моделі — не рекомендовано для моделей 8B+ (Qwen3-Embedding-8B: до 40 960 токенів можуть збільшити використання VRAM приблизно до 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 віддає перевагу актуальним форматам колекцій і запитів MCP QMD, але зберігає сумісність зі старішими випусками 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. Та сама схема, що й у 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 виконується як один запланований прохід і використовує внутрішні легку, глибоку та 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