chore(i18n): refresh uk translations
This commit is contained in:
parent
4fc4590b39
commit
745fe56774
@ -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)
|
||||
|
||||
@ -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).
|
||||
|
||||
## Пов’язане
|
||||
|
||||
|
||||
@ -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 (128–512 токенів), водночас обмежуючи VRAM, не пов’язану з вагами. На обмежених хостах знижуйте до 1024–2048. `"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 охоплює типові фрагменти (128–512 токенів), водночас обмежуючи VRAM, не пов’язану з вагами. Зменште до 1024–2048 на ресурсно обмежених хостах. `"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)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user