memory-core. Она помогает OpenClaw переносить сильные краткосрочные сигналы в долговременную память, сохраняя процесс объяснимым и пригодным для проверки.
Dreaming включается явно и по умолчанию отключен.
Что записывает Dreaming
Dreaming хранит два вида выходных данных:- Машинное состояние в
memory/.dreams/(хранилище recall, фазовые сигналы, контрольные точки ingest, блокировки). - Человекочитаемые выходные данные в
DREAMS.md(или существующемdreams.md) и необязательных файлах отчетов фаз вmemory/dreaming/<phase>/YYYY-MM-DD.md.
MEMORY.md.
Фазовая модель
Dreaming использует три совместно работающие фазы:| Фаза | Назначение | Долговременная запись |
|---|---|---|
| Light | Сортировка и подготовка недавнего краткосрочного материала | Нет |
| Deep | Оценка и продвижение долговременных кандидатов | Да (MEMORY.md) |
| REM | Осмысление тем и повторяющихся идей | Нет |
Фаза Light
Фаза Light
Фаза Light загружает недавние ежедневные сигналы памяти и трассы recall, удаляет дубликаты и подготавливает строки-кандидаты.
- Читает из краткосрочного состояния recall, недавних ежедневных файлов памяти и отредактированных стенограмм сессий, когда они доступны.
- Записывает управляемый блок
## Light Sleep, когда хранилище включает встроенный вывод. - Регистрирует сигналы усиления для последующего глубокого ранжирования.
- Никогда не записывает в
MEMORY.md.
Фаза Deep
Фаза Deep
Фаза Deep решает, что станет долгосрочной памятью.
- Ранжирует кандидатов с помощью взвешенной оценки и пороговых фильтров.
- Требует прохождения
minScore,minRecallCountиminUniqueQueries. - Перед записью повторно гидратирует фрагменты из актуальных ежедневных файлов, поэтому устаревшие или удаленные фрагменты пропускаются.
- Добавляет продвинутые записи в
MEMORY.md. - Записывает сводку
## Deep SleepвDREAMS.mdи при необходимости записываетmemory/dreaming/deep/YYYY-MM-DD.md.
Фаза REM
Фаза REM
Фаза REM извлекает паттерны и рефлексивные сигналы.
- Формирует сводки тем и рефлексий из недавних краткосрочных трасс.
- Записывает управляемый блок
## REM Sleep, когда хранилище включает встроенный вывод. - Регистрирует сигналы усиления REM, используемые глубоким ранжированием.
- Никогда не записывает в
MEMORY.md.
Ingest стенограмм сессий
Dreaming может загружать отредактированные стенограммы сессий в корпус Dreaming. Когда стенограммы доступны, они передаются в фазу Light вместе с ежедневными сигналами памяти и трассами recall. Личный и чувствительный контент редактируется перед ingest.Дневник сновидений
Dreaming также ведет повествовательный Дневник сновидений вDREAMS.md. После того как каждая фаза накапливает достаточно материала, memory-core запускает best-effort фоновый ход субагента и добавляет короткую запись в дневник. Используется модель среды выполнения по умолчанию, если не настроен dreaming.model. Если настроенная модель недоступна, Дневник сновидений один раз повторяет попытку с моделью сессии по умолчанию.
Этот дневник предназначен для чтения человеком в UI Dreams, а не как источник продвижения. Артефакты дневника и отчетов, созданные Dreaming, исключаются из краткосрочного продвижения. Только обоснованные фрагменты памяти могут быть продвинуты в
MEMORY.md.Команды backfill
Команды backfill
memory rem-harness --path ... --groundedпредварительно показывает основанный на фактах вывод дневника из исторических заметокYYYY-MM-DD.md.memory rem-backfill --path ...записывает обратимые основанные на фактах записи дневника вDREAMS.md.memory rem-backfill --path ... --stage-short-termподготавливает основанных на фактах долговременных кандидатов в том же краткосрочном хранилище свидетельств, которое уже использует обычная фаза Deep.memory rem-backfill --rollbackи--rollback-short-termудаляют эти подготовленные артефакты backfill, не затрагивая обычные записи дневника или актуальный краткосрочный recall.
Сигналы ранжирования Deep
Ранжирование Deep использует шесть взвешенных базовых сигналов плюс фазовое усиление:| Сигнал | Вес | Описание |
|---|---|---|
| Частота | 0.24 | Сколько краткосрочных сигналов накопила запись |
| Релевантность | 0.30 | Среднее качество извлечения для записи |
| Разнообразие запросов | 0.15 | Различные контексты запросов/дней, в которых она проявлялась |
| Недавность | 0.15 | Оценка свежести с временным затуханием |
| Консолидация | 0.10 | Сила повторяемости в течение нескольких дней |
| Концептуальная насыщенность | 0.06 | Плотность концепт-тегов из фрагмента/пути |
memory/.dreams/phase-signals.json.
Результаты shadow trial могут накладываться поверх этой базовой оценки как сигнал проверки перед любой долговременной записью. Полезный trial дает кандидату небольшой ограниченный буст, нейтральный trial оставляет его отложенным, а вредный trial помечает его как отклоненный для этого прохода оценки. Этот сигнал по-прежнему предназначен только для отчетности: он может изменить порядок кандидатов или метаданные проверки, но сам по себе не записывает в MEMORY.md и не продвигает кандидата.
Покрытие отчетов QA shadow trial
QA Lab включает сценарий только для отчетности, предназначенный для изучения того, как будущий shadow trial Dreaming мог бы проверять кандидат памяти перед продвижением. Сценарий просит агента сравнить базовый ответ с ответом, который может использовать кандидат памяти, а затем записать локальный отчет с вердиктом, причиной и флагами риска. Это покрытие намеренно ограничено QA. Оно проверяет, что артефакт отчета остается отдельно отMEMORY.md и что агент не утверждает, будто кандидат был продвинут. Оно не добавляет production-поведение shadow trial и не меняет движок продвижения фазы Deep.
Runner shadow-trial в memory-core сохраняет тот же контракт только для отчетности для путей кода, которым нужен стабильный артефакт. Он принимает кандидата, prompt trial, базовый результат, результат кандидата, вердикт, причину, флаги риска и ссылки на свидетельства, затем записывает отчет с promotion action: report-only. Полезные вердикты сопоставляются с рекомендацией promote, нейтральные вердикты — с defer, а вредные — с reject; ни одна из этих рекомендаций не записывает в MEMORY.md и не применяет продвижение фазы Deep.
Планирование
Когда включено,memory-core автоматически управляет одной задачей cron для полного прохода Dreaming. Каждый проход выполняет фазы по порядку: light → REM → deep.
Проход включает основное рабочее пространство среды выполнения и любые настроенные рабочие пространства агентов, с удалением дубликатов по пути, поэтому fan-out рабочих пространств субагентов не исключает DREAMS.md и состояние памяти основного агента.
Поведение периодичности по умолчанию:
| Настройка | По умолчанию |
|---|---|
dreaming.frequency | 0 3 * * * |
dreaming.model | модель по умолчанию |
Быстрый старт
- Включить Dreaming
- Пользовательская периодичность прохода
Slash-команда
Рабочий процесс CLI
- Предпросмотр / применение продвижения
- Объяснить продвижение
- Предпросмотр harness REM
memory promote по умолчанию использует пороги фазы Deep, если они не переопределены флагами CLI.Ключевые значения по умолчанию
Все настройки находятся вplugins.entries.memory-core.config.dreaming.
Включить или отключить проход Dreaming.
Периодичность Cron для полного прохода Dreaming.
Необязательное переопределение модели субагента для Дневника сновидений. Используйте каноническое значение
provider/model, если также задаете allowlist allowedModels для субагента.Максимальное оценочное количество токенов, сохраняемое из каждого краткосрочного фрагмента recall, продвинутого в
MEMORY.md. Происхождение ранжирования остается видимым.Большинство политик фаз, порогов и поведения хранилища являются внутренними деталями реализации. Полный список ключей см. в справочнике конфигурации памяти.
UI Dreams
Когда включено, вкладка Dreams в Gateway показывает:- текущее состояние включения Dreaming
- статус на уровне фаз и наличие управляемого прохода
- счетчики краткосрочных, grounded, signal и продвинутых сегодня элементов
- время следующего запланированного запуска
- отдельную основанную на фактах линию Scene для подготовленных записей исторического replay
- раскрываемый читатель Дневника сновидений на базе
doctor.memory.dreamDiary
Dreaming никогда не запускается: статус показывает blocked
Еслиopenclaw memory status сообщает Dreaming status: blocked, управляемая задача cron существует, но heartbeat агента по умолчанию не срабатывает. Проверьте, что heartbeat включен для агента по умолчанию и что его target не равен none, затем снова выполните openclaw memory status --deep после следующего интервала heartbeat.