Sessions and memory

Огляд пам’яті

OpenClaw запам'ятовує інформацію, записуючи звичайні файли Markdown у робочому просторі агента (типово ~/.openclaw/workspace). Модель пам'ятає лише те, що збережено на диск; прихованого стану немає.

Як це працює

Агент має три файли, пов'язані з пам'яттю:

  • MEMORY.md — довготривала пам'ять. Сталі факти, уподобання та рішення. Завантажується на початку сеансу.
  • memory/YYYY-MM-DD.md (або memory/YYYY-MM-DD-<slug>.md) — щоденні нотатки. Поточний контекст і спостереження. Датовані нотатки за сьогодні та вчора автоматично завантажуються для базового /new або /reset; варіанти зі слагом, зокрема створені вбудованим хуком пам'яті сеансу, підхоплюються разом із файлом, названим лише датою.
  • DREAMS.md (необов'язково) — щоденник сновидінь і підсумки проходів Dreaming для перевірки людиною, зокрема обґрунтовані записи історичного дозаповнення.

Що куди записується

MEMORY.md — це компактний, упорядкований рівень: сталі факти, уподобання, чинні рішення та короткі підсумки, які мають бути доступні на початку сеансу. Це не необроблена стенограма, щоденний журнал чи вичерпний архів.

Файли memory/YYYY-MM-DD.md — це робочий рівень: докладні щоденні нотатки, спостереження, підсумки сеансів і необроблений контекст, який може бути корисним згодом. Вони індексуються для memory_search і memory_get, але не вставляються до початкового запиту під час кожного ходу.

З часом агент виокремлює корисний матеріал із щоденних нотаток у MEMORY.md і видаляє застарілі записи довготривалої пам'яті. Згенеровані інструкції робочого простору та потік Heartbeat періодично виконують це; не потрібно вручну редагувати MEMORY.md для кожної деталі.

Якщо MEMORY.md перевищує бюджет початкового файла, OpenClaw зберігає файл на диску без змін, але обрізає копію, вставлену до контексту. Сприймайте це як сигнал перенести докладний матеріал до memory/*.md, залишити лише сталий підсумок у MEMORY.md або збільшити початкові обмеження, якщо потрібно витратити більше бюджету запиту. Скористайтеся /context list, /context detail або openclaw doctor, щоб переглянути вихідні й вставлені розміри та стан обрізання.

Імпорт із помічників із програмування

У Control UI можна імпортувати наявну локальну пам'ять із Codex і Claude Code. Відкрийте SettingsImport Memory, виберіть агента призначення, перегляньте виявлені файли та підтвердьте імпорт. OpenClaw копіює лише пам'ять у форматі Markdown:

  • Codex: об'єднані файли MEMORY.md і memory_summary.md у ~/.codex/memories (або CODEX_HOME/memories). Необроблені файли виконання та стенограм не імпортуються.
  • Claude Code: файли Markdown із каталогу автоматичної пам'яті кожного проєкту в ~/.claude/projects/*/memory, а також налаштований користувачем autoMemoryDirectory, якщо він є. Інструкції проєкту, сеанси, налаштування та облікові дані не входять до цієї дії, призначеної лише для пам'яті.

Імпортовані файли зберігаються окремо в memory/imports/codex/ і memory/imports/claude-code/ у робочому просторі вибраного агента. Вони індексуються для memory_search і доступні через memory_get; вони не об'єднуються з початковим MEMORY.md агента. Початкові файли залишаються без змін.

Попередній перегляд позначає конфлікти в місці призначення. Увімкніть Replace existing imports, щоб замінити ці файли; застосування створює перевірену резервну копію перед імпортом і зберігає окремі копії перезаписаних файлів у звіті про міграцію.

Пам'ять, чутлива до дій

Більшість спогадів — це звичайні нотатки Markdown. Деякі впливають на те, що агент має робити згодом; для них записуйте не лише сам факт, а й коли можна безпечно діяти на його підставі.

Фіксуйте цю межу дії, коли нотатка стосується:

  • вимог щодо схвалення або дозволу,
  • тимчасових обмежень,
  • передавання іншому сеансу, гілці обговорення або особі,
  • умов завершення строку дії,
  • безпечного часу для дії,
  • повноважень джерела або власника,
  • інструкцій уникати привабливої дії.

Корисна пам'ять, чутлива до дій, чітко визначає:

  • що змінює майбутню поведінку,
  • коли або за якої умови це застосовується,
  • коли строк дії завершується або що дозволяє діяти,
  • чого агент має уникати,
  • хто є джерелом або власником, якщо це впливає на довіру чи повноваження.

Пам'ять може зберігати контекст схвалення, але не забезпечує дотримання політики. Для жорсткого операційного контролю використовуйте налаштування схвалення OpenClaw, ізоляцію в пісочниці та заплановані завдання.

Приклад:

md
Міграція API проєктується в іншому сеансі. У майбутніх ходах не слідредагувати реалізацію API з цієї гілки обговорення; використовуйте наведені тут висновки лише яквхідні дані для проєктування, доки не буде прийнято план міграції.

Інший приклад:

md
Звіт із ненадійного джерела потребує перевірки перед просуванням. У майбутніх ходахйого слід розглядати лише як доказ; не зберігайте його як сталу пам'ять, докидовірений рецензент не підтвердить вміст.

Це не обов'язкова схема для кожного запису пам'яті; прості факти можуть залишатися стислими. Використовуйте межі, чутливі до дій, коли втрата часу, повноважень, строку дії або контексту безпечної дії може призвести до того, що агент згодом учинить неправильно.

Використовуйте зобов'язання для виведених короткочасних подальших дій. Використовуйте заплановані завдання для точних нагадувань, перевірок за часом і повторюваної роботи. Пам'ять усе одно може підсумовувати сталий контекст навколо будь-якого з цих шляхів.

Виведені зобов'язання

Деякі майбутні подальші дії не є сталими фактами. Якщо згадується співбесіда завтра, корисним записом пам'яті може бути «дізнатися, як минула співбесіда», а не «зберегти це назавжди в MEMORY.md».

Зобов'язання — це необов'язкові короткочасні записи пам'яті про подальші дії для такого випадку. OpenClaw виводить їх у прихованому фоновому проході, обмежує тим самим агентом і каналом та доставляє належні контрольні повідомлення через Heartbeat. Явні нагадування й надалі використовують заплановані завдання.

Засоби роботи з пам'яттю

Агент має два засоби для роботи з пам'яттю:

  • memory_search — знаходить релевантні нотатки за допомогою семантичного пошуку, навіть якщо формулювання відрізняється від оригінального.
  • memory_get — читає певний файл пам'яті або діапазон рядків.

Обидва засоби надаються активним плагіном пам'яті (типово: memory-core).

Пошук у пам'яті

Коли налаштовано постачальника вбудовувань, memory_search використовує гібридний пошук: векторну подібність (семантичне значення) у поєднанні з пошуком за ключовими словами (точні терміни, як-от ідентифікатори та символи коду). Це працює одразу після налаштування ключа API для будь-якого підтримуваного постачальника.

Див. Пошук у пам'яті, щоб дізнатися, як працює пошук, про параметри налаштування та конфігурацію постачальника.

Серверні частини пам'яті

Рівень вікі знань

Якщо потрібно, щоб стала пам'ять більше нагадувала підтримувану базу знань, ніж необроблені нотатки, використовуйте вбудований плагін memory-wiki. Він компілює сталі знання у вікі-сховище з детермінованою структурою сторінок, структурованими твердженнями й доказами, відстеженням суперечностей і актуальності, згенерованими панелями, скомпільованими оглядами та вбудованими засобами вікі (wiki_status, wiki_search, wiki_get, wiki_apply, wiki_lint).

memory-wiki не замінює активний плагін пам'яті; активний плагін пам'яті й надалі відповідає за пригадування, просування та Dreaming. memory-wiki додає поруч рівень знань із докладним походженням.

Автоматичне скидання пам'яті

Перед тим як Compaction підсумовує розмову, OpenClaw виконує беззвучний хід, який нагадує агенту зберегти важливий контекст у файлах пам'яті. Це типово ввімкнено; задайте agents.defaults.compaction.memoryFlush.enabled: false, щоб вимкнути це.

Щоб цей службовий хід виконувався на локальній моделі, задайте точне перевизначення, яке застосовується лише до ходу скидання пам'яті (він не успадковує ланцюжок резервних моделей активного сеансу):

json
{  "agents": {    "defaults": {      "compaction": {        "memoryFlush": {          "model": "ollama/qwen3:8b"        }      }    }  }}

Dreaming

Dreaming — це необов'язковий фоновий прохід консолідації пам'яті. Він збирає короткочасні сигнали пригадування, оцінює кандидатів і просуває до довготривалої пам'яті (MEMORY.md) лише ті елементи, що відповідають вимогам:

  • За бажанням: типово вимкнено.
  • За розкладом: коли ввімкнено, memory-core автоматично керує одним повторюваним завданням Cron для повного проходу Dreaming.
  • З порогами: просування мають пройти перевірки оцінки, частоти пригадування та різноманітності запитів.
  • З можливістю перевірки: підсумки фаз і записи щоденника записуються до DREAMS.md для перевірки людиною.

Див. Dreaming, щоб дізнатися про поведінку фаз, сигнали оцінювання та подробиці щоденника сновидінь.

Обґрунтоване дозаповнення та оперативне просування

Система Dreaming має два пов'язані напрями перевірки:

  • Оперативне Dreaming працює з короткочасним сховищем Dreaming у memory/.dreams/ і використовується звичайною глибокою фазою для визначення того, що переходить до MEMORY.md.
  • Обґрунтоване дозаповнення читає історичні нотатки memory/YYYY-MM-DD.md як окремі файли за днями та записує структурований результат перевірки до DREAMS.md.

Обґрунтоване дозаповнення корисне для повторного опрацювання старіших нотаток і перевірки того, що система вважає сталим, без ручного редагування MEMORY.md.

bash
openclaw memory rem-backfill --path ./memory --stage-short-term

Прапорець --stage-short-term додає обґрунтованих сталих кандидатів до того самого короткочасного сховища Dreaming, яке вже використовує звичайна глибока фаза; він не просуває їх безпосередньо. Отже:

  • DREAMS.md залишається поверхнею перевірки для людини.
  • Короткочасне сховище залишається поверхнею ранжування для машини.
  • MEMORY.md і надалі записується лише глибоким просуванням.

Щоб скасувати повторне опрацювання, не торкаючись звичайних записів щоденника чи нормального стану пригадування:

bash
openclaw memory rem-backfill --rollbackopenclaw memory rem-backfill --rollback-short-term

CLI

bash
openclaw memory status          # Перевірити стан індексу та постачальникаopenclaw memory search "query"  # Шукати з командного рядкаopenclaw memory index --force   # Перебудувати індекс

Додаткові матеріали

Was this useful?
On this page

On this page