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: плагин на базе LanceDB с OpenAI-совместимыми эмбеддингами.
- Вики памяти: скомпилированное хранилище знаний и инструменты, изначально предназначенные для вики.
- Dreaming: фоновый перенос данных из краткосрочного припоминания в долговременную память.
- Справочник по настройке памяти: все параметры конфигурации.
- Compaction: как Compaction взаимодействует с памятью.
- Active Memory: память субагента для интерактивных сеансов чата.