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

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

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

Спочатку встановіть офіційний постачальник llama.cpp: openclaw plugins install @openclaw/llama-cpp-provider. Типова модель: embeddinggemma-300m-qat-Q8_0.gguf (~0.6 GB, завантажується автоматично). Для початкових кодів усе ще потрібне схвалення нативного складання: 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 під час пошуку через 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 виконується як один запланований прохід і використовує внутрішні легку/глибоку/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