chore(i18n): refresh uk translations

This commit is contained in:
openclaw-docs-i18n[bot] 2026-04-27 13:14:42 +00:00
parent 4fc4590b39
commit 745fe56774
3 changed files with 326 additions and 319 deletions

View File

@ -2,14 +2,14 @@
read_when:
- Ви хочете індексувати або шукати семантичну пам’ять
- Ви налагоджуєте доступність пам’яті або індексування
- Ви хочете перенести відновлену короткочасну пам’ять до `MEMORY.md`
summary: Довідка CLI для `openclaw memory` (status/index/search/promote/promote-explain/rem-harness)
- Ви хочете перенести відновлену короткострокову пам’ять до `MEMORY.md`
summary: Довідник CLI для `openclaw memory` (status/index/search/promote/promote-explain/rem-harness)
title: Пам’ять
x-i18n:
generated_at: "2026-04-27T12:59:58Z"
generated_at: "2026-04-27T13:13:07Z"
model: gpt-5.4
provider: openai
source_hash: 965bcd0373e0146a0b1dac7e8166cab84e0d368c1d7d186e78a335f971917974
source_hash: 53301e82d4ebe72b161b3a58078e7b75b9e499bc55cbceec5032c7e410619bd4
source_path: cli/memory.md
workflow: 15
---
@ -22,7 +22,7 @@ x-i18n:
Пов’язане:
- Концепція Memory: [Пам’ять](/uk/concepts/memory)
- Вікі Memory: [Вікі пам’яті](/uk/plugins/memory-wiki)
- Вікі Memory: [Вікі Memory](/uk/plugins/memory-wiki)
- CLI вікі: [wiki](/uk/cli/wiki)
- Плагіни: [Плагіни](/uk/tools/plugin)
@ -53,97 +53,97 @@ openclaw memory index --agent main --verbose
`memory status` і `memory index`:
- `--agent <id>`: обмежити одним агентом. Без цього параметра ці команди виконуються для кожного налаштованого агента; якщо список агентів не налаштовано, вони повертаються до типового агента.
- `--verbose`: виводити докладні журнали під час перевірок та індексування.
- `--agent <id>`: обмежити однією агентою. Без цього ці команди виконуються для кожної налаштованої агенти; якщо список агентів не налаштовано, вони повертаються до типової агенти.
- `--verbose`: виводити докладні журнали під час перевірок і індексування.
`memory status`:
- `--deep`: перевірити доступність векторів і embedding. Звичайна команда `memory status` залишається швидкою і не виконує живий ping embedding.
- `--index`: виконати повторне індексування, якщо сховище забруднене (має на увазі `--deep`).
- `--fix`: виправити застарілі блокування recall і нормалізувати метадані перенесення.
- `--json`: вивести результат у форматі JSON.
- `--deep`: перевірити доступність векторів і вбудовувань. Звичайний `memory status` лишається швидким і не виконує живий ping вбудовувань. Лексичний QMD `searchMode: "search"` пропускає перевірки семантичних векторів і обслуговування вбудовувань навіть із `--deep`.
- `--index`: запустити переіндексацію, якщо сховище брудне (має на увазі `--deep`).
- `--fix`: виправити застарілі блокування відновлення та нормалізувати метадані просування.
- `--json`: вивести JSON.
Якщо `memory status` показує `Dreaming status: blocked`, це означає, що керований Cron Dreaming увімкнено, але Heartbeat, який його запускає, не спрацьовує для типового агента. Див. [Dreaming never runs](/uk/concepts/dreaming#dreaming-never-runs-status-shows-blocked) для двох найпоширеніших причин.
Якщо `memory status` показує `Dreaming status: blocked`, керований Cron Dreaming увімкнений, але Heartbeat, який його запускає, не спрацьовує для типової агенти. Див. [Dreaming never runs](/uk/concepts/dreaming#dreaming-never-runs-status-shows-blocked) щодо двох поширених причин.
`memory index`:
- `--force`: примусово виконати повне повторне індексування.
- `--force`: примусово виконати повну переіндексацію.
`memory search`:
- Вхід запиту: передайте або позиційний `[query]`, або `--query <text>`.
- Якщо передано обидва, перевагу має `--query`.
- Якщо не передано жодного, команда завершується з помилкою.
- `--agent <id>`: обмежити одним агентом (типово: типовий агент).
- Якщо вказано обидва, пріоритет має `--query`.
- Якщо не вказано жодного, команда завершується з помилкою.
- `--agent <id>`: обмежити однією агентою (типово: типова агента).
- `--max-results <n>`: обмежити кількість повернених результатів.
- `--min-score <n>`: відфільтрувати збіги з низьким балом.
- `--json`: вивести результати у форматі JSON.
- `--min-score <n>`: відфільтрувати збіги з низькою оцінкою.
- `--json`: вивести результати у JSON.
`memory promote`:
Попередній перегляд і застосування перенесення короткочасної пам’яті.
Попередній перегляд і застосування просування короткострокової пам’яті.
```bash
openclaw memory promote [--apply] [--limit <n>] [--include-promoted]
```
- `--apply` -- записати перенесення до `MEMORY.md` (типово: лише попередній перегляд).
- `--apply` -- записати просування до `MEMORY.md` (типово: лише попередній перегляд).
- `--limit <n>` -- обмежити кількість показаних кандидатів.
- `--include-promoted` -- включити записи, уже перенесені в попередніх циклах.
- `--include-promoted` -- включити записи, уже просунуті в попередніх циклах.
Повні параметри:
- Ранжує короткочасних кандидатів із `memory/YYYY-MM-DD.md` за допомогою зважених сигналів перенесення (`frequency`, `relevance`, `query diversity`, `recency`, `consolidation`, `conceptual richness`).
- Використовує короткочасні сигнали як із recall пам’яті, так і з щоденних проходів ingest, а також легкі сигнали підкріплення фаз light/REM.
- Коли Dreaming увімкнено, `memory-core` автоматично керує одним завданням Cron, яке запускає повний цикл (`light -> REM -> deep`) у фоновому режимі (ручне `openclaw cron add` не потрібне).
- `--agent <id>`: обмежити одним агентом (типово: типовий агент).
- Ранжує короткострокових кандидатів із `memory/YYYY-MM-DD.md` за зваженими сигналами просування (`frequency`, `relevance`, `query diversity`, `recency`, `consolidation`, `conceptual richness`).
- Використовує короткострокові сигнали як із відновлень пам’яті, так і з щоденних проходів поглинання, а також сигнали підсилення фаз light/REM.
- Коли Dreaming увімкнено, `memory-core` автоматично керує одним завданням Cron, яке запускає повний цикл (`light -> REM -> deep`) у фоновому режимі (ручний `openclaw cron add` не потрібен).
- `--agent <id>`: обмежити однією агентою (типово: типова агента).
- `--limit <n>`: максимальна кількість кандидатів для повернення/застосування.
- `--min-score <n>`: мінімальний зважений бал перенесення.
- `--min-recall-count <n>`: мінімальна кількість recall, потрібна для кандидата.
- `--min-unique-queries <n>`: мінімальна кількість унікальних запитів, потрібна для кандидата.
- `--apply`: додати вибраних кандидатів до `MEMORY.md` і позначити їх як перенесені.
- `--include-promoted`: включити до виводу кандидатів, уже перенесених раніше.
- `--json`: вивести результат у форматі JSON.
- `--min-score <n>`: мінімальна зважена оцінка просування.
- `--min-recall-count <n>`: мінімальна кількість відновлень, потрібна для кандидата.
- `--min-unique-queries <n>`: мінімальна кількість різних запитів, потрібна для кандидата.
- `--apply`: додати вибраних кандидатів до `MEMORY.md` і позначити їх як просунуті.
- `--include-promoted`: включити вивід уже просунутих кандидатів.
- `--json`: вивести JSON.
`memory promote-explain`:
Пояснити конкретного кандидата на перенесення і розбивку його оцінки.
Пояснити конкретного кандидата на просування та розклад його оцінки.
```bash
openclaw memory promote-explain <selector> [--agent <id>] [--include-promoted] [--json]
```
- `<selector>`: ключ кандидата, фрагмент шляху або фрагмент уривка для пошуку.
- `--agent <id>`: обмежити одним агентом (типово: типовий агент).
- `--include-promoted`: включити вже перенесених кандидатів.
- `--json`: вивести результат у форматі JSON.
- `--agent <id>`: обмежити однією агентою (типово: типова агента).
- `--include-promoted`: включити вже просунутих кандидатів.
- `--json`: вивести JSON.
`memory rem-harness`:
Попередньо переглянути REM-рефлексії, кандидатів на істини та результат deep-перенесення без жодного запису.
Попередньо переглянути REM-рефлексії, кандидатні істини та вивід deep-просування без будь-якого запису.
```bash
openclaw memory rem-harness [--agent <id>] [--include-promoted] [--json]
```
- `--agent <id>`: обмежити одним агентом (типово: типовий агент).
- `--include-promoted`: включити вже перенесених deep-кандидатів.
- `--json`: вивести результат у форматі JSON.
- `--agent <id>`: обмежити однією агентою (типово: типова агента).
- `--include-promoted`: включити вже просунутих deep-кандидатів.
- `--json`: вивести JSON.
## Dreaming
Dreaming — це фонова система консолідації пам’яті з трьома кооперативними
фазами: **light** (сортування/підготовка короткочасного матеріалу), **deep** (перенесення
стійких фактів до `MEMORY.md`) і **REM** (рефлексія та виявлення тем).
фазами: **light** (сортування/підготовка короткострокового матеріалу), **deep** (просування
сталих фактів до `MEMORY.md`) і **REM** (рефлексія та виявлення тем).
- Увімкніть через `plugins.entries.memory-core.config.dreaming.enabled: true`.
- Перемикайте з чату командою `/dreaming on|off` (або переглядайте через `/dreaming status`).
- Dreaming працює за одним керованим розкладом циклів (`dreaming.frequency`) і виконує фази в порядку: light, REM, deep.
- Лише фаза deep записує стійку пам’ять до `MEMORY.md`.
- Зрозумілий для людини вивід фаз і записи щоденника записуються до `DREAMS.md` (або наявного `dreams.md`), з необов’язковими звітами по фазах у `memory/dreaming/<phase>/YYYY-MM-DD.md`.
- Ранжування використовує зважені сигнали: частоту recall, релевантність отримання, різноманітність запитів, часову давність, консолідацію між днями та похідну концептуальну насиченість.
- Перед записом до `MEMORY.md` перенесення повторно зчитує актуальну щоденну нотатку, тож відредаговані або видалені короткочасні уривки не будуть перенесені зі застарілих знімків сховища recall.
- Заплановані й ручні запуски `memory promote` використовують однакові типові значення фази deep, якщо ви не передасте перевизначення порогів через CLI.
- Перемикайте з чату за допомогою `/dreaming on|off` (або перевіряйте через `/dreaming status`).
- Dreaming працює за одним керованим розкладом циклу (`dreaming.frequency`) і виконує фази в порядку: light, REM, deep.
- Лише фаза deep записує сталу пам’ять до `MEMORY.md`.
- Людинозрозумілий вивід фаз і записи щоденника пишуться до `DREAMS.md` (або наявного `dreams.md`), з необов’язковими звітами по фазах у `memory/dreaming/<phase>/YYYY-MM-DD.md`.
- Ранжування використовує зважені сигнали: частота відновлення, релевантність витягування, різноманіття запитів, часова новизна, міжденна консолідація та похідне концептуальне багатство.
- Під час просування перед записом до `MEMORY.md` повторно читається жива щоденна нотатка, тож відредаговані або видалені короткострокові уривки не будуть просунуті зі застарілих знімків сховища відновлень.
- Заплановані та ручні запуски `memory promote` використовують однакові типові значення фази deep, якщо ви не передасте перевизначення порогів через CLI.
- Автоматичні запуски розподіляються між налаштованими робочими просторами пам’яті.
Типовий розклад:
@ -173,16 +173,16 @@ Dreaming — це фонова система консолідації пам’
- `memory index --verbose` виводить подробиці по фазах (провайдер, модель, джерела, активність пакетів).
- `memory status` включає всі додаткові шляхи, налаштовані через `memorySearch.extraPaths`.
- Якщо фактично активні поля ключів віддаленого API пам’яті налаштовані як SecretRefs, команда розв’язує ці значення з активного знімка Gateway. Якщо Gateway недоступний, команда завершується помилкою одразу.
- Примітка щодо розсинхронізації версій Gateway: цей шлях команди потребує Gateway, який підтримує `secrets.resolve`; старіші Gateway повертають помилку unknown-method.
- Налаштовуйте частоту запланованих циклів через `dreaming.frequency`. Політика deep-перенесення інакше є внутрішньою; використовуйте прапорці CLI в `memory promote`, коли потрібні одноразові ручні перевизначення.
- `memory rem-harness --path <file-or-dir> --grounded` попередньо переглядає прив’язані до джерела `What Happened`, `Reflections` і `Possible Lasting Updates` з історичних щоденних нотаток без жодного запису.
- `memory rem-backfill --path <file-or-dir>` записує зворотні прив’язані до джерела записи щоденника в `DREAMS.md` для перегляду в UI.
- `memory rem-backfill --path <file-or-dir> --stage-short-term` також додає прив’язаних до джерела стійких кандидатів до активного короткочасного сховища перенесення, щоб звичайна фаза deep могла їх ранжувати.
- `memory rem-backfill --rollback` видаляє раніше записані прив’язані до джерела записи щоденника, а `memory rem-backfill --rollback-short-term` видаляє раніше підготовлених прив’язаних до джерела короткочасних кандидатів.
- Див. [Dreaming](/uk/concepts/dreaming) для повних описів фаз і довідки з конфігурації.
- Якщо поля ключів віддаленого API active memory, які фактично використовуються, налаштовані як SecretRefs, команда отримує ці значення з активного знімка Gateway. Якщо Gateway недоступний, команда швидко завершується з помилкою.
- Примітка про розсинхронізацію версій Gateway: цей шлях команди потребує Gateway, який підтримує `secrets.resolve`; старіші Gateway повертають помилку unknown-method.
- Налаштуйте частоту запланованого циклу через `dreaming.frequency`. Політика deep-просування в іншому разі є внутрішньою; використовуйте прапорці CLI в `memory promote`, коли потрібні разові ручні перевизначення.
- `memory rem-harness --path <file-or-dir> --grounded` попередньо переглядає прив’язані до джерела `What Happened`, `Reflections` і `Possible Lasting Updates` з історичних щоденних нотаток без будь-якого запису.
- `memory rem-backfill --path <file-or-dir>` записує оборотні прив’язані до джерела записи щоденника в `DREAMS.md` для перегляду в інтерфейсі.
- `memory rem-backfill --path <file-or-dir> --stage-short-term` також засіває прив’язаних до джерела сталих кандидатів до живого короткострокового сховища просування, щоб звичайна фаза deep могла їх ранжувати.
- `memory rem-backfill --rollback` видаляє раніше записані прив’язані до джерела записи щоденника, а `memory rem-backfill --rollback-short-term` видаляє раніше підготовлених прив’язаних до джерела короткострокових кандидатів.
- Див. [Dreaming](/uk/concepts/dreaming) для повного опису фаз і довідника з налаштування.
## Пов’язане
- [Довідка CLI](/uk/cli)
- [Довідник CLI](/uk/cli)
- [Огляд пам’яті](/uk/concepts/memory)

View File

@ -1,40 +1,41 @@
---
read_when:
- Ви хочете налаштувати QMD як свій бекенд пам’яті
- Вам потрібні розширені функції пам’яті, як-от переранжування або додаткові проіндексовані шляхи
summary: Локальний насамперед пошуковий sidecar із BM25, векторами, переранжуванням і розширенням запиту
title: рушій пам’яті QMD
- Вам потрібні розширені можливості пам’яті, як-от reranking або додаткові індексовані шляхи
summary: Локальний sidecar для пошуку з BM25, векторами, reranking і розширенням запиту
title: Рушій пам’яті QMD
x-i18n:
generated_at: "2026-04-25T07:28:36Z"
generated_at: "2026-04-27T13:13:08Z"
model: gpt-5.4
provider: openai
source_hash: 89e6a5e0c8f5fb8507dffd08975fec0ca6fda03883079a27c2a28a1d09e95368
source_hash: f19cfee3cd94ee0bfff97f2758e788790ade628f89ecdf99bf954e2894a2e7e8
source_path: concepts/memory-qmd.md
workflow: 15
---
[QMD](https://github.com/tobi/qmd) — це локальний насамперед пошуковий sidecar, який працює
поруч із OpenClaw. Він поєднує BM25, векторний пошук і переранжування в одному
бінарному файлі, а також може індексувати вміст за межами файлів пам’яті вашого робочого простору.
[QMD](https://github.com/tobi/qmd) — це локальний sidecar для пошуку, який працює
поруч з OpenClaw. Він поєднує BM25, векторний пошук і reranking в одному
бінарному файлі та може індексувати вміст поза файлами пам’яті вашого робочого
простору.
## Що він додає понад вбудоване рішення
## Що він додає порівняно з вбудованим рушієм
- **Переранжування та розширення запиту** для кращого охоплення результатів.
- **Індексування додаткових директорій** — документація проєкту, нотатки команди, будь-що на диску.
- **Індексування транскриптів сесій** — відтворення попередніх розмов.
- **Повністю локальна робота** — працює з додатковим runtime-пакетом node-llama-cpp і
- **Reranking і розширення запиту** для кращого охоплення.
- **Індексація додаткових директорій** — документація проєкту, нотатки команди, будь-що на диску.
- **Індексація транскриптів сесій** — для згадування попередніх розмов.
- **Повністю локально** — працює з необов’язковим пакетом середовища виконання node-llama-cpp і
автоматично завантажує моделі GGUF.
- **Автоматичний резервний перехід** — якщо QMD недоступний, OpenClaw безшовно повертається
до вбудованого рушія.
- **Автоматичний fallback** — якщо QMD недоступний, OpenClaw безшовно повертається до
вбудованого рушія.
## Початок роботи
## Швидкий початок
### Передумови
- Встановіть QMD: `npm install -g @tobilu/qmd` або `bun install -g @tobilu/qmd`
- Установіть QMD: `npm install -g @tobilu/qmd` або `bun install -g @tobilu/qmd`
- Збірка SQLite, яка дозволяє розширення (`brew install sqlite` на macOS).
- QMD має бути в `PATH` Gateway.
- macOS і Linux працюють одразу. Windows найкраще підтримується через WSL2.
- QMD має бути в `PATH` шлюзу.
- macOS і Linux працюють одразу. На Windows найкраща підтримка через WSL2.
### Увімкнення
@ -46,35 +47,36 @@ x-i18n:
}
```
OpenClaw створює самодостатню домашню директорію QMD у
OpenClaw створює самодостатній домашній каталог QMD у
`~/.openclaw/agents/<agentId>/qmd/` і автоматично керує життєвим циклом sidecar —
колекції, оновлення та запуск вбудовування обробляються автоматично.
Він надає перевагу поточним формам колекцій QMD і запитів MCP, але за потреби
все одно повертається до застарілих прапорців колекцій `--mask` і старіших
імен інструментів MCP.
Узгодження під час запуску також відтворює застарілі керовані колекції до їхніх
канонічних шаблонів, коли ще присутня старіша колекція QMD з тією самою назвою.
колекції, оновлення та запуск embedding обробляються автоматично.
Він надає перевагу актуальним формам колекцій QMD і запитів MCP, але за потреби
все одно повертається до застарілих прапорців колекцій `--mask` і старіших назв інструментів MCP.
Погодження під час запуску також повторно створює застарілі керовані колекції за їхніми
канонічними шаблонами, якщо старіша колекція QMD з тією самою назвою все ще присутня.
## Як працює sidecar
- OpenClaw створює колекції з файлів пам’яті вашого робочого простору та будь-яких
налаштованих `memory.qmd.paths`, після чого запускає `qmd update` + `qmd embed` під час запуску
і періодично (типово кожні 5 хвилин).
- OpenClaw створює колекції з файлів пам’яті вашого робочого простору та всіх
налаштованих `memory.qmd.paths`, потім запускає `qmd update` під час запуску й
періодично (типово кожні 5 хвилин). У семантичних режимах також запускається `qmd embed`.
- Типова колекція робочого простору відстежує `MEMORY.md` і дерево `memory/`.
`memory.md` у нижньому регістрі не індексується як кореневий файл пам’яті.
- Оновлення під час запуску виконується у фоновому режимі, тому запуск чату не блокується.
- Пошук використовує налаштований `searchMode` (типово: `search`; також підтримуються
`vsearch` і `query`). Якщо якийсь режим завершується з помилкою, OpenClaw повторює спробу з `qmd query`.
- Якщо QMD повністю не працює, OpenClaw повертається до вбудованого рушія SQLite.
- Оновлення під час запуску виконується у фоновому режимі, щоб не блокувати старт чату.
- Для пошуку використовується налаштований `searchMode` (типово: `search`; також підтримуються
`vsearch` і `query`). `search` використовує лише BM25, тому OpenClaw пропускає перевірки
готовності семантичних векторів і підтримку embedding у цьому режимі. Якщо режим дає збій,
OpenClaw повторює спробу з `qmd query`.
- Якщо QMD повністю виходить з ладу, OpenClaw повертається до вбудованого рушія SQLite.
<Info>
Перший пошук може бути повільним — QMD автоматично завантажує моделі GGUF (~2 ГБ) для
переранжування та розширення запиту під час першого запуску `qmd query`.
reranking і розширення запиту під час першого запуску `qmd query`.
</Info>
## Перевизначення моделей
Змінні середовища моделей QMD передаються без змін із процесу Gateway,
Змінні середовища моделей QMD передаються без змін із процесу шлюзу,
тому ви можете глобально налаштовувати QMD без додавання нової конфігурації OpenClaw:
```bash
@ -83,10 +85,10 @@ export QMD_RERANK_MODEL="/absolute/path/to/reranker.gguf"
export QMD_GENERATE_MODEL="/absolute/path/to/generator.gguf"
```
Після зміни моделі вбудовування повторно запустіть вбудовування, щоб індекс відповідав
Після зміни моделі embedding повторно запустіть embedding, щоб індекс відповідав
новому векторному простору.
## Індексування додаткових шляхів
## Індексація додаткових шляхів
Спрямуйте QMD на додаткові директорії, щоб зробити їх доступними для пошуку:
@ -105,9 +107,9 @@ export QMD_GENERATE_MODEL="/absolute/path/to/generator.gguf"
результатах пошуку. `memory_get` розуміє цей префікс і читає з правильного
кореня колекції.
## Індексування транскриптів сесій
## Індексація транскриптів сесій
Увімкніть індексування сесій, щоб відтворювати попередні розмови:
Увімкніть індексацію сесій, щоб згадувати попередні розмови:
```json5
{
@ -120,8 +122,8 @@ export QMD_GENERATE_MODEL="/absolute/path/to/generator.gguf"
}
```
Транскрипти експортуються як очищені ходи User/Assistant в окрему
колекцію QMD у `~/.openclaw/agents/<id>/qmd/sessions/`.
Транскрипти експортуються як санітизовані ходи User/Assistant в окрему колекцію QMD
у `~/.openclaw/agents/<id>/qmd/sessions/`.
## Область пошуку
@ -141,58 +143,61 @@ export QMD_GENERATE_MODEL="/absolute/path/to/generator.gguf"
}
```
Коли область дії забороняє пошук, OpenClaw записує попередження з похідними channel і
Коли область видимості забороняє пошук, OpenClaw записує попередження з похідними channel і
типом чату, щоб порожні результати було легше налагоджувати.
## Цитування
## Цитати
Коли `memory.citations` має значення `auto` або `on`, пошукові фрагменти містять
Коли `memory.citations` має значення `auto` або `on`, фрагменти пошуку містять
нижній колонтитул `Source: <path#line>`. Установіть `memory.citations = "off"`, щоб прибрати нижній колонтитул,
але при цьому все одно передавати шлях агенту внутрішньо.
водночас усе одно передаючи шлях агенту внутрішньо.
## Коли використовувати
## Коли варто використовувати
Вибирайте QMD, коли вам потрібно:
Обирайте QMD, коли вам потрібно:
- Переранжування для вищої якості результатів.
- Шукати в документації проєкту або нотатках поза робочим простором.
- Відтворювати розмови з минулих сесій.
- Reranking для результатів вищої якості.
- Шукати документацію проєкту або нотатки поза межами робочого простору.
- Згадувати розмови з минулих сесій.
- Повністю локальний пошук без API-ключів.
Для простіших сценаріїв [вбудований рушій](/uk/concepts/memory-builtin) добре підходить
і не потребує додаткових залежностей.
Для простіших налаштувань добре підходить [вбудований рушій](/uk/concepts/memory-builtin)
без додаткових залежностей.
## Усунення несправностей
**QMD не знайдено?** Переконайтеся, що бінарний файл є в `PATH` Gateway. Якщо OpenClaw
**QMD не знайдено?** Переконайтеся, що бінарний файл є в `PATH` шлюзу. Якщо OpenClaw
працює як сервіс, створіть символічне посилання:
`sudo ln -s ~/.bun/bin/qmd /usr/local/bin/qmd`.
**Перший пошук дуже повільний?** QMD завантажує моделі GGUF під час першого використання. Попередньо прогрійте
його за допомогою `qmd query "test"` із тими самими директоріями XDG, які використовує OpenClaw.
через `qmd query "test"` з тими самими каталогами XDG, які використовує OpenClaw.
**QMD лише з BM25 усе ще намагається зібрати llama.cpp?** Установіть
`memory.qmd.searchMode = "search"`. OpenClaw трактує цей режим як суто лексичний,
не запускає перевірки стану векторів QMD або підтримку embedding і залишає
перевірки семантичної готовності для конфігурацій `vsearch` або `query`.
**Пошук завершується за тайм-аутом?** Збільште `memory.qmd.limits.timeoutMs` (типово: 4000 мс).
Для повільнішого обладнання встановіть `120000`.
**Порожні результати в групових чатах?** Перевірте `memory.qmd.scope` — типово
дозволені лише прямі сесії та сесії каналів.
**Порожні результати в групових чатах?** Перевірте `memory.qmd.scope` — типово він
дозволяє лише прямі сесії та сесії каналів.
**Пошук кореневої пам’яті раптом став надто широким?** Перезапустіть Gateway або дочекайтеся
наступного узгодження під час запуску. OpenClaw відтворює застарілі керовані колекції
до канонічних шаблонів `MEMORY.md` і `memory/`, коли виявляє конфлікт
з однаковою назвою.
**Пошук кореневої пам’яті раптом став надто широким?** Перезапустіть шлюз або дочекайтеся
наступного погодження під час запуску. OpenClaw повторно створює застарілі керовані колекції
за канонічними шаблонами `MEMORY.md` і `memory/`, коли виявляє конфлікт однакових назв.
**Тимчасові репозиторії, видимі в робочому просторі, спричиняють `ENAMETOOLONG` або зламане індексування?**
Обхід QMD зараз дотримується поведінки базового сканера QMD, а не
правил символьних посилань вбудованого рушія OpenClaw. Тримайте тимчасові monorepo checkout-и в
прихованих директоріях, як-от `.tmp/`, або поза індексованими коренями QMD, доки QMD не надасть
безпечний щодо циклів обхід або явні засоби керування виключеннями.
**Тимчасові репозиторії, видимі в робочому просторі, спричиняють `ENAMETOOLONG` або зламану індексацію?**
Обхід QMD наразі дотримується поведінки базового сканера QMD, а не правил символьних посилань
вбудованого рушія OpenClaw. Тримайте тимчасові checkout-и монорепозиторіїв у
прихованих директоріях, таких як `.tmp/`, або поза індексованими коренями QMD, доки QMD не надасть
безпечний до циклів обхід або явні засоби керування виключеннями.
## Конфігурація
Щоб переглянути повну поверхню конфігурації (`memory.qmd.*`), режими пошуку, інтервали оновлення,
правила області дії та всі інші параметри, дивіться
[довідник із конфігурації пам’яті](/uk/reference/memory-config).
правила області видимості та всі інші параметри, див. [довідник з конфігурації пам’яті](/uk/reference/memory-config).
## Пов’язане

View File

@ -1,66 +1,66 @@
---
read_when:
- Ви хочете налаштувати провайдерів memory search або embedding-моделі.
- Ви хочете налаштувати QMD backend.
- Ви хочете налаштувати hybrid search, MMR або temporal decay.
- Ви хочете ввімкнути multimodal indexing пам’яті.
- Ви хочете налаштувати провайдерів пошуку в пам’яті або моделі ембедингів
- Ви хочете налаштувати бекенд QMD
- Ви хочете налаштувати гібридний пошук, MMR або часове згасання
- Ви хочете увімкнути мультимодальну індексацію пам’яті
sidebarTitle: Memory config
summary: Усі параметри config для memory search, embedding providers, QMD, hybrid search і multimodal indexing
title: довідник з config пам’яті
summary: Усі параметри конфігурації для пошуку в пам’яті, провайдерів ембедингів, QMD, гібридного пошуку та мультимодальної індексації
title: Довідник із конфігурації пам’яті
x-i18n:
generated_at: "2026-04-27T11:04:15Z"
generated_at: "2026-04-27T13:13:08Z"
model: gpt-5.4
provider: openai
source_hash: 14d879353014792d7a18e26b838519be8c52b2755e7a10f5f8e5ddf5b1ac09cc
source_hash: e063a62b44b7d4fa2df017301cf675678ab71a65f53c78af85f0aa925bb79277
source_path: reference/memory-config.md
workflow: 15
---
На цій сторінці перелічено всі параметри config для memory search в OpenClaw. Концептуальні огляди див. тут:
На цій сторінці перелічено всі параметри конфігурації для пошуку в пам’яті OpenClaw. Для концептуальних оглядів див.:
<CardGroup cols={2}>
<Card title="Огляд пам’яті" href="/uk/concepts/memory">
Як працює пам’ять.
</Card>
<Card title="Вбудований рушій" href="/uk/concepts/memory-builtin">
Типовий backend SQLite.
Типовий бекенд SQLite.
</Card>
<Card title="Рушій QMD" href="/uk/concepts/memory-qmd">
Локальний sidecar у стилі local-first.
Локально-орієнтований sidecar.
</Card>
<Card title="Пошук у пам’яті" href="/uk/concepts/memory-search">
Конвеєр пошуку та налаштування.
</Card>
<Card title="Active Memory" href="/uk/concepts/active-memory">
Субагент пам’яті для інтерактивних сесій.
Підагент пам’яті для інтерактивних сеансів.
</Card>
</CardGroup>
Усі налаштування memory search живуть у `agents.defaults.memorySearch` у `openclaw.json`, якщо не зазначено інше.
Усі налаштування пошуку в пам’яті знаходяться в `agents.defaults.memorySearch` у `openclaw.json`, якщо не вказано інше.
<Note>
Якщо ви шукаєте перемикач функції **Active Memory** і config субагента, він знаходиться в `plugins.entries.active-memory`, а не в `memorySearch`.
Якщо ви шукаєте перемикач функції **active memory** і конфігурацію підагента, вони знаходяться в `plugins.entries.active-memory`, а не в `memorySearch`.
Active Memory використовує модель із двома шлюзами:
Active memory використовує двоетапну модель:
1. Plugin має бути ввімкнений і націлений на поточний id агента
2. запит має належати до придатної інтерактивної постійної сесії чату
1. plugin має бути увімкнений і націлений на поточний id агента
2. запит має бути придатним інтерактивним постійним сеансом чату
Див. [Active Memory](/uk/concepts/active-memory), щоб дізнатися про модель активації, config на боці Plugin, збереження transcript і безпечний шаблон поступового впровадження.
Див. [Active Memory](/uk/concepts/active-memory) щодо моделі активації, конфігурації, якою керує plugin, збереження транскриптів і безпечної схеми розгортання.
</Note>
---
## Вибір провайдера
| Ключ | Тип | Типове значення | Опис |
| --------- | --------- | --------------- | -------------------------------------------------------------------------------------------------------------- |
| `provider` | `string` | auto-detected | ID embedding adapter: `bedrock`, `gemini`, `github-copilot`, `local`, `mistral`, `ollama`, `openai`, `voyage` |
| `model` | `string` | типове значення провайдера | Назва embedding-моделі |
| `fallback` | `string` | `"none"` | ID fallback adapter, якщо основний завершується помилкою |
| `enabled` | `boolean` | `true` | Увімкнути або вимкнути memory search |
| Ключ | Тип | Типово | Опис |
| ---------- | --------- | ---------------- | ------------------------------------------------------------------------------------------------------------- |
| `provider` | `string` | автоматично визначається | ID адаптера ембедингів: `bedrock`, `gemini`, `github-copilot`, `local`, `mistral`, `ollama`, `openai`, `voyage` |
| `model` | `string` | типове значення провайдера | Назва моделі ембедингів |
| `fallback` | `string` | `"none"` | ID резервного адаптера, якщо основний завершується помилкою |
| `enabled` | `boolean` | `true` | Увімкнути або вимкнути пошук у пам’яті |
### Порядок автовиявлення
### Порядок автовизначення
Коли `provider` не задано, OpenClaw вибирає перший доступний:
@ -69,56 +69,56 @@ Active Memory використовує модель із двома шлюзам
Вибирається, якщо налаштовано `memorySearch.local.modelPath` і файл існує.
</Step>
<Step title="github-copilot">
Вибирається, якщо можна визначити токен GitHub Copilot (змінна env або auth profile).
Вибирається, якщо вдається визначити токен GitHub Copilot (змінна середовища або профіль автентифікації).
</Step>
<Step title="openai">
Вибирається, якщо можна визначити ключ OpenAI.
Вибирається, якщо вдається визначити ключ OpenAI.
</Step>
<Step title="gemini">
Вибирається, якщо можна визначити ключ Gemini.
Вибирається, якщо вдається визначити ключ Gemini.
</Step>
<Step title="voyage">
Вибирається, якщо можна визначити ключ Voyage.
Вибирається, якщо вдається визначити ключ Voyage.
</Step>
<Step title="mistral">
Вибирається, якщо можна визначити ключ Mistral.
Вибирається, якщо вдається визначити ключ Mistral.
</Step>
<Step title="bedrock">
Вибирається, якщо ланцюжок credentials AWS SDK успішно визначається (роль інстансу, ключі доступу, profile, SSO, web identity або shared config).
Вибирається, якщо ланцюжок облікових даних AWS SDK успішно визначається (роль екземпляра, ключі доступу, профіль, SSO, веб-ідентичність або спільна конфігурація).
</Step>
</Steps>
`ollama` підтримується, але не визначається автоматично (задайте його явно).
### Визначення API key
### Визначення API-ключа
Для віддалених embeddings потрібен API key. Натомість Bedrock використовує типовий ланцюжок credentials AWS SDK (ролі інстансу, SSO, ключі доступу).
Для віддалених ембедингів потрібен API-ключ. Натомість Bedrock використовує типовий ланцюжок облікових даних AWS SDK (ролі екземпляра, SSO, ключі доступу).
| Провайдер | Змінна env | Ключ config |
| -------------- | -------------------------------------------------- | --------------------------------- |
| Bedrock | ланцюжок credentials AWS | API key не потрібен |
| Gemini | `GEMINI_API_KEY` | `models.providers.google.apiKey` |
| GitHub Copilot | `COPILOT_GITHUB_TOKEN`, `GH_TOKEN`, `GITHUB_TOKEN` | Auth profile через device login |
| Mistral | `MISTRAL_API_KEY` | `models.providers.mistral.apiKey` |
| Ollama | `OLLAMA_API_KEY` (placeholder) | -- |
| OpenAI | `OPENAI_API_KEY` | `models.providers.openai.apiKey` |
| Voyage | `VOYAGE_API_KEY` | `models.providers.voyage.apiKey` |
| Провайдер | Змінна середовища | Ключ конфігурації |
| -------------- | ------------------------------------------------- | -------------------------------- |
| Bedrock | ланцюжок облікових даних AWS | API-ключ не потрібен |
| 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` |
<Note>
Codex OAuth покриває лише chat/completions і не задовольняє embedding-запити.
Codex OAuth покриває лише chat/completions і не задовольняє запити ембедингів.
</Note>
---
## Config віддаленого endpoint
## Конфігурація віддаленої кінцевої точки
Для кастомних OpenAI-compatible endpoint або перевизначення типових значень провайдера:
Для користувацьких OpenAI-сумісних кінцевих точок або перевизначення типових значень провайдера:
<ParamField path="remote.baseUrl" type="string">
Кастомний базовий URL API.
Користувацька базова URL-адреса API.
</ParamField>
<ParamField path="remote.apiKey" type="string">
Перевизначає API key.
Перевизначити API-ключ.
</ParamField>
<ParamField path="remote.headers" type="object">
Додаткові HTTP-заголовки (об’єднуються з типовими значеннями провайдера).
@ -143,28 +143,28 @@ Codex OAuth покриває лише chat/completions і не задоволь
---
## Специфічний для провайдера config
## Конфігурація для окремих провайдерів
<AccordionGroup>
<Accordion title="Gemini">
| Ключ | Тип | Типове значення | Опис |
| ---------------------- | -------- | --------------------- | ------------------------------------------ |
| `model` | `string` | `gemini-embedding-001` | Також підтримує `gemini-embedding-2-preview` |
| `outputDimensionality` | `number` | `3072` | Для Embedding 2: 768, 1536 або 3072 |
| Ключ | Тип | Типово | Опис |
| ---------------------- | -------- | ---------------------- | ------------------------------------------ |
| `model` | `string` | `gemini-embedding-001` | Також підтримується `gemini-embedding-2-preview` |
| `outputDimensionality` | `number` | `3072` | Для Embedding 2: 768, 1536 або 3072 |
<Warning>
Зміна `model` або `outputDimensionality` запускає автоматичне повне переіндексування.
Зміна моделі або `outputDimensionality` запускає автоматичну повну переіндексацію.
</Warning>
</Accordion>
<Accordion title="OpenAI-compatible input types">
OpenAI-compatible embedding endpoint можуть використовувати специфічні для провайдера поля запиту `input_type`. Це корисно для асиметричних embedding-моделей, яким потрібні різні мітки для query embeddings і document embeddings.
OpenAI-сумісні кінцеві точки ембедингів можуть використовувати специфічні для провайдера поля запиту `input_type`. Це корисно для асиметричних моделей ембедингів, яким потрібні різні мітки для ембедингів запиту та документа.
| Ключ | Тип | Типове значення | Опис |
| ------------------- | -------- | --------------- | ----------------------------------------------------- |
| `inputType` | `string` | не задано | Спільний `input_type` для query і document embeddings |
| `queryInputType` | `string` | не задано | `input_type` під час query; перевизначає `inputType` |
| `documentInputType` | `string` | не задано | `input_type` для індексу/документа; перевизначає `inputType` |
| Ключ | Тип | Типово | Опис |
| ------------------- | -------- | ------ | ----------------------------------------------------- |
| `inputType` | `string` | не задано | Спільний `input_type` для ембедингів запиту й документа |
| `queryInputType` | `string` | не задано | `input_type` під час запиту; перевизначає `inputType` |
| `documentInputType` | `string` | не задано | `input_type` для індексу/документа; перевизначає `inputType` |
```json5
{
@ -185,11 +185,11 @@ Codex OAuth покриває лише chat/completions і не задоволь
}
```
Зміна цих значень впливає на ідентичність кешу embeddings для batch-індексування провайдера, і після цього слід виконати переіндексування пам’яті, якщо upstream-модель по-різному обробляє ці мітки.
Зміна цих значень впливає на ідентичність кешу ембедингів для пакетної індексації провайдера, і після цього слід виконати переіндексацію пам’яті, якщо вищерозташована модель по-різному обробляє ці мітки.
</Accordion>
<Accordion title="Bedrock">
Bedrock використовує типовий ланцюжок credentials AWS SDK — API key не потрібні. Якщо OpenClaw працює на EC2 з роллю інстансу Bedrock, достатньо просто вказати провайдера та модель:
Bedrock використовує типовий ланцюжок облікових даних AWS SDK — API-ключі не потрібні. Якщо OpenClaw працює на EC2 з роллю екземпляра, у якої ввімкнено Bedrock, просто задайте провайдера і модель:
```json5
{
@ -204,12 +204,12 @@ Codex OAuth покриває лише chat/completions і не задоволь
}
```
| Ключ | Тип | Типове значення | Опис |
| ---------------------- | -------- | ------------------------------- | --------------------------------- |
| `model` | `string` | `amazon.titan-embed-text-v2:0` | Будь-який ID embedding-моделі Bedrock |
| `outputDimensionality` | `number` | типове значення моделі | Для Titan V2: 256, 512 або 1024 |
| Ключ | Тип | Типово | Опис |
| ---------------------- | -------- | ------------------------------ | -------------------------------- |
| `model` | `string` | `amazon.titan-embed-text-v2:0` | Будь-який ID моделі ембедингів Bedrock |
| `outputDimensionality` | `number` | типове значення моделі | Для Titan V2: 256, 512 або 1024 |
**Підтримувані моделі** (з визначенням сімейства та типовими розмірностями):
**Підтримувані моделі** (із визначенням сімейства та типовими розмірностями):
| ID моделі | Провайдер | Типові розмірності | Налаштовувані розмірності |
| ------------------------------------------ | ---------- | ------------------ | ------------------------- |
@ -224,19 +224,19 @@ Codex OAuth покриває лише chat/completions і не задоволь
| `twelvelabs.marengo-embed-3-0-v1:0` | TwelveLabs | 512 | -- |
| `twelvelabs.marengo-embed-2-7-v1:0` | TwelveLabs | 1024 | -- |
Варіанти з суфіксом throughput (наприклад, `amazon.titan-embed-text-v1:2:8k`) успадковують конфігурацію базової моделі.
Варіанти з суфіксом пропускної здатності (наприклад, `amazon.titan-embed-text-v1:2:8k`) успадковують конфігурацію базової моделі.
**Автентифікація:** auth Bedrock використовує стандартний порядок визначення credentials AWS SDK:
**Автентифікація:** автентифікація Bedrock використовує стандартний порядок визначення облікових даних AWS SDK:
1. Змінні середовища (`AWS_ACCESS_KEY_ID` + `AWS_SECRET_ACCESS_KEY`)
2. Кеш токенів SSO
3. Credentials токена web identity
4. Shared credentials і config-файли
5. Credentials метаданих ECS або EC2
3. Облікові дані токена веб-ідентичності
4. Спільні файли облікових даних і конфігурації
5. Облікові дані метаданих ECS або EC2
Регіон визначається з `AWS_REGION`, `AWS_DEFAULT_REGION`, `baseUrl` провайдера `amazon-bedrock` або типово дорівнює `us-east-1`.
Регіон визначається з `AWS_REGION`, `AWS_DEFAULT_REGION`, `baseUrl` провайдера `amazon-bedrock` або за замовчуванням використовується `us-east-1`.
**Права IAM:** ролі або користувачу IAM потрібно:
**Дозволи IAM:** роль або користувач IAM мають мати:
```json
{
@ -246,7 +246,7 @@ Codex OAuth покриває лише chat/completions і не задоволь
}
```
Для мінімально необхідних привілеїв обмежте `InvokeModel` конкретною моделлю:
Для принципу найменших привілеїв обмежте `InvokeModel` конкретною моделлю:
```
arn:aws:bedrock:*::foundation-model/amazon.titan-embed-text-v2:0
@ -254,13 +254,13 @@ Codex OAuth покриває лише chat/completions і не задоволь
</Accordion>
<Accordion title="Local (GGUF + node-llama-cpp)">
| Ключ | Тип | Типове значення | Опис |
| --------------------- | ------------------ | --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `local.modelPath` | `string` | автоматично завантажується | Шлях до файлу моделі GGUF |
| `local.modelCacheDir` | `string` | типове значення node-llama-cpp | Каталог кешу для завантажених моделей |
| `local.contextSize` | `number \| "auto"` | `4096` | Розмір вікна контексту для embedding-контексту. 4096 покриває типові chunks (128512 токенів), водночас обмежуючи VRAM, не пов’язану з вагами. На обмежених хостах знижуйте до 10242048. `"auto"` використовує натренований максимум моделі — не рекомендується для моделей 8B+ (Qwen3-Embedding-8B: 40 960 токенів → ~32 GB VRAM проти ~8.8 GB при 4096). |
| Ключ | Тип | Типово | Опис |
| --------------------- | ------------------ | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `local.modelPath` | `string` | автоматично завантажується | Шлях до файлу моделі GGUF |
| `local.modelCacheDir` | `string` | типове значення node-llama-cpp | Каталог кешу для завантажених моделей |
| `local.contextSize` | `number \| "auto"` | `4096` | Розмір контекстного вікна для контексту ембедингів. 4096 охоплює типові фрагменти (128512 токенів), водночас обмежуючи VRAM, не пов’язану з вагами. Зменште до 10242048 на ресурсно обмежених хостах. `"auto"` використовує навчений максимум моделі — не рекомендується для моделей 8B+ (Qwen3-Embedding-8B: 40 960 токенів → ~32 ГБ VRAM проти ~8.8 ГБ при 4096). |
Типова модель: `embeddinggemma-300m-qat-Q8_0.gguf` (~0.6 GB, завантажується автоматично). Потребує нативної збірки: `pnpm approve-builds`, потім `pnpm rebuild node-llama-cpp`.
Типова модель: `embeddinggemma-300m-qat-Q8_0.gguf` (~0.6 ГБ, завантажується автоматично). Потрібна нативна збірка: `pnpm approve-builds`, потім `pnpm rebuild node-llama-cpp`.
Використовуйте окремий CLI, щоб перевірити той самий шлях провайдера, який використовує Gateway:
@ -274,41 +274,41 @@ Codex OAuth покриває лише chat/completions і не задоволь
</Accordion>
</AccordionGroup>
### Timeout вбудованих embeddings
### Тайм-аут вбудованих ембедингів
<ParamField path="sync.embeddingBatchTimeoutSeconds" type="number">
Перевизначає timeout для вбудованих пакетів embeddings під час індексування пам’яті.
Перевизначити тайм-аут для вбудованих пакетів ембедингів під час індексації пам’яті.
Якщо не задано, використовується типове значення провайдера: 600 секунд для локальних/self-hosted провайдерів, таких як `local`, `ollama` і `lmstudio`, і 120 секунд для hosted-провайдерів. Збільшуйте це значення, якщо локальні пакети embeddings, обмежені CPU, працюють коректно, але повільно.
Якщо не задано, використовується типове значення провайдера: 600 секунд для локальних/self-hosted провайдерів, таких як `local`, `ollama` і `lmstudio`, та 120 секунд для хостингових провайдерів. Збільшуйте це значення, якщо локальні CPU-обмежені пакети ембедингів працюють коректно, але повільно.
</ParamField>
---
## Config hybrid search
## Конфігурація гібридного пошуку
Усе розташовано в `memorySearch.query.hybrid`:
Усе знаходиться в `memorySearch.query.hybrid`:
| Ключ | Тип | Типове значення | Опис |
| --------------------- | --------- | --------------- | ---------------------------------- |
| `enabled` | `boolean` | `true` | Увімкнути hybrid BM25 + vector search |
| `vectorWeight` | `number` | `0.7` | Вага для vector-оцінок (0-1) |
| `textWeight` | `number` | `0.3` | Вага для BM25-оцінок (0-1) |
| `candidateMultiplier` | `number` | `4` | Множник розміру пулу кандидатів |
| Ключ | Тип | Типово | Опис |
| --------------------- | --------- | ------ | ---------------------------------- |
| `enabled` | `boolean` | `true` | Увімкнути гібридний пошук BM25 + векторний пошук |
| `vectorWeight` | `number` | `0.7` | Вага для векторних оцінок (0-1) |
| `textWeight` | `number` | `0.3` | Вага для оцінок BM25 (0-1) |
| `candidateMultiplier` | `number` | `4` | Множник розміру пулу кандидатів |
<Tabs>
<Tab title="MMR (різноманітність)">
| Ключ | Тип | Типове значення | Опис |
| ------------- | --------- | --------------- | ------------------------------------- |
| `mmr.enabled` | `boolean` | `false` | Увімкнути MMR re-ranking |
| `mmr.lambda` | `number` | `0.7` | 0 = максимум різноманітності, 1 = максимум релевантності |
| Ключ | Тип | Типово | Опис |
| ------------- | --------- | ------ | ------------------------------------ |
| `mmr.enabled` | `boolean` | `false` | Увімкнути повторне ранжування MMR |
| `mmr.lambda` | `number` | `0.7` | 0 = максимальна різноманітність, 1 = максимальна релевантність |
</Tab>
<Tab title="Temporal decay (давність)">
| Ключ | Тип | Типове значення | Опис |
| ---------------------------- | --------- | --------------- | ------------------------------ |
| `temporalDecay.enabled` | `boolean` | `false` | Увімкнути boost за давністю |
| `temporalDecay.halfLifeDays` | `number` | `30` | Оцінка зменшується вдвічі кожні N днів |
<Tab title="Temporal decay (актуальність за часом)">
| Ключ | Тип | Типово | Опис |
| ---------------------------- | --------- | ------ | ------------------------- |
| `temporalDecay.enabled` | `boolean` | `false` | Увімкнути буст за новизною |
| `temporalDecay.halfLifeDays` | `number` | `30` | Оцінка зменшується вдвічі кожні N днів |
Evergreen-файли (`MEMORY.md`, файли без дати в `memory/`) ніколи не піддаються decay.
Для незмінних файлів (`MEMORY.md`, файли без дат у `memory/`) згасання ніколи не застосовується.
</Tab>
</Tabs>
@ -338,8 +338,8 @@ Codex OAuth покриває лише chat/completions і не задоволь
## Додаткові шляхи пам’яті
| Ключ | Тип | Опис |
| ----------- | ---------- | ---------------------------------------- |
| Ключ | Тип | Опис |
| ----------- | ---------- | ------------------------------------- |
| `extraPaths` | `string[]` | Додаткові каталоги або файли для індексації |
```json5
@ -354,21 +354,21 @@ Codex OAuth покриває лише chat/completions і не задоволь
}
```
Шляхи можуть бути абсолютними або відносними до workspace. Каталоги скануються рекурсивно на наявність файлів `.md`. Обробка symlink залежить від активного backend: вбудований рушій ігнорує symlink, тоді як QMD наслідує поведінку сканера QMD.
Шляхи можуть бути абсолютними або відносними до робочого простору. Каталоги скануються рекурсивно на наявність файлів `.md`. Обробка символьних посилань залежить від активного бекенда: вбудований рушій ігнорує символьні посилання, тоді як QMD дотримується поведінки базового сканера QMD.
Для пошуку transcript між агентами в межах області агента використовуйте `agents.list[].memorySearch.qmd.extraCollections` замість `memory.qmd.paths`. Ці додаткові collections мають ту саму форму `{ path, name, pattern? }`, але об’єднуються окремо для кожного агента й можуть зберігати явні спільні назви, коли шлях вказує поза межі поточного workspace. Якщо той самий визначений шлях з’являється і в `memory.qmd.paths`, і в `memorySearch.qmd.extraCollections`, QMD зберігає перший запис і пропускає дублікат.
Для пошуку транскриптів між агентами в межах області агента використовуйте `agents.list[].memorySearch.qmd.extraCollections` замість `memory.qmd.paths`. Ці додаткові колекції мають ту саму форму `{ path, name, pattern? }`, але об’єднуються для кожного агента окремо й можуть зберігати явно задані спільні назви, коли шлях указує за межі поточного робочого простору. Якщо той самий розв’язаний шлях з’являється і в `memory.qmd.paths`, і в `memorySearch.qmd.extraCollections`, QMD зберігає перший запис і пропускає дублікат.
---
## Multimodal memory (Gemini)
## Мультимодальна пам’ять (Gemini)
Індексуйте зображення й аудіо разом із Markdown за допомогою Gemini Embedding 2:
| Ключ | Тип | Типове значення | Опис |
| ------------------------- | ---------- | --------------- | ------------------------------------ |
| `multimodal.enabled` | `boolean` | `false` | Увімкнути multimodal indexing |
| `multimodal.modalities` | `string[]` | -- | `["image"]`, `["audio"]` або `["all"]` |
| `multimodal.maxFileBytes` | `number` | `10000000` | Максимальний розмір файлу для індексації |
| Ключ | Тип | Типово | Опис |
| ------------------------- | ---------- | ---------- | ------------------------------------- |
| `multimodal.enabled` | `boolean` | `false` | Увімкнути мультимодальну індексацію |
| `multimodal.modalities` | `string[]` | -- | `["image"]`, `["audio"]` або `["all"]` |
| `multimodal.maxFileBytes` | `number` | `10000000` | Максимальний розмір файлу для індексації |
<Note>
Застосовується лише до файлів у `extraPaths`. Типові корені пам’яті залишаються лише для Markdown. Потрібен `gemini-embedding-2-preview`. `fallback` має бути `"none"`.
@ -378,113 +378,115 @@ Codex OAuth покриває лише chat/completions і не задоволь
---
## Кеш embeddings
## Кеш ембедингів
| Ключ | Тип | Типове значення | Опис |
| ------------------ | --------- | --------------- | -------------------------------- |
| `cache.enabled` | `boolean` | `false` | Кешувати embeddings chunks у SQLite |
| `cache.maxEntries` | `number` | `50000` | Максимальна кількість кешованих embeddings |
| Ключ | Тип | Типово | Опис |
| ------------------ | --------- | ------ | -------------------------------- |
| `cache.enabled` | `boolean` | `false` | Кешувати ембединги фрагментів у SQLite |
| `cache.maxEntries` | `number` | `50000` | Максимальна кількість кешованих ембедингів |
Запобігає повторному створенню embeddings для незміненого тексту під час переіндексації або оновлень transcript.
Запобігає повторному створенню ембедингів для незмінного тексту під час переіндексації або оновлень транскриптів.
---
## Пакетна індексація
| Ключ | Тип | Типове значення | Опис |
| ---------------------------- | --------- | --------------- | ------------------------------ |
| `remote.batch.enabled` | `boolean` | `false` | Увімкнути API пакетних embeddings |
| `remote.batch.concurrency` | `number` | `2` | Паралельні пакетні завдання |
| `remote.batch.wait` | `boolean` | `true` | Чекати завершення пакета |
| `remote.batch.pollIntervalMs` | `number` | -- | Інтервал опитування |
| `remote.batch.timeoutMinutes` | `number` | -- | Timeout пакета |
| Ключ | Тип | Типово | Опис |
| ----------------------------- | --------- | ------ | ------------------------ |
| `remote.batch.enabled` | `boolean` | `false` | Увімкнути API пакетних ембедингів |
| `remote.batch.concurrency` | `number` | `2` | Паралельні пакетні завдання |
| `remote.batch.wait` | `boolean` | `true` | Очікувати завершення пакета |
| `remote.batch.pollIntervalMs` | `number` | -- | Інтервал опитування |
| `remote.batch.timeoutMinutes` | `number` | -- | Тайм-аут пакета |
Доступно для `openai`, `gemini` і `voyage`. Пакетний режим OpenAI зазвичай найшвидший і найдешевший для великих backfill.
Доступно для `openai`, `gemini` і `voyage`. Пакетний режим OpenAI зазвичай є найшвидшим і найдешевшим для великих заповнень.
Це окремо від `sync.embeddingBatchTimeoutSeconds`, який керує вбудованими викликами embeddings, що використовуються локальними/self-hosted провайдерами та hosted-провайдерами, коли пакетні API провайдера не активні.
Це окремо від `sync.embeddingBatchTimeoutSeconds`, який керує вбудованими викликами ембедингів, що використовуються локальними/self-hosted провайдерами та хостинговими провайдерами, коли API пакетної обробки провайдера не активні.
---
## Пошук пам’яті сесії (експериментально)
## Пошук у пам’яті сеансів (експериментально)
Індексувати transcripts сесій і показувати їх через `memory_search`:
Індексуйте транскрипти сеансів і показуйте їх через `memory_search`:
| Ключ | Тип | Типове значення | Опис |
| ----------------------------- | ---------- | --------------- | -------------------------------------- |
| `experimental.sessionMemory` | `boolean` | `false` | Увімкнути індексацію сесій |
| `sources` | `string[]` | `["memory"]` | Додайте `"sessions"`, щоб включити transcripts |
| `sync.sessions.deltaBytes` | `number` | `100000` | Поріг байтів для переіндексації |
| `sync.sessions.deltaMessages` | `number` | `50` | Поріг повідомлень для переіндексації |
| Ключ | Тип | Типово | Опис |
| --------------------------- | ---------- | ------------ | ---------------------------------------- |
| `experimental.sessionMemory` | `boolean` | `false` | Увімкнути індексацію сеансів |
| `sources` | `string[]` | `["memory"]` | Додайте `"sessions"`, щоб включити транскрипти |
| `sync.sessions.deltaBytes` | `number` | `100000` | Поріг байтів для переіндексації |
| `sync.sessions.deltaMessages` | `number` | `50` | Поріг повідомлень для переіндексації |
<Warning>
Індексація сесій є opt-in і виконується асинхронно. Результати можуть бути трохи застарілими. Журнали сесій зберігаються на диску, тож вважайте доступ до файлової системи межею довіри.
Індексація сеансів вмикається за бажанням і виконується асинхронно. Результати можуть бути трохи застарілими. Журнали сеансів зберігаються на диску, тому вважайте доступ до файлової системи межею довіри.
</Warning>
---
## Прискорення векторів SQLite (sqlite-vec)
| Ключ | Тип | Типове значення | Опис |
| ---------------------------- | --------- | --------------- | ------------------------------------- |
| `store.vector.enabled` | `boolean` | `true` | Використовувати sqlite-vec для vector queries |
| `store.vector.extensionPath` | `string` | bundled | Перевизначити шлях до sqlite-vec |
| Ключ | Тип | Типово | Опис |
| ---------------------------- | --------- | ------ | --------------------------------- |
| `store.vector.enabled` | `boolean` | `true` | Використовувати sqlite-vec для векторних запитів |
| `store.vector.extensionPath` | `string` | bundled | Перевизначити шлях до sqlite-vec |
Коли sqlite-vec недоступний, OpenClaw автоматично переходить на in-process cosine similarity.
Коли sqlite-vec недоступний, OpenClaw автоматично переходить до обчислення косинусної схожості в процесі.
---
## Зберігання індексу
## Сховище індексу
| Ключ | Тип | Типове значення | Опис |
| ------------------- | -------- | ------------------------------------ | ----------------------------------------- |
| Ключ | Тип | Типово | Опис |
| ------------------- | -------- | ------------------------------------- | --------------------------------------------- |
| `store.path` | `string` | `~/.openclaw/memory/{agentId}.sqlite` | Розташування індексу (підтримує токен `{agentId}`) |
| `store.fts.tokenizer` | `string` | `unicode61` | Токенізатор FTS5 (`unicode61` або `trigram`) |
| `store.fts.tokenizer` | `string` | `unicode61` | Токенізатор FTS5 (`unicode61` або `trigram`) |
---
## Config backend QMD
## Конфігурація бекенда QMD
Установіть `memory.backend = "qmd"`, щоб увімкнути. Усі налаштування QMD живуть у `memory.qmd`:
Установіть `memory.backend = "qmd"` для ввімкнення. Усі налаштування QMD знаходяться в `memory.qmd`:
| Ключ | Тип | Типове значення | Опис |
| ------------------------ | --------- | --------------- | -------------------------------------------- |
| `command` | `string` | `qmd` | Шлях до виконуваного файла QMD |
| `searchMode` | `string` | `search` | Команда пошуку: `search`, `vsearch`, `query` |
| `includeDefaultMemory` | `boolean` | `true` | Автоматично індексувати `MEMORY.md` + `memory/**/*.md` |
| `paths[]` | `array` | -- | Додаткові шляхи: `{ name, path, pattern? }` |
| `sessions.enabled` | `boolean` | `false` | Індексувати transcripts сесій |
| `sessions.retentionDays` | `number` | -- | Термін зберігання transcript |
| `sessions.exportDir` | `string` | -- | Каталог експорту |
| Ключ | Тип | Типово | Опис |
| ------------------------ | --------- | -------- | ------------------------------------------- |
| `command` | `string` | `qmd` | Шлях до виконуваного файла QMD |
| `searchMode` | `string` | `search` | Команда пошуку: `search`, `vsearch`, `query` |
| `includeDefaultMemory` | `boolean` | `true` | Автоматично індексувати `MEMORY.md` + `memory/**/*.md` |
| `paths[]` | `array` | -- | Додаткові шляхи: `{ name, path, pattern? }` |
| `sessions.enabled` | `boolean` | `false` | Індексувати транскрипти сеансів |
| `sessions.retentionDays` | `number` | -- | Термін зберігання транскриптів |
| `sessions.exportDir` | `string` | -- | Каталог експорту |
OpenClaw надає перевагу поточним формам QMD collection і MCP query, але зберігає працездатність старіших випусків QMD, за потреби переходячи на застарілі прапорці collection `--mask` і старіші назви MCP tools.
`searchMode: "search"` — це лише лексичний/BM25-пошук. OpenClaw не запускає перевірки готовності семантичних векторів або обслуговування ембедингів QMD для цього режиму, зокрема під час `memory status --deep`; для `vsearch` і `query` і далі потрібні готовність векторів QMD та ембединги.
OpenClaw надає перевагу поточним формам колекцій QMD і запитів MCP, але зберігає працездатність старіших випусків QMD, повертаючись до застарілих прапорців колекцій `--mask` і старіших назв інструментів MCP, коли це потрібно.
<Note>
Перевизначення моделей QMD лишаються на боці QMD, а не в config OpenClaw. Якщо вам потрібно глобально перевизначити моделі QMD, установіть змінні середовища, такі як `QMD_EMBED_MODEL`, `QMD_RERANK_MODEL` і `QMD_GENERATE_MODEL`, у runtime-середовищі gateway.
Перевизначення моделей QMD залишаються на боці QMD, а не в конфігурації OpenClaw. Якщо вам потрібно глобально перевизначити моделі QMD, установіть змінні середовища, такі як `QMD_EMBED_MODEL`, `QMD_RERANK_MODEL` і `QMD_GENERATE_MODEL`, у середовищі виконання Gateway.
</Note>
<AccordionGroup>
<Accordion title="Розклад оновлення">
| Ключ | Тип | Типове значення | Опис |
| ------------------------- | --------- | --------------- | ---------------------------------- |
| `update.interval` | `string` | `5m` | Інтервал оновлення |
| `update.debounceMs` | `number` | `15000` | Debounce для змін файлів |
| `update.onBoot` | `boolean` | `true` | Оновлювати під час startup |
| `update.waitForBootSync` | `boolean` | `false` | Блокувати startup, доки оновлення не завершиться |
| `update.embedInterval` | `string` | -- | Окрема cadence для embeddings |
| `update.commandTimeoutMs` | `number` | -- | Timeout для команд QMD |
| `update.updateTimeoutMs` | `number` | -- | Timeout для операцій оновлення QMD |
| `update.embedTimeoutMs` | `number` | -- | Timeout для операцій embeddings QMD |
<Accordion title="Графік оновлення">
| Ключ | Тип | Типово | Опис |
| ------------------------- | --------- | ------ | ------------------------------------ |
| `update.interval` | `string` | `5m` | Інтервал оновлення |
| `update.debounceMs` | `number` | `15000` | Debounce для змін файлів |
| `update.onBoot` | `boolean` | `true` | Оновлювати під час запуску |
| `update.waitForBootSync` | `boolean` | `false` | Блокувати запуск до завершення оновлення |
| `update.embedInterval` | `string` | -- | Окремий інтервал ембедингів |
| `update.commandTimeoutMs` | `number` | -- | Тайм-аут для команд QMD |
| `update.updateTimeoutMs` | `number` | -- | Тайм-аут для операцій оновлення QMD |
| `update.embedTimeoutMs` | `number` | -- | Тайм-аут для операцій ембедингів QMD |
</Accordion>
<Accordion title="Ліміти">
| Ключ | Тип | Типове значення | Опис |
| ------------------------- | -------- | --------------- | ----------------------------- |
| `limits.maxResults` | `number` | `6` | Максимум результатів пошуку |
| `limits.maxSnippetChars` | `number` | -- | Обмеження довжини snippet |
| `limits.maxInjectedChars` | `number` | -- | Обмеження загальної кількості вставлених символів |
| `limits.timeoutMs` | `number` | `4000` | Timeout пошуку |
| Ключ | Тип | Типово | Опис |
| ------------------------- | -------- | ------ | ---------------------------- |
| `limits.maxResults` | `number` | `6` | Максимальна кількість результатів пошуку |
| `limits.maxSnippetChars` | `number` | -- | Обмежити довжину фрагмента |
| `limits.maxInjectedChars` | `number` | -- | Обмежити загальну кількість вставлених символів |
| `limits.timeoutMs` | `number` | `4000` | Тайм-аут пошуку |
</Accordion>
<Accordion title="Область дії">
Керує тим, які сесії можуть отримувати результати пошуку QMD. Та сама схема, що й у [`session.sendPolicy`](/uk/gateway/config-agents#session):
Керує тим, які сеанси можуть отримувати результати пошуку QMD. Та сама схема, що й у [`session.sendPolicy`](/uk/gateway/config-agents#session):
```json5
{
@ -499,19 +501,19 @@ OpenClaw надає перевагу поточним формам QMD collectio
}
```
Типове shipped-значення дозволяє direct- і channel-сесії, але все ще забороняє групи.
Типова конфігурація в постачанні дозволяє прямі сеанси та сеанси каналів, але все одно забороняє групи.
Типове значення — лише DM. `match.keyPrefix` зіставляється з нормалізованим ключем сесії; `match.rawKeyPrefix` зіставляється з сирим ключем, включно з `agent:<id>:`.
Типове значення — лише DM. `match.keyPrefix` відповідає нормалізованому ключу сеансу; `match.rawKeyPrefix` відповідає сирому ключу, включно з `agent:<id>:`.
</Accordion>
<Accordion title="Цитування">
`memory.citations` застосовується до всіх backend:
`memory.citations` застосовується до всіх бекендів:
| Значення | Поведінка |
| ---------------- | -------------------------------------------------------- |
| `auto` (типово) | Додає footer `Source: <path#line>` у snippets |
| `on` | Завжди додає footer |
| `off` | Не додає footer (шлях усе одно передається агенту всередині) |
| Значення | Поведінка |
| ---------------- | ----------------------------------------------------- |
| `auto` (типово) | Додавати нижній колонтитул `Source: <path#line>` у фрагменти |
| `on` | Завжди додавати нижній колонтитул |
| `off` | Не додавати нижній колонтитул (шлях усе одно внутрішньо передається агенту) |
</Accordion>
</AccordionGroup>
@ -543,17 +545,17 @@ OpenClaw надає перевагу поточним формам QMD collectio
Dreaming налаштовується в `plugins.entries.memory-core.config.dreaming`, а не в `agents.defaults.memorySearch`.
Dreaming виконується як один запланований прохід і використовує внутрішні фази light/deep/REM як деталь реалізації.
Dreaming працює як один запланований прохід і використовує внутрішні фази light/deep/REM як деталь реалізації.
Концептуальну поведінку та slash-команди див. у [Dreaming](/uk/concepts/dreaming).
Щодо концептуальної поведінки та slash-команд див. [Dreaming](/uk/concepts/dreaming).
### Налаштування користувача
| Ключ | Тип | Типове значення | Опис |
| ----------- | --------- | --------------- | --------------------------------------------------- |
| `enabled` | `boolean` | `false` | Повністю вмикає або вимикає Dreaming |
| `frequency` | `string` | `0 3 * * *` | Необов’язкова Cron-cadence для повного проходу Dreaming |
| `model` | `string` | типова модель | Необов’язкове перевизначення моделі субагента Dream Diary |
| Ключ | Тип | Типово | Опис |
| ---------- | --------- | -------------- | --------------------------------------------------- |
| `enabled` | `boolean` | `false` | Увімкнути або повністю вимкнути dreaming |
| `frequency` | `string` | `0 3 * * *` | Необов’язковий розклад Cron для повного проходу dreaming |
| `model` | `string` | типова модель | Необов’язкове перевизначення моделі підагента Dream Diary |
### Приклад
@ -581,13 +583,13 @@ Dreaming виконується як один запланований прох
<Note>
- Dreaming записує машинний стан у `memory/.dreams/`.
- Dreaming записує зрозумілий людині наративний вивід у `DREAMS.md` (або наявний `dreams.md`).
- `dreaming.model` використовує наявний шлюз довіри subagent Plugin; установіть `plugins.entries.memory-core.subagent.allowModelOverride: true`, перш ніж увімкнути його.
- Політика фаз light/deep/REM і пороги є внутрішньою поведінкою, а не user-facing config.
- Dreaming записує зрозумілий для людини наративний вивід у `DREAMS.md` (або наявний `dreams.md`).
- `dreaming.model` використовує наявний trust gate підагента plugin; установіть `plugins.entries.memory-core.subagent.allowModelOverride: true` перед його ввімкненням.
- Політика фаз light/deep/REM і пороги є внутрішньою поведінкою, а не користувацькою конфігурацією.
</Note>
## Пов’язані матеріали
## Пов’язане
- [Довідник з config](/uk/gateway/configuration-reference)
- [Довідник із конфігурації](/uk/gateway/configuration-reference)
- [Огляд пам’яті](/uk/concepts/memory)
- [Пошук у пам’яті](/uk/concepts/memory-search)