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, чтобы увидеть исходные и вставленные размеры, а также состояние обрезки.

Память, влияющая на действия

Большинство воспоминаний — это обычные заметки 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