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. Відкрийте Settings → Import 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, ізоляцію в пісочниці та заплановані завдання.
Приклад:
Міграція API проєктується в іншому сеансі. У майбутніх ходах не слідредагувати реалізацію API з цієї гілки обговорення; використовуйте наведені тут висновки лише яквхідні дані для проєктування, доки не буде прийнято план міграції.Інший приклад:
Звіт із ненадійного джерела потребує перевірки перед просуванням. У майбутніх ходахйого слід розглядати лише як доказ; не зберігайте його як сталу пам'ять, докидовірений рецензент не підтвердить вміст.Це не обов'язкова схема для кожного запису пам'яті; прості факти можуть залишатися стислими. Використовуйте межі, чутливі до дій, коли втрата часу, повноважень, строку дії або контексту безпечної дії може призвести до того, що агент згодом учинить неправильно.
Використовуйте зобов'язання для виведених короткочасних подальших дій. Використовуйте заплановані завдання для точних нагадувань, перевірок за часом і повторюваної роботи. Пам'ять усе одно може підсумовувати сталий контекст навколо будь-якого з цих шляхів.
Виведені зобов'язання
Деякі майбутні подальші дії не є сталими фактами. Якщо згадується співбесіда
завтра, корисним записом пам'яті може бути «дізнатися, як минула співбесіда», а не «зберегти
це назавжди в MEMORY.md».
Зобов'язання — це необов'язкові короткочасні записи пам'яті про подальші дії для такого випадку. OpenClaw виводить їх у прихованому фоновому проході, обмежує тим самим агентом і каналом та доставляє належні контрольні повідомлення через Heartbeat. Явні нагадування й надалі використовують заплановані завдання.
Засоби роботи з пам'яттю
Агент має два засоби для роботи з пам'яттю:
memory_search— знаходить релевантні нотатки за допомогою семантичного пошуку, навіть якщо формулювання відрізняється від оригінального.memory_get— читає певний файл пам'яті або діапазон рядків.
Обидва засоби надаються активним плагіном пам'яті (типово: memory-core).
Пошук у пам'яті
Коли налаштовано постачальника вбудовувань, memory_search використовує гібридний пошук:
векторну подібність (семантичне значення) у поєднанні з пошуком за ключовими словами (точні
терміни, як-от ідентифікатори та символи коду). Це працює одразу після налаштування ключа API
для будь-якого підтримуваного постачальника.
Див. Пошук у пам'яті, щоб дізнатися, як працює пошук, про параметри налаштування та конфігурацію постачальника.
Серверні частини пам'яті
На основі SQLite. Одразу підтримує пошук за ключовими словами, векторну подібність і гібридний пошук. Без додаткових залежностей.
Локальна допоміжна служба з повторним ранжуванням, розширенням запитів і можливістю індексувати каталоги поза робочим простором.
Орієнтована на ШІ міжсеансова пам'ять із моделюванням користувача, семантичним пошуком і врахуванням кількох агентів. Встановлення плагіна.
Пам'ять на основі LanceDB із сумісними з OpenAI вбудовуваннями, автоматичним пригадуванням, автоматичним захопленням і підтримкою локальних вбудовувань Ollama. Встановлення плагіна.
Рівень вікі знань
Якщо потрібно, щоб стала пам'ять більше нагадувала підтримувану базу знань,
ніж необроблені нотатки, використовуйте вбудований плагін 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, щоб вимкнути це.
Щоб цей службовий хід виконувався на локальній моделі, задайте точне перевизначення, яке застосовується лише до ходу скидання пам'яті (він не успадковує ланцюжок резервних моделей активного сеансу):
{ "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.
openclaw memory rem-backfill --path ./memory --stage-short-termПрапорець --stage-short-term додає обґрунтованих сталих кандидатів до того самого
короткочасного сховища Dreaming, яке вже використовує звичайна глибока фаза; він не
просуває їх безпосередньо. Отже:
DREAMS.mdзалишається поверхнею перевірки для людини.- Короткочасне сховище залишається поверхнею ранжування для машини.
MEMORY.mdі надалі записується лише глибоким просуванням.
Щоб скасувати повторне опрацювання, не торкаючись звичайних записів щоденника чи нормального стану пригадування:
openclaw memory rem-backfill --rollbackopenclaw memory rem-backfill --rollback-short-termCLI
openclaw memory status # Перевірити стан індексу та постачальникаopenclaw memory search "query" # Шукати з командного рядкаopenclaw memory index --force # Перебудувати індексДодаткові матеріали
- Пошук у пам’яті: конвеєр пошуку, провайдери та налаштування.
- Вбудований рушій пам’яті: стандартний бекенд SQLite.
- Рушій пам’яті QMD: розширений локально-орієнтований супутній процес.
- Пам’ять Honcho: орієнтована на ШІ міжсеансна пам’ять.
- Пам’ять LanceDB: Plugin на базі LanceDB із сумісними з OpenAI векторними представленнями.
- Вікі пам’яті: скомпільоване сховище знань та інструменти, вбудовані у вікі.
- Dreaming: фонове перенесення з короткочасного пригадування до довготривалої пам’яті.
- Довідник із налаштування пам’яті: усі параметри конфігурації.
- Compaction: як ущільнення взаємодіє з пам’яттю.
- Активна пам’ять: пам’ять субагента для інтерактивних сеансів чату.