From d69427dcfe05d8dbab83fdc7b17f418d93efa47f Mon Sep 17 00:00:00 2001 From: "openclaw-docs-i18n[bot]" Date: Tue, 28 Apr 2026 13:47:55 +0000 Subject: [PATCH] chore(i18n): refresh uk translations --- docs/uk/concepts/active-memory.md | 348 +++++++++++++++--------------- 1 file changed, 174 insertions(+), 174 deletions(-) diff --git a/docs/uk/concepts/active-memory.md b/docs/uk/concepts/active-memory.md index 4cb7dcb93..30cb1eeec 100644 --- a/docs/uk/concepts/active-memory.md +++ b/docs/uk/concepts/active-memory.md @@ -3,31 +3,31 @@ read_when: - Ви хочете зрозуміти, для чого потрібна Active Memory - Ви хочете ввімкнути Active Memory для розмовного агента - Ви хочете налаштувати поведінку Active Memory, не вмикаючи її всюди -summary: Блокувальний субагент пам’яті, що належить Plugin і додає релевантну пам’ять до інтерактивних сеансів чату +summary: Блокувальний субагент пам’яті, що належить Plugin, який вставляє релевантну пам’ять в інтерактивні сеанси чату title: Active Memory x-i18n: - generated_at: "2026-04-28T13:42:04Z" + generated_at: "2026-04-28T13:46:24Z" model: gpt-5.5 provider: openai - source_hash: 2c6e0d707674d72041d56d788a7e7f711e3ff6b7fb99104a045f5fddc31d4c6d + source_hash: 710b9068cc9b09bef3506d8790f53481890d40cd7444651fde352fb89bc63ab3 source_path: concepts/active-memory.md workflow: 16 --- -Active Memory — це необов’язковий блокувальний під-агент пам’яті, що належить Plugin і запускається +Active Memory — це необов'язковий блокувальний під-агент пам'яті, що належить Plugin і запускається перед основною відповіддю для придатних розмовних сеансів. -Він існує тому, що більшість систем пам’яті спроможні, але реактивні. Вони покладаються на -основного агента, який вирішує, коли шукати в пам’яті, або на користувача, який каже щось -на кшталт "remember this" чи "search memory." На той момент мить, коли пам’ять могла б +Він існує тому, що більшість систем пам'яті потужні, але реактивні. Вони покладаються на те, +що основний агент вирішить, коли шукати в пам'яті, або на те, що користувач скаже щось +на кшталт "запам'ятай це" чи "пошукай у пам'яті". На той момент мить, коли пам'ять могла б зробити відповідь природною, уже минула. -Active Memory дає системі одну обмежену можливість вивести доречну пам’ять -до того, як буде згенеровано основну відповідь. +Active Memory дає системі одну обмежену можливість вивести релевантну пам'ять +до генерації основної відповіді. ## Швидкий старт -Вставте це в `openclaw.json` для безпечного типового налаштування — Plugin увімкнено, обмежено +Вставте це в `openclaw.json` для налаштування з безпечними типовими значеннями — Plugin увімкнений, обмежений агентом `main`, лише сеанси прямих повідомлень, успадковує модель сеансу, коли вона доступна: @@ -72,32 +72,32 @@ openclaw gateway - `plugins.entries.active-memory.enabled: true` вмикає Plugin - `config.agents: ["main"]` підключає до Active Memory лише агента `main` -- `config.allowedChatTypes: ["direct"]` обмежує це сеансами прямих повідомлень (додавайте групи/канали явно) -- `config.model` (необов’язково) закріплює спеціальну модель відтворення з пам’яті; якщо не задано, успадковується поточна модель сеансу -- `config.modelFallback` використовується лише тоді, коли не вдається визначити явно задану або успадковану модель +- `config.allowedChatTypes: ["direct"]` обмежує його сеансами прямих повідомлень (групи/канали вмикайте явно) +- `config.model` (необов'язково) закріплює спеціальну модель пригадування; якщо не задано, успадковується поточна модель сеансу +- `config.modelFallback` використовується лише тоді, коли не вдається визначити ні явну, ні успадковану модель - `config.promptStyle: "balanced"` — типове значення для режиму `recent` -- Active Memory усе одно запускається лише для придатних інтерактивних постійних чат-сеансів +- Active Memory все одно запускається лише для придатних інтерактивних постійних чат-сеансів -## Рекомендації щодо швидкодії +## Рекомендації щодо швидкості Найпростіше налаштування — залишити `config.model` незаданим і дозволити Active Memory використовувати -ту саму модель, яку ви вже використовуєте для звичайних відповідей. Це найбезпечніше типове значення, -бо воно відповідає вашим наявним налаштуванням провайдера, автентифікації та моделі. +ту саму модель, яку ви вже використовуєте для звичайних відповідей. Це найбезпечніший типовий варіант, +бо він дотримується ваших наявних параметрів провайдера, автентифікації та моделі. -Якщо ви хочете, щоб Active Memory відчувалася швидшою, використовуйте спеціальну модель інференсу -замість запозичення основної чат-моделі. Якість відтворення з пам’яті важлива, але затримка -важливіша, ніж для основного шляху відповіді, а поверхня інструментів Active Memory +Якщо ви хочете, щоб Active Memory відчувалася швидшою, використовуйте спеціальну inference-модель +замість запозичення основної чат-моделі. Якість пригадування важлива, але затримка +важить більше, ніж для основного шляху відповіді, а поверхня інструментів Active Memory вузька (вона викликає лише `memory_search` і `memory_get`). Хороші варіанти швидких моделей: -- `cerebras/gpt-oss-120b` для спеціальної моделі відтворення з пам’яті з малою затримкою -- `google/gemini-3-flash` як fallback із малою затримкою без зміни вашої основної чат-моделі +- `cerebras/gpt-oss-120b` для спеціальної моделі пригадування з низькою затримкою +- `google/gemini-3-flash` як запасний варіант із низькою затримкою без зміни основної чат-моделі - ваша звичайна модель сеансу, якщо залишити `config.model` незаданим ### Налаштування Cerebras -Додайте провайдера Cerebras і спрямуйте на нього Active Memory: +Додайте провайдера Cerebras і спрямуйте Active Memory на нього: ```json5 { @@ -122,13 +122,13 @@ openclaw gateway } ``` -Переконайтеся, що ключ API Cerebras справді має доступ до `chat/completions` для -вибраної моделі — сама видимість у `/v1/models` цього не гарантує. +Переконайтеся, що ключ API Cerebras справді має доступ `chat/completions` для +вибраної моделі — сама лише видимість у `/v1/models` цього не гарантує. ## Як це побачити -Active Memory вставляє прихований ненадійний префікс промпта для моделі. Вона -не показує сирі теги `...` у +Active Memory вставляє прихований ненадійний префікс промпта для моделі. Він не +показує сирі теги `...` у звичайній відповіді, видимій клієнту. ## Перемикач сеансу @@ -143,10 +143,10 @@ Active Memory вставляє прихований ненадійний пре ``` Це обмежено сеансом. Це не змінює -`plugins.entries.active-memory.enabled`, націлювання агентів або іншу глобальну -конфігурацію. +`plugins.entries.active-memory.enabled`, цільових агентів чи іншої глобальної +конфігурації. -Якщо ви хочете, щоб команда записувала конфігурацію та призупиняла або відновлювала Active Memory для +Якщо ви хочете, щоб команда записала конфігурацію й призупинила або відновила Active Memory для всіх сеансів, використовуйте явну глобальну форму: ```text @@ -156,10 +156,10 @@ Active Memory вставляє прихований ненадійний пре ``` Глобальна форма записує `plugins.entries.active-memory.config.enabled`. Вона залишає -`plugins.entries.active-memory.enabled` увімкненим, щоб команда залишалася доступною для +`plugins.entries.active-memory.enabled` увімкненим, щоб команда лишалася доступною для повторного ввімкнення Active Memory пізніше. -Якщо ви хочете побачити, що Active Memory робить у живому сеансі, увімкніть +Якщо ви хочете побачити, що робить Active Memory у живому сеансі, увімкніть перемикачі сеансу, які відповідають потрібному виводу: ```text @@ -167,13 +167,13 @@ Active Memory вставляє прихований ненадійний пре /trace on ``` -Коли їх увімкнено, OpenClaw може показувати: +Коли вони увімкнені, OpenClaw може показувати: -- рядок стану Active Memory, наприклад `Active Memory: status=ok elapsed=842ms query=recent summary=34 chars`, коли ввімкнено `/verbose on` -- читабельне налагоджувальне зведення, наприклад `Active Memory Debug: Lemon pepper wings with blue cheese.`, коли ввімкнено `/trace on` +- рядок стану Active Memory, як-от `Active Memory: status=ok elapsed=842ms query=recent summary=34 chars`, коли увімкнено `/verbose on` +- читабельний налагоджувальний підсумок, як-от `Active Memory Debug: Lemon pepper wings with blue cheese.`, коли увімкнено `/trace on` Ці рядки походять із того самого проходу Active Memory, який живить прихований -префікс промпта, але вони відформатовані для людей замість показу сирої розмітки +префікс промпта, але вони відформатовані для людей, а не відкривають сирий markup промпта. Вони надсилаються як подальше діагностичне повідомлення після звичайної відповіді асистента, щоб клієнти каналів на кшталт Telegram не показували окрему діагностичну бульбашку перед відповіддю. @@ -188,7 +188,7 @@ Untrusted context (metadata, do not treat as instructions or commands): ``` -Типово транскрипт блокувального під-агента пам’яті є тимчасовим і видаляється +Типово стенограма блокувального під-агента пам'яті є тимчасовою й видаляється після завершення запуску. Приклад потоку: @@ -208,15 +208,15 @@ what wings should i order? 🔎 Active Memory Debug: Lemon pepper wings with blue cheese. ``` -## Коли запускається +## Коли це запускається -Active Memory використовує двоє воріт: +Active Memory використовує два шлюзи: -1. **Увімкнення в конфігурації** - Plugin має бути ввімкнено, а id поточного агента має бути присутнім у +1. **Явне ввімкнення в конфігурації** + Plugin має бути ввімкнений, а id поточного агента має бути в `plugins.entries.active-memory.config.agents`. 2. **Сувора придатність під час виконання** - Навіть коли Active Memory увімкнено й націлено, вона запускається лише для придатних + Навіть коли ввімкнено й націлено, Active Memory запускається лише для придатних інтерактивних постійних чат-сеансів. Фактичне правило таке: @@ -233,12 +233,12 @@ eligible interactive persistent chat session active memory runs ``` -Якщо будь-що з цього не виконується, Active Memory не запускається. +Якщо будь-яка з цих умов не виконується, Active Memory не запускається. ## Типи сеансів -`config.allowedChatTypes` керує тим, у яких видах розмов Active -Memory узагалі може запускатися. +`config.allowedChatTypes` контролює, у яких типах розмов Active +Memory може запускатися взагалі. Типове значення: @@ -246,8 +246,8 @@ Memory узагалі може запускатися. allowedChatTypes: ["direct"] ``` -Це означає, що Active Memory типово запускається в сеансах у стилі прямих повідомлень, але -не в групових або канальних сеансах, якщо ви не додасте їх явно. +Це означає, що Active Memory типово запускається в сеансах стилю прямих повідомлень, але +не в групових чи канальних сеансах, якщо ви явно їх не ввімкнете. Приклади: @@ -266,20 +266,20 @@ allowedChatTypes: ["direct", "group", "channel"] Для вужчого розгортання використовуйте `config.allowedChatIds` і `config.deniedChatIds` після вибору дозволених типів сеансів. -`allowedChatIds` — це явний список дозволених визначених id розмов. Коли він +`allowedChatIds` — це явний список дозволених розпізнаних id розмов. Коли він не порожній, Active Memory запускається лише тоді, коли id розмови сеансу є в -цьому списку. Це звужує всі дозволені типи чатів одразу, включно з прямими -повідомленнями. Якщо вам потрібні всі прямі повідомлення плюс лише певні групи, включіть -id прямих співрозмовників до `allowedChatIds` або тримайте `allowedChatTypes` сфокусованим на -розгортанні для груп/каналів, яке ви тестуєте. +цьому списку. Це звужує всі дозволені типи чатів одночасно, включно з прямими +повідомленнями. Якщо вам потрібні всі прямі повідомлення плюс лише конкретні групи, додайте +id прямих співрозмовників до `allowedChatIds` або залиште `allowedChatTypes` сфокусованим на +розгортанні груп/каналів, яке ви тестуєте. `deniedChatIds` — це явний список заборон. Він завжди має пріоритет над `allowedChatTypes` і `allowedChatIds`, тому відповідна розмова пропускається -навіть тоді, коли тип її сеансу інакше дозволений. +навіть тоді, коли її тип сеансу інакше дозволений. Id походять із постійного ключа сеансу каналу: наприклад Feishu `chat_id` / `open_id`, id чату Telegram або id каналу Slack. Зіставлення -нечутливе до регістру. Якщо `allowedChatIds` не порожній і OpenClaw не може визначити +нечутливе до регістру. Якщо `allowedChatIds` не порожній, а OpenClaw не може розпізнати id розмови для сеансу, Active Memory пропускає хід замість того, щоб здогадуватися. @@ -291,44 +291,44 @@ allowedChatIds: ["ou_operator_open_id", "oc_small_ops_group"], deniedChatIds: ["oc_large_public_group"] ``` -## Де запускається +## Де це запускається -Active Memory — це функція розмовного збагачення, а не загальноплатформна -функція інференсу. +Active Memory — це функція розмовного збагачення, а не платформна +inference-функція. -| Поверхня | Чи запускає Active Memory? | -| ------------------------------------------------------------------- | ------------------------------------------------------- | -| Постійні сеанси Control UI / вебчату | Так, якщо Plugin увімкнено й агента націлено | -| Інші інтерактивні сеанси каналів на тому самому постійному чат-шляху | Так, якщо Plugin увімкнено й агента націлено | -| Headless одноразові запуски | Ні | -| Heartbeat/фонові запуски | Ні | -| Загальні внутрішні шляхи `agent-command` | Ні | -| Виконання під-агента/внутрішнього помічника | Ні | +| Поверхня | Запускає Active Memory? | +| ------------------------------------------------------------------- | -------------------------------------------------------- | +| Постійні сеанси Control UI / вебчату | Так, якщо Plugin увімкнений і агент націлений | +| Інші інтерактивні сеанси каналів на тому самому постійному шляху чату | Так, якщо Plugin увімкнений і агент націлений | +| Headless одноразові запуски | Ні | +| Heartbeat/фонові запуски | Ні | +| Загальні внутрішні шляхи `agent-command` | Ні | +| Виконання під-агента/внутрішнього помічника | Ні | -## Навіщо використовувати +## Навіщо це використовувати Використовуйте Active Memory, коли: - сеанс постійний і орієнтований на користувача -- агент має змістовну довгострокову пам’ять для пошуку +- агент має змістовну довготривалу пам'ять для пошуку - неперервність і персоналізація важливіші за сувору детермінованість промпта -Вона особливо добре працює для: +Це особливо добре працює для: -- стабільних уподобань +- сталих уподобань - повторюваних звичок -- довгострокового контексту користувача, який має з’являтися природно +- довготривалого контексту користувача, який має з'являтися природно -Вона погано підходить для: +Це погано підходить для: - автоматизації -- внутрішніх воркерів +- внутрішніх worker'ів - одноразових API-завдань - місць, де прихована персоналізація була б несподіваною ## Як це працює -Форма під час виконання така: +Форма runtime така: ```mermaid flowchart LR @@ -339,18 +339,18 @@ flowchart LR I --> M["Main Reply"] ``` -Блокувальний під-агент пам’яті може використовувати лише: +Блокувальний під-агент пам'яті може використовувати лише: - `memory_search` - `memory_get` -Якщо зв’язок слабкий, він має повернути `NONE`. +Якщо зв'язок слабкий, він має повернути `NONE`. -## Режими запитів +## Режими запиту -`config.queryMode` керує тим, скільки розмови бачить блокувальний під-агент пам’яті. +`config.queryMode` контролює, який обсяг розмови бачить блокувальний під-агент пам'яті. Виберіть найменший режим, який усе ще добре відповідає на уточнювальні запитання; -бюджети таймаутів мають зростати разом із розміром контексту (`message` < `recent` < `full`). +бюджети timeout мають зростати разом із розміром контексту (`message` < `recent` < `full`). @@ -363,15 +363,15 @@ flowchart LR Використовуйте це, коли: - вам потрібна найшвидша поведінка - - вам потрібне найсильніше зміщення до відтворення стабільних уподобань - - наступні ходи не потребують контексту розмови + - вам потрібне найсильніше зміщення в бік пригадування сталих уподобань + - подальші ходи не потребують розмовного контексту Почніть приблизно з `3000` до `5000` мс для `config.timeoutMs`. - Надсилається останнє повідомлення користувача плюс невеликий нещодавній хвіст розмови. + Надсилається останнє повідомлення користувача плюс невеликий недавній хвіст розмови. ```text Recent conversation tail: @@ -385,7 +385,7 @@ flowchart LR Використовуйте це, коли: - - вам потрібен кращий баланс швидкості та розмовного підґрунтя + - вам потрібен кращий баланс швидкості й розмовного обґрунтування - уточнювальні запитання часто залежать від кількох останніх ходів Почніть приблизно з `15000` мс для `config.timeoutMs`. @@ -393,7 +393,7 @@ flowchart LR - Уся розмова надсилається блокувальному під-агенту пам’яті. + Повна розмова надсилається блокувальному під-агенту пам'яті. ```text Full conversation context: @@ -405,25 +405,25 @@ flowchart LR Використовуйте це, коли: - - найвища якість відтворення з пам’яті важливіша за затримку - - розмова містить важливе налаштування далеко назад у гілці + - найвища якість пригадування важливіша за затримку + - розмова містить важливі початкові дані далеко раніше в гілці - Почніть приблизно з `15000` мс або більше залежно від розміру гілки. + Почніть приблизно з `15000` мс або вище залежно від розміру гілки. -## Стилі промптів +## Стилі промпта -`config.promptStyle` керує тим, наскільки охочим або суворим є блокувальний під-агент пам’яті, -коли вирішує, чи повертати пам’ять. +`config.promptStyle` контролює, наскільки охочим або суворим є блокувальний під-агент пам'яті +під час ухвалення рішення, чи повертати пам'ять. Доступні стилі: -- `balanced`: універсальний типовий варіант для режиму `recent` -- `strict`: найменш активний; найкраще, коли потрібно дуже мало впливу близького контексту -- `contextual`: найкращий для безперервності; оптимальний, коли історія розмови має важити більше -- `recall-heavy`: охочіше показує пам’ять для м’якших, але все ще правдоподібних збігів +- `balanced`: загальне типове значення для режиму `recent` +- `strict`: найменш охочий; найкраще, коли ви хочете дуже мало домішок із сусіднього контексту +- `contextual`: найкращий для безперервності; найкраще, коли історія розмови має важити більше +- `recall-heavy`: охочіше виводить памʼять для мʼякших, але все ще правдоподібних збігів - `precision-heavy`: агресивно надає перевагу `NONE`, якщо збіг не очевидний - `preference-only`: оптимізовано для улюбленого, звичок, рутин, смаків і повторюваних особистих фактів @@ -435,7 +435,7 @@ recent -> balanced full -> contextual ``` -Якщо явно задати `config.promptStyle`, це перевизначення має пріоритет. +Якщо ви явно задаєте `config.promptStyle`, це перевизначення має пріоритет. Приклад: @@ -443,7 +443,7 @@ full -> contextual promptStyle: "preference-only" ``` -## Політика резервного вибору моделі +## Політика резервної моделі Якщо `config.model` не задано, Active Memory намагається визначити модель у такому порядку: @@ -454,9 +454,9 @@ explicit plugin model -> optional configured fallback model ``` -`config.modelFallback` керує налаштованим кроком резервного вибору. +`config.modelFallback` керує кроком налаштованої резервної моделі. -Необов’язковий власний резервний варіант: +Необовʼязкова власна резервна модель: ```json5 modelFallback: "google/gemini-3-flash" @@ -468,24 +468,24 @@ modelFallback: "google/gemini-3-flash" `config.modelFallbackPolicy` збережено лише як застаріле поле сумісності для старіших конфігурацій. Воно більше не змінює поведінку під час виконання. -## Розширені аварійні перемикачі +## Розширені аварійні виходи Ці параметри навмисно не входять до рекомендованого налаштування. -`config.thinking` може перевизначати рівень мислення блокувального під-агента пам’яті: +`config.thinking` може перевизначити рівень thinking блокувального під-агента памʼяті: ```json5 thinking: "medium" ``` -Типове значення: +Типово: ```json5 thinking: "off" ``` -Не вмикайте це типово. Active Memory працює в шляху відповіді, тому додатковий -час мислення безпосередньо збільшує затримку, видиму користувачу. +Не вмикайте це типово. Active Memory працює на шляху відповіді, тому додатковий +час thinking безпосередньо збільшує видиму для користувача затримку. `config.promptAppend` додає додаткові операторські інструкції після типового prompt Active Memory і перед контекстом розмови: @@ -495,29 +495,29 @@ promptAppend: "Prefer stable long-term preferences over one-off events." ``` `config.promptOverride` замінює типовий prompt Active Memory. OpenClaw -усе одно додає контекст розмови після нього: +все одно додає контекст розмови після нього: ```json5 promptOverride: "You are a memory search agent. Return NONE or one compact user fact." ``` -Налаштування prompt не рекомендоване, якщо ви не тестуєте свідомо -інший контракт recall. Типовий prompt налаштований так, щоб повертати або `NONE`, -або стислий контекст фактів про користувача для основної моделі. +Налаштування prompt не рекомендоване, якщо ви навмисно не тестуєте +інший контракт recall. Типовий prompt налаштовано так, щоб повертати або `NONE`, +або компактний контекст із фактом про користувача для основної моделі. -## Збереження транскриптів +## Збереження транскрипту -Запуски блокувального під-агента пам’яті Active memory створюють справжній транскрипт -`session.jsonl` під час виклику блокувального під-агента пам’яті. +Запуски блокувального під-агента памʼяті Active memory створюють справжній транскрипт +`session.jsonl` під час виклику блокувального під-агента памʼяті. Типово цей транскрипт тимчасовий: -- він записується в тимчасовий каталог -- він використовується лише для запуску блокувального під-агента пам’яті +- він записується до тимчасового каталогу +- він використовується лише для запуску блокувального під-агента памʼяті - він видаляється одразу після завершення запуску -Якщо ви хочете зберігати ці транскрипти блокувального під-агента пам’яті на диску для налагодження або -перегляду, явно ввімкніть збереження: +Якщо ви хочете зберігати ці транскрипти блокувального під-агента памʼяті на диску для налагодження або +перевірки, явно ввімкніть збереження: ```json5 { @@ -536,8 +536,8 @@ promptOverride: "You are a memory search agent. Return NONE or one compact user } ``` -Коли це ввімкнено, active memory зберігає транскрипти в окремому каталозі під папкою -сеансів цільового агента, а не в основному шляху транскрипта розмови користувача. +Коли ввімкнено, active memory зберігає транскрипти в окремому каталозі в папці +сеансів цільового агента, а не в шляху транскрипту основної розмови користувача. Типова структура концептуально така: @@ -545,11 +545,11 @@ promptOverride: "You are a memory search agent. Return NONE or one compact user agents//sessions/active-memory/.jsonl ``` -Відносний підкаталог можна змінити за допомогою `config.transcriptDir`. +Ви можете змінити відносний підкаталог за допомогою `config.transcriptDir`. Використовуйте це обережно: -- транскрипти блокувального під-агента пам’яті можуть швидко накопичуватися в активних сеансах +- транскрипти блокувального під-агента памʼяті можуть швидко накопичуватися в активних сеансах - режим запиту `full` може дублювати багато контексту розмови - ці транскрипти містять прихований контекст prompt і відновлені спогади @@ -563,35 +563,35 @@ plugins.entries.active-memory Найважливіші поля: -| Ключ | Тип | Значення | -| -------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | -| `enabled` | `boolean` | Вмикає сам plugin | -| `config.agents` | `string[]` | Ідентифікатори агентів, які можуть використовувати active memory | -| `config.model` | `string` | Необов’язкове посилання на модель блокувального під-агента пам’яті; якщо не задано, active memory використовує поточну модель сеансу | -| `config.allowedChatTypes` | `("direct" \| "group" \| "channel")[]` | Типи сеансів, у яких може запускатися Active Memory; типово це сеанси в стилі прямих повідомлень | -| `config.allowedChatIds` | `string[]` | Необов’язковий allowlist для окремих розмов, що застосовується після `allowedChatTypes`; непорожні списки закривають доступ за замовчуванням | -| `config.deniedChatIds` | `string[]` | Необов’язковий denylist для окремих розмов, який перевизначає дозволені типи сеансів і дозволені ідентифікатори | -| `config.queryMode` | `"message" \| "recent" \| "full"` | Керує тим, скільки розмови бачить блокувальний під-агент пам’яті | -| `config.promptStyle` | `"balanced" \| "strict" \| "contextual" \| "recall-heavy" \| "precision-heavy" \| "preference-only"` | Керує тим, наскільки охочим або строгим є блокувальний під-агент пам’яті, вирішуючи, чи повертати пам’ять | -| `config.thinking` | `"off" \| "minimal" \| "low" \| "medium" \| "high" \| "xhigh" \| "adaptive" \| "max"` | Розширене перевизначення мислення для блокувального під-агента пам’яті; типово `off` для швидкості | -| `config.promptOverride` | `string` | Розширена повна заміна prompt; не рекомендовано для звичайного використання | -| `config.promptAppend` | `string` | Розширені додаткові інструкції, додані до типового або перевизначеного prompt | -| `config.timeoutMs` | `number` | Жорсткий тайм-аут для блокувального під-агента пам’яті, обмежений 120000 мс | -| `config.maxSummaryChars` | `number` | Максимальна загальна кількість символів, дозволена в зведенні active-memory | -| `config.logging` | `boolean` | Виводить журнали active memory під час налаштування | -| `config.persistTranscripts` | `boolean` | Зберігає транскрипти блокувального під-агента пам’яті на диску замість видалення тимчасових файлів | -| `config.transcriptDir` | `string` | Відносний каталог транскриптів блокувального під-агента пам’яті під папкою сеансів агента | +| Ключ | Тип | Значення | +| -------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | +| `enabled` | `boolean` | Вмикає сам Plugin | +| `config.agents` | `string[]` | Ідентифікатори агентів, які можуть використовувати active memory | +| `config.model` | `string` | Необовʼязкове посилання на модель блокувального під-агента памʼяті; якщо не задано, active memory використовує модель поточного сеансу | +| `config.allowedChatTypes` | `("direct" \| "group" \| "channel")[]` | Типи сеансів, які можуть запускати Active Memory; типово це сеанси в стилі прямих повідомлень | +| `config.allowedChatIds` | `string[]` | Необовʼязковий allowlist для окремих розмов, застосований після `allowedChatTypes`; непорожні списки fail closed | +| `config.deniedChatIds` | `string[]` | Необовʼязковий denylist для окремих розмов, що перевизначає дозволені типи сеансів і дозволені ідентифікатори | +| `config.queryMode` | `"message" \| "recent" \| "full"` | Керує тим, скільки розмови бачить блокувальний під-агент памʼяті | +| `config.promptStyle` | `"balanced" \| "strict" \| "contextual" \| "recall-heavy" \| "precision-heavy" \| "preference-only"` | Керує тим, наскільки охочим або суворим є блокувальний під-агент памʼяті, коли вирішує, чи повертати памʼять | +| `config.thinking` | `"off" \| "minimal" \| "low" \| "medium" \| "high" \| "xhigh" \| "adaptive" \| "max"` | Розширене перевизначення thinking для блокувального під-агента памʼяті; типово `off` для швидкості | +| `config.promptOverride` | `string` | Розширена повна заміна prompt; не рекомендовано для звичайного використання | +| `config.promptAppend` | `string` | Розширені додаткові інструкції, додані до типового або перевизначеного prompt | +| `config.timeoutMs` | `number` | Жорсткий тайм-аут для блокувального під-агента памʼяті, обмежений 120000 мс | +| `config.maxSummaryChars` | `number` | Максимальна загальна кількість символів, дозволена в підсумку active-memory | +| `config.logging` | `boolean` | Виводить журнали active memory під час налаштування | +| `config.persistTranscripts` | `boolean` | Зберігає транскрипти блокувального під-агента памʼяті на диску замість видалення тимчасових файлів | +| `config.transcriptDir` | `string` | Відносний каталог транскриптів блокувального під-агента памʼяті в папці сеансів агента | -Корисні поля налаштування: +Корисні поля для налаштування: -| Ключ | Тип | Значення | -| ---------------------------- | -------- | ------------------------------------------------------------------- | -| `config.maxSummaryChars` | `number` | Максимальна загальна кількість символів, дозволена в зведенні active-memory | -| `config.recentUserTurns` | `number` | Попередні ходи користувача, які потрібно включати, коли `queryMode` дорівнює `recent` | -| `config.recentAssistantTurns` | `number` | Попередні ходи асистента, які потрібно включати, коли `queryMode` дорівнює `recent` | -| `config.recentUserChars` | `number` | Максимальна кількість символів на нещодавній хід користувача | -| `config.recentAssistantChars` | `number` | Максимальна кількість символів на нещодавній хід асистента | -| `config.cacheTtlMs` | `number` | Повторне використання кешу для повторюваних ідентичних запитів | +| Ключ | Тип | Значення | +| --------------------------- | -------- | ----------------------------------------------------------------------------------- | +| `config.maxSummaryChars` | `number` | Максимальна загальна кількість символів, дозволена в підсумку active-memory | +| `config.recentUserTurns` | `number` | Попередні ходи користувача, які потрібно включити, коли `queryMode` дорівнює `recent` | +| `config.recentAssistantTurns` | `number` | Попередні ходи асистента, які потрібно включити, коли `queryMode` дорівнює `recent` | +| `config.recentUserChars` | `number` | Максимум символів на кожен нещодавній хід користувача | +| `config.recentAssistantChars` | `number` | Максимум символів на кожен нещодавній хід асистента | +| `config.cacheTtlMs` | `number` | Повторне використання кешу для повторних ідентичних запитів (діапазон: 1000-120000 мс; типово: 15000) | ## Рекомендоване налаштування @@ -617,27 +617,27 @@ plugins.entries.active-memory } ``` -Якщо ви хочете переглядати живу поведінку під час налаштування, використовуйте `/verbose on` для -звичайного рядка стану та `/trace on` для налагоджувального зведення active-memory замість -пошуку окремої налагоджувальної команди active-memory. У каналах чату ці +Якщо ви хочете перевіряти живу поведінку під час налаштування, використовуйте `/verbose on` для +звичайного рядка стану та `/trace on` для налагоджувального підсумку active-memory замість +пошуку окремої команди налагодження active-memory. У чат-каналах ці діагностичні рядки надсилаються після основної відповіді асистента, а не перед нею. Потім перейдіть до: -- `message`, якщо потрібна менша затримка -- `full`, якщо ви вирішите, що додатковий контекст вартий повільнішого блокувального під-агента пам’яті +- `message`, якщо хочете меншу затримку +- `full`, якщо вирішите, що додатковий контекст вартий повільнішого блокувального під-агента памʼяті ## Налагодження -Якщо active memory не з’являється там, де ви очікуєте: +Якщо active memory не зʼявляється там, де ви очікуєте: -1. Переконайтеся, що plugin увімкнено в `plugins.entries.active-memory.enabled`. -2. Переконайтеся, що ідентифікатор поточного агента вказано в `config.agents`. -3. Переконайтеся, що ви тестуєте через інтерактивний постійний сеанс чату. +1. Переконайтеся, що Plugin увімкнено в `plugins.entries.active-memory.enabled`. +2. Переконайтеся, що поточний ідентифікатор агента наведено в `config.agents`. +3. Переконайтеся, що ви тестуєте через інтерактивний постійний чат-сеанс. 4. Увімкніть `config.logging: true` і стежте за журналами gateway. -5. Перевірте, що сам пошук пам’яті працює, за допомогою `openclaw memory status --deep`. +5. Перевірте, що сам пошук памʼяті працює, за допомогою `openclaw memory status --deep`. -Якщо збіги пам’яті надто шумні, зробіть жорсткішим: +Якщо memory hits зашумлені, звузьте: - `maxSummaryChars` @@ -645,38 +645,38 @@ plugins.entries.active-memory - знизьте `queryMode` - знизьте `timeoutMs` -- зменште кількість нещодавніх ходів +- зменште кількість recent ходів - зменште обмеження символів на хід ## Поширені проблеми Active Memory працює поверх звичайного конвеєра `memory_search` у -`agents.defaults.memorySearch`, тому більшість неочікуваних результатів recall -спричинені проблемами embedding-провайдера, а не помилками Active Memory. +`agents.defaults.memorySearch`, тому більшість несподіванок recall є проблемами embedding-provider, +а не помилками Active Memory. - + Якщо `memorySearch.provider` не задано, OpenClaw автоматично визначає першого - доступного embedding-провайдера. Новий API-ключ, вичерпання квоти або - обмежений за частотою hosted-провайдер може змінити, який провайдер визначається між - запусками. Якщо жодного провайдера не визначено, `memory_search` може деградувати до retrieval - лише за лексичним збігом; помилки виконання після того, як провайдера вже вибрано, не - перемикаються на резервний варіант автоматично. + доступного embedding provider. Новий API key, вичерпання квоти або + rate-limited hosted provider можуть змінити, який provider визначається між + запусками. Якщо жоден provider не визначено, `memory_search` може деградувати до + retrieval лише за лексичним збігом; збої під час виконання після того, як provider уже вибрано, не + переходять на fallback автоматично. - Явно зафіксуйте провайдера (і необов’язковий резервний варіант), щоб зробити вибір + Явно закріпіть provider (і необовʼязковий fallback), щоб зробити вибір детермінованим. Див. [Memory Search](/uk/concepts/memory-search) для повного - списку провайдерів і прикладів фіксації. + списку providers і прикладів закріплення. - - - Увімкніть `/trace on`, щоб показати в сеансі зведення налагодження Active Memory, - яке належить Plugin. + + - Увімкніть `/trace on`, щоб показати в сеансі належний Plugin + зведений налагоджувальний звіт Active Memory. - Увімкніть `/verbose on`, щоб також бачити рядок стану `🧩 Active Memory: ...` після кожної відповіді. - - Стежте за журналами Gateway на наявність `active-memory: ... start|done`, - `memory sync failed (search-bootstrap)` або помилок embedding від провайдера. - - Виконайте `openclaw memory status --deep`, щоб перевірити бекенд пошуку в пам’яті + - Стежте в журналах Gateway за `active-memory: ... start|done`, + `memory sync failed (search-bootstrap)` або помилками embedding провайдера. + - Виконайте `openclaw memory status --deep`, щоб перевірити бекенд пошуку пам’яті та стан індексу. - Якщо ви використовуєте `ollama`, переконайтеся, що модель embedding встановлена (`ollama list`). @@ -685,6 +685,6 @@ Active Memory працює поверх звичайного конвеєра `m ## Пов’язані сторінки -- [Пошук у пам’яті](/uk/concepts/memory-search) -- [Довідник конфігурації пам’яті](/uk/reference/memory-config) +- [Пошук пам’яті](/uk/concepts/memory-search) +- [Довідник із конфігурації пам’яті](/uk/reference/memory-config) - [Налаштування Plugin SDK](/uk/plugins/sdk-setup)