diff --git a/docs/uk/concepts/active-memory.md b/docs/uk/concepts/active-memory.md index aa9f9fdf1..26f895b52 100644 --- a/docs/uk/concepts/active-memory.md +++ b/docs/uk/concepts/active-memory.md @@ -3,34 +3,34 @@ read_when: - Ви хочете зрозуміти, для чого потрібна активна пам’ять - Ви хочете увімкнути активну пам’ять для розмовного агента - Ви хочете налаштувати поведінку активної пам’яті, не вмикаючи її всюди -summary: Підлеглий агент блокувальної пам’яті, що належить плагіну та впроваджує релевантну пам’ять в інтерактивні сеанси чату +summary: Плагінний блокувальний підагент пам’яті, який впроваджує релевантну пам’ять в інтерактивні сеанси чату title: Активна пам’ять x-i18n: - generated_at: "2026-04-09T16:29:05Z" + generated_at: "2026-04-11T04:03:44Z" model: gpt-5.4 provider: openai - source_hash: 6a51437df4ae4d9d57764601dfcfcdadb269e2895bf49dc82b9f496c1b3cb341 + source_hash: e8b0e6539e09678e9e8def68795f8bcb992f98509423da3da3123eda88ec1dd5 source_path: concepts/active-memory.md workflow: 15 --- # Активна пам’ять -Активна пам’ять — це необов’язковий підлеглий агент блокувальної пам’яті, що належить плагіну та запускається -перед основною відповіддю для придатних розмовних сеансів. +Активна пам’ять — це необов’язковий плагінний блокувальний підагент пам’яті, який запускається +перед основною відповіддю для відповідних розмовних сеансів. Вона існує тому, що більшість систем пам’яті є потужними, але реактивними. Вони покладаються на -те, що основний агент сам вирішить, коли шукати в пам’яті, або на те, що користувач скаже -щось на кшталт «запам’ятай це» чи «пошукай у пам’яті». На той момент мить, коли пам’ять могла б -зробити відповідь природнішою, уже минула. +те, що основний агент вирішить, коли шукати в пам’яті, або на те, що користувач скаже щось +на кшталт «запам’ятай це» чи «пошукай у пам’яті». На той момент мить, коли пам’ять могла б +зробити відповідь природною, уже минула. Активна пам’ять дає системі одну обмежену можливість показати релевантну пам’ять -до того, як буде згенеровано основну відповідь. +до того, як буде згенерована основна відповідь. ## Вставте це у свого агента -Вставте це у свого агента, якщо хочете ввімкнути Активну пам’ять із -самодостатнім налаштуванням із безпечними значеннями за замовчуванням: +Вставте це у свого агента, якщо хочете ввімкнути активну пам’ять із +самодостатнім налаштуванням за замовчуванням із безпечними параметрами: ```json5 { @@ -56,17 +56,18 @@ x-i18n: } ``` -Це вмикає плагін для агента `main`, за замовчуванням обмежує його лише -сеансами у стилі прямих повідомлень, дозволяє спершу успадковувати поточну модель сеансу, а -також зберігає вбудований віддалений резервний варіант, якщо явна або успадкована модель недоступна. +Це вмикає плагін для агента `main`, за замовчуванням обмежує його сеансами +у стилі прямих повідомлень, дає змогу спочатку успадкувати модель поточного сеансу і +водночас дозволяє використовувати вбудований віддалений резервний варіант, якщо явна або +успадкована модель недоступна. -Після цього перезапустіть gateway: +Після цього перезапустіть шлюз: ```bash -node scripts/run-node.mjs gateway --profile dev +openclaw gateway ``` -Щоб переглянути її роботу наживо в розмові: +Щоб переглянути це наживо в розмові: ```text /verbose on @@ -74,7 +75,7 @@ node scripts/run-node.mjs gateway --profile dev ## Увімкнення активної пам’яті -Найбезпечніше налаштування: +Найбезпечніше налаштування таке: 1. увімкнути плагін 2. націлити його на одного розмовного агента @@ -105,10 +106,10 @@ node scripts/run-node.mjs gateway --profile dev } ``` -Потім перезапустіть gateway: +Потім перезапустіть шлюз: ```bash -node scripts/run-node.mjs gateway --profile dev +openclaw gateway ``` Що це означає: @@ -116,20 +117,20 @@ node scripts/run-node.mjs gateway --profile dev - `plugins.entries.active-memory.enabled: true` вмикає плагін - `config.agents: ["main"]` підключає до активної пам’яті лише агента `main` - `config.allowedChatTypes: ["direct"]` за замовчуванням залишає активну пам’ять увімкненою лише для сеансів у стилі прямих повідомлень -- якщо `config.model` не задано, активна пам’ять спочатку успадковує поточну модель сеансу -- `config.modelFallbackPolicy: "default-remote"` зберігає вбудований віддалений резервний варіант за замовчуванням, якщо явна або успадкована модель недоступна +- якщо `config.model` не задано, активна пам’ять спочатку успадковує модель поточного сеансу +- `config.modelFallbackPolicy: "default-remote"` зберігає вбудований віддалений резервний варіант як типовий, коли явна або успадкована модель недоступна - `config.promptStyle: "balanced"` використовує типовий універсальний стиль запиту для режиму `recent` -- активна пам’ять однаково запускається лише в придатних інтерактивних постійних чат-сеансах +- активна пам’ять усе одно запускається лише для відповідних інтерактивних постійних сеансів чату ## Як це побачити Активна пам’ять впроваджує прихований системний контекст для моделі. Вона не показує -необроблені теги `...` клієнту. +клієнту сирі теги `...`. ## Перемикач сеансу Використовуйте команду плагіна, якщо хочете призупинити або відновити активну пам’ять для -поточного чат-сеансу без редагування конфігурації: +поточного сеансу чату без редагування конфігурації: ```text /active-memory status @@ -137,8 +138,8 @@ node scripts/run-node.mjs gateway --profile dev /active-memory on ``` -Це має область дії сеансу. Це не змінює -`plugins.entries.active-memory.enabled`, націлювання агента чи іншу глобальну +Це налаштування в межах сеансу. Воно не змінює +`plugins.entries.active-memory.enabled`, націлення на агентів чи іншу глобальну конфігурацію. Якщо ви хочете, щоб команда записувала конфігурацію та призупиняла або відновлювала активну пам’ять для @@ -151,11 +152,11 @@ node scripts/run-node.mjs gateway --profile dev ``` Глобальна форма записує `plugins.entries.active-memory.config.enabled`. Вона залишає -`plugins.entries.active-memory.enabled` увімкненим, щоб команда й надалі була доступна для +`plugins.entries.active-memory.enabled` увімкненим, щоб команда й надалі була доступною для повторного ввімкнення активної пам’яті пізніше. -Якщо ви хочете побачити, що робить активна пам’ять у поточному сеансі, увімкніть докладний -режим для цього сеансу: +Якщо ви хочете бачити, що робить активна пам’ять у поточному сеансі, увімкніть докладний режим +для цього сеансу: ```text /verbose on @@ -164,26 +165,26 @@ node scripts/run-node.mjs gateway --profile dev Коли докладний режим увімкнено, OpenClaw може показувати: - рядок стану активної пам’яті, наприклад `Active Memory: ok 842ms recent 34 chars` -- зрозумілий налагоджувальний підсумок, наприклад `Active Memory Debug: Lemon pepper wings with blue cheese.` +- зрозумілий підсумок для налагодження, наприклад `Active Memory Debug: Lemon pepper wings with blue cheese.` -Ці рядки походять із того самого проходу активної пам’яті, який живить прихований -системний контекст, але відформатовані для людей замість показу необробленої розмітки +Ці рядки походять із того самого проходу активної пам’яті, який подає прихований +системний контекст, але вони відформатовані для людей замість показу сирої розмітки запиту. -За замовчуванням стенограма підлеглого агента блокувальної пам’яті є тимчасовою та видаляється -після завершення запуску. +За замовчуванням стенограма блокувального підагента пам’яті є тимчасовою і видаляється +після завершення виконання. Приклад потоку: ```text /verbose on -які крильця мені замовити? +what wings should i order? ``` Очікувана видима форма відповіді: ```text -...звичайна відповідь помічника... +...normal assistant reply... 🧩 Active Memory: ok 842ms recent 34 chars 🔎 Active Memory Debug: Lemon pepper wings with blue cheese. @@ -191,34 +192,34 @@ node scripts/run-node.mjs gateway --profile dev ## Коли вона запускається -Активна пам’ять використовує два етапи перевірки: +Активна пам’ять використовує два фільтри: 1. **Явне ввімкнення в конфігурації** - Плагін має бути ввімкнений, а поточний ідентифікатор агента має бути присутній у + Плагін має бути ввімкнений, а поточний id агента має бути вказаний у `plugins.entries.active-memory.config.agents`. -2. **Сувора придатність під час виконання** - Навіть коли активна пам’ять увімкнена й націлена, вона запускається лише для придатних - інтерактивних постійних чат-сеансів. +2. **Строга відповідність умовам середовища виконання** + Навіть якщо її ввімкнено і націлено, активна пам’ять запускається лише для відповідних + інтерактивних постійних сеансів чату. Фактичне правило таке: ```text -плагін увімкнено +plugin enabled + -ідентифікатор агента націлено +agent id targeted + -дозволений тип чату +allowed chat type + -придатний інтерактивний постійний чат-сеанс +eligible interactive persistent chat session = -активна пам’ять запускається +active memory runs ``` Якщо будь-яка з цих умов не виконується, активна пам’ять не запускається. ## Типи сеансів -`config.allowedChatTypes` визначає, у яких типах розмов взагалі може працювати Активна +`config.allowedChatTypes` визначає, у яких типах розмов узагалі може працювати Активна пам’ять. Значення за замовчуванням: @@ -227,8 +228,8 @@ node scripts/run-node.mjs gateway --profile dev allowedChatTypes: ["direct"] ``` -Це означає, що Активна пам’ять за замовчуванням працює в сеансах у стилі прямих повідомлень, але -не в групових сеансах або сеансах каналів, якщо ви явно їх не ввімкнете. +Це означає, що за замовчуванням Активна пам’ять працює в сеансах у стилі прямих повідомлень, але +не в групових сеансах або сеансах каналів, якщо ви явно не ввімкнете їх. Приклади: @@ -244,19 +245,19 @@ allowedChatTypes: ["direct", "group"] allowedChatTypes: ["direct", "group", "channel"] ``` -## Де вона запускається +## Де вона працює -Активна пам’ять — це функція покращення розмови, а не загальноплатформова +Активна пам’ять — це функція покращення розмов, а не загальноплатформна функція інференсу. | Поверхня | Активна пам’ять запускається? | | ------------------------------------------------------------------- | ------------------------------------------------------- | -| Постійні сеанси Control UI / вебчату | Так, якщо плагін увімкнено і агента націлено | -| Інші інтерактивні сеанси каналів на тому самому шляху постійного чату | Так, якщо плагін увімкнено і агента націлено | -| Безголові одноразові запуски | Ні | -| Запуски heartbeat/у фоновому режимі | Ні | +| Постійні сеанси Control UI / вебчату | Так, якщо плагін увімкнено і агент націлений | +| Інші інтерактивні сеанси каналів на тому самому шляху постійного чату | Так, якщо плагін увімкнено і агент націлений | +| Одноразові headless-запуски | Ні | +| Запуски heartbeat/фонові запуски | Ні | | Загальні внутрішні шляхи `agent-command` | Ні | -| Виконання підлеглих агентів/внутрішніх допоміжних компонентів | Ні | +| Виконання підагентів/внутрішніх допоміжних компонентів | Ні | ## Навіщо її використовувати @@ -266,56 +267,56 @@ allowedChatTypes: ["direct", "group", "channel"] - агент має змістовну довгострокову пам’ять для пошуку - безперервність і персоналізація важливіші за чистий детермінізм запиту -Вона особливо добре працює для: +Вона особливо добре підходить для: -- стабільних уподобань +- сталих уподобань - повторюваних звичок - довгострокового контексту користувача, який має природно з’являтися Вона погано підходить для: - автоматизації -- внутрішніх робітників +- внутрішніх працівників - одноразових API-завдань -- місць, де прихована персоналізація була б неочікуваною +- місць, де прихована персоналізація була б несподіваною ## Як це працює -Форма під час виконання така: +Форма виконання така: ```mermaid flowchart LR - U["Повідомлення користувача"] --> Q["Побудувати запит до пам’яті"] - Q --> R["Підлеглий агент блокувальної пам’яті Активної пам’яті"] - R -->|NONE or empty| M["Основна відповідь"] - R -->|relevant summary| I["Додати прихований системний контекст active_memory_plugin"] - I --> M["Основна відповідь"] + U["User Message"] --> Q["Build Memory Query"] + Q --> R["Active Memory Blocking Memory Sub-Agent"] + R -->|NONE or empty| M["Main Reply"] + R -->|relevant summary| I["Append Hidden active_memory_plugin System Context"] + I --> M["Main Reply"] ``` -Підлеглий агент блокувальної пам’яті може використовувати лише: +Блокувальний підагент пам’яті може використовувати лише: - `memory_search` - `memory_get` -Якщо з’єднання слабке, він має повертати `NONE`. +Якщо з’єднання слабке, він має повернути `NONE`. ## Режими запиту -`config.queryMode` визначає, який обсяг розмови бачить підлеглий агент блокувальної пам’яті. +`config.queryMode` визначає, яку частину розмови бачить блокувальний підагент пам’яті. ## Стилі запиту -`config.promptStyle` визначає, наскільки охоче або суворо підлеглий агент блокувальної пам’яті +`config.promptStyle` визначає, наскільки охоче або строго блокувальний підагент пам’яті вирішує, чи повертати пам’ять. Доступні стилі: -- `balanced`: універсальне значення за замовчуванням для режиму `recent` -- `strict`: найменш охочий; найкраще, коли ви хочете мінімального проникнення з навколишнього контексту -- `contextual`: найсприятливіший для безперервності; найкраще, коли історія розмови має більше значення +- `balanced`: типовий універсальний варіант для режиму `recent` +- `strict`: найменш охочий; найкраще підходить, коли ви хочете мінімального впливу сусіднього контексту +- `contextual`: найсприятливіший для безперервності; найкраще підходить, коли історія розмови має більшу вагу - `recall-heavy`: охочіше показує пам’ять за слабших, але все ще правдоподібних збігів - `precision-heavy`: агресивно віддає перевагу `NONE`, якщо збіг не є очевидним -- `preference-only`: оптимізований для обраного, звичок, рутин, смаків і повторюваних особистих фактів +- `preference-only`: оптимізовано для улюбленого, звичок, рутин, смаків і повторюваних особистих фактів Типове зіставлення, коли `config.promptStyle` не задано: @@ -325,7 +326,7 @@ recent -> balanced full -> contextual ``` -Якщо ви явно задасте `config.promptStyle`, це перевизначення матиме пріоритет. +Якщо ви явно задасте `config.promptStyle`, цей пріоритет матиме перевагу. Приклад: @@ -333,20 +334,20 @@ full -> contextual promptStyle: "preference-only" ``` -## Політика резервного вибору моделі +## Політика резервного варіанта моделі Якщо `config.model` не задано, Активна пам’ять намагається визначити модель у такому порядку: ```text -явна модель плагіна --> поточна модель сеансу --> основна модель агента --> необов’язковий вбудований віддалений резервний варіант +explicit plugin model +-> current session model +-> agent primary model +-> optional built-in remote fallback ``` `config.modelFallbackPolicy` керує останнім кроком. -Значення за замовчуванням: +За замовчуванням: ```json5 modelFallbackPolicy: "default-remote" @@ -359,58 +360,58 @@ modelFallbackPolicy: "resolved-only" ``` Використовуйте `resolved-only`, якщо хочете, щоб Активна пам’ять пропускала пригадування замість -переходу до вбудованого віддаленого значення за замовчуванням, коли явна або успадкована модель +використання вбудованого віддаленого типового резервного варіанта, коли явна або успадкована модель недоступна. -## Розширені варіанти обходу +## Розширені аварійні налаштування Ці параметри навмисно не входять до рекомендованого налаштування. -`config.thinking` може перевизначати рівень мислення підлеглого агента блокувальної пам’яті: +`config.thinking` може перевизначити рівень thinking для блокувального підагента пам’яті: ```json5 thinking: "medium" ``` -Значення за замовчуванням: +За замовчуванням: ```json5 thinking: "off" ``` -Не вмикайте це за замовчуванням. Активна пам’ять працює на шляху формування відповіді, тому -додатковий час на мислення безпосередньо збільшує видиму для користувача затримку. +Не вмикайте це за замовчуванням. Активна пам’ять працює на шляху відповіді, тож додатковий +час на thinking безпосередньо збільшує затримку, помітну користувачу. `config.promptAppend` додає додаткові інструкції оператора після типового запиту Активної -пам’яті й перед контекстом розмови: +пам’яті та перед контекстом розмови: ```json5 -promptAppend: "Надавайте перевагу стабільним довгостроковим уподобанням над одноразовими подіями." +promptAppend: "Prefer stable long-term preferences over one-off events." ``` `config.promptOverride` замінює типовий запит Активної пам’яті. OpenClaw усе одно додає контекст розмови після нього: ```json5 -promptOverride: "Ви агент пошуку в пам’яті. Поверніть NONE або один компактний факт про користувача." +promptOverride: "You are a memory search agent. Return NONE or one compact user fact." ``` -Налаштовувати запит не рекомендується, якщо тільки ви цілеспрямовано не тестуєте інший -контракт пригадування. Типовий запит налаштовано так, щоб повертати або `NONE`, -або компактний контекст фактів про користувача для основної моделі. +Налаштування запиту не рекомендується, якщо ви цілеспрямовано не тестуєте інший +контракт пригадування. Типовий запит налаштований на повернення або `NONE`, +або компактного контексту фактів про користувача для основної моделі. ### `message` Надсилається лише останнє повідомлення користувача. ```text -Лише останнє повідомлення користувача +Latest user message only ``` Використовуйте це, коли: -- вам потрібна найвища швидкість роботи -- вам потрібен найсильніший ухил у бік пригадування стабільних уподобань +- ви хочете найшвидшу поведінку +- ви хочете найсильніший ухил у бік пригадування сталих уподобань - наступні ходи не потребують розмовного контексту Рекомендований тайм-аут: @@ -419,21 +420,21 @@ promptOverride: "Ви агент пошуку в пам’яті. Поверні ### `recent` -Надсилається останнє повідомлення користувача та невеликий хвіст нещодавньої розмови. +Надсилається останнє повідомлення користувача плюс невеликий хвіст нещодавньої розмови. ```text -Хвіст нещодавньої розмови: +Recent conversation tail: user: ... assistant: ... user: ... -Останнє повідомлення користувача: +Latest user message: ... ``` Використовуйте це, коли: -- вам потрібен кращий баланс між швидкістю та прив’язкою до розмови +- ви хочете кращий баланс між швидкістю та опорою на розмовний контекст - подальші запитання часто залежать від кількох останніх ходів Рекомендований тайм-аут: @@ -442,10 +443,10 @@ user: ... ### `full` -Уся розмова надсилається підлеглому агенту блокувальної пам’яті. +Уся розмова надсилається блокувальному підагенту пам’яті. ```text -Повний контекст розмови: +Full conversation context: user: ... assistant: ... user: ... @@ -455,31 +456,31 @@ user: ... Використовуйте це, коли: - найвища якість пригадування важливіша за затримку -- розмова містить важливу підготовчу інформацію далеко вище по гілці +- розмова містить важливі підготовчі дані далеко вгорі гілки Рекомендований тайм-аут: -- суттєво збільшуйте його порівняно з `message` або `recent` +- значно збільште його порівняно з `message` або `recent` - починайте приблизно з `15000` мс або вище залежно від розміру гілки -Загалом тайм-аут має збільшуватися разом із розміром контексту: +Загалом тайм-аут має зростати разом із розміром контексту: ```text message < recent < full ``` -## Збереження стенограм +## Збереження стенограми -Запуски підлеглого агента блокувальної пам’яті активної пам’яті створюють справжню -стенограму `session.jsonl` під час виклику підлеглого агента блокувальної пам’яті. +Запуски блокувального підагента пам’яті активної пам’яті створюють справжню стенограму `session.jsonl` +під час виклику блокувального підагента пам’яті. За замовчуванням ця стенограма є тимчасовою: -- вона записується до тимчасового каталогу -- вона використовується лише для запуску підлеглого агента блокувальної пам’яті -- вона видаляється одразу після завершення запуску +- її записують до тимчасового каталогу +- вона використовується лише для виконання блокувального підагента пам’яті +- її видаляють одразу після завершення виконання -Якщо ви хочете зберігати ці стенограми підлеглого агента блокувальної пам’яті на диску для налагодження або +Якщо ви хочете зберігати ці стенограми блокувального підагента пам’яті на диску для налагодження або перевірки, явно ввімкніть збереження: ```json5 @@ -499,10 +500,10 @@ message < recent < full } ``` -Коли цю функцію ввімкнено, активна пам’ять зберігає стенограми в окремому каталозі в папці +Коли це ввімкнено, активна пам’ять зберігає стенограми в окремому каталозі в папці сеансів цільового агента, а не в основному шляху стенограми розмови користувача. -Типова структура концептуально виглядає так: +Типова структура концептуально така: ```text agents//sessions/active-memory/.jsonl @@ -512,8 +513,8 @@ agents//sessions/active-memory/.jso Використовуйте це обережно: -- стенограми підлеглого агента блокувальної пам’яті можуть швидко накопичуватися в активних сеансах -- режим запиту `full` може дублювати велику частину контексту розмови +- стенограми блокувального підагента пам’яті можуть швидко накопичуватися в активних сеансах +- режим запиту `full` може дублювати значну частину контексту розмови - ці стенограми містять прихований контекст запиту та пригадані спогади ## Конфігурація @@ -529,29 +530,29 @@ plugins.entries.active-memory | Ключ | Тип | Значення | | --------------------------- | ---------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ | | `enabled` | `boolean` | Вмикає сам плагін | -| `config.agents` | `string[]` | Ідентифікатори агентів, які можуть використовувати активну пам’ять | -| `config.model` | `string` | Необов’язкове посилання на модель підлеглого агента блокувальної пам’яті; якщо не задано, активна пам’ять використовує поточну модель сеансу | -| `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"` | Розширене перевизначення рівня мислення для підлеглого агента блокувальної пам’яті; типово `off` для швидкості | +| `config.agents` | `string[]` | ID агентів, які можуть використовувати активну пам’ять | +| `config.model` | `string` | Необов’язкове посилання на модель блокувального підагента пам’яті; якщо не задано, активна пам’ять використовує модель поточного сеансу | +| `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"` | Розширене перевизначення thinking для блокувального підагента пам’яті; за замовчуванням `off` для швидкості | | `config.promptOverride` | `string` | Розширена повна заміна запиту; не рекомендується для звичайного використання | -| `config.promptAppend` | `string` | Розширені додаткові інструкції, що додаються до типового або перевизначеного запиту | -| `config.timeoutMs` | `number` | Жорсткий тайм-аут для підлеглого агента блокувальної пам’яті | +| `config.promptAppend` | `string` | Розширені додаткові інструкції, додані до типового або перевизначеного запиту | +| `config.timeoutMs` | `number` | Жорсткий тайм-аут для блокувального підагента пам’яті | | `config.maxSummaryChars` | `number` | Максимальна загальна кількість символів, дозволена в підсумку active-memory | | `config.logging` | `boolean` | Виводить журнали активної пам’яті під час налаштування | -| `config.persistTranscripts` | `boolean` | Зберігає стенограми підлеглого агента блокувальної пам’яті на диску замість видалення тимчасових файлів | -| `config.transcriptDir` | `string` | Відносний каталог стенограм підлеглого агента блокувальної пам’яті в папці сеансів агента | +| `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.recentUserTurns` | `number` | Попередні ходи користувача, які слід включити, коли `queryMode` дорівнює `recent` | +| `config.recentAssistantTurns` | `number` | Попередні ходи помічника, які слід включити, коли `queryMode` дорівнює `recent` | +| `config.recentUserChars` | `number` | Максимум символів на один нещодавній хід користувача | +| `config.recentAssistantChars` | `number` | Максимум символів на один нещодавній хід помічника | +| `config.cacheTtlMs` | `number` | Повторне використання кешу для повторюваних ідентичних запитів | ## Рекомендоване налаштування @@ -577,34 +578,34 @@ plugins.entries.active-memory } ``` -Якщо ви хочете перевіряти поведінку наживо під час налаштування, використовуйте `/verbose on` у +Якщо ви хочете переглядати поведінку наживо під час налаштування, використовуйте `/verbose on` у сеансі замість пошуку окремої команди налагодження active-memory. Потім перейдіть до: -- `message`, якщо вам потрібна менша затримка -- `full`, якщо ви вирішите, що додатковий контекст вартий повільнішого підлеглого агента блокувальної пам’яті +- `message`, якщо хочете меншу затримку +- `full`, якщо вирішите, що додатковий контекст вартий повільнішого блокувального підагента пам’яті ## Налагодження Якщо активна пам’ять не з’являється там, де ви очікуєте: 1. Переконайтеся, що плагін увімкнено в `plugins.entries.active-memory.enabled`. -2. Переконайтеся, що поточний ідентифікатор агента вказано в `config.agents`. -3. Переконайтеся, що ви тестуєте через інтерактивний постійний чат-сеанс. -4. Увімкніть `config.logging: true` і перегляньте журнали gateway. +2. Переконайтеся, що поточний ID агента вказаний у `config.agents`. +3. Переконайтеся, що ви тестуєте через інтерактивний постійний сеанс чату. +4. Увімкніть `config.logging: true` і стежте за журналами шлюзу. 5. Перевірте, що сам пошук у пам’яті працює, за допомогою `openclaw memory status --deep`. -Якщо спрацювання пам’яті надто шумні, посильте обмеження: +Якщо збіги пам’яті занадто шумні, зменште: - `maxSummaryChars` -Якщо активна пам’ять працює надто повільно: +Якщо активна пам’ять надто повільна: - зменште `queryMode` - зменште `timeoutMs` -- зменште кількість недавніх ходів -- зменште ліміти символів на хід +- зменште кількість нещодавніх ходів +- зменште обмеження символів на хід ## Пов’язані сторінки