Skip to main content
Dreaming — это система фоновой консолидации памяти в memory-core. Она переносит устойчивые краткосрочные сигналы в долговременную память, сохраняя процесс объяснимым и доступным для проверки.
Dreaming работает только при явном включении и по умолчанию отключён.

Что записывает Dreaming

  • Состояние системы в memory/.dreams/ (хранилище припоминания, сигналы фаз, контрольные точки приёма данных, блокировки).
  • Доступные для чтения человеком данные в DREAMS.md (или существующий dreams.md) и необязательные файлы отчётов по фазам в memory/dreaming/<phase>/YYYY-MM-DD.md.
При переносе в долговременную память данные по-прежнему записываются только в MEMORY.md.

Модель фаз

За каждый проход Dreaming последовательно выполняет три совместно работающие фазы: лёгкую -> REM -> глубокую. Это внутренние фазы реализации, а не отдельные режимы, настраиваемые пользователем.
  • Считывает свежее состояние краткосрочного припоминания, ежедневные файлы памяти и отредактированные расшифровки сеансов, если они доступны.
  • Удаляет дублирующиеся сигналы и подготавливает строки-кандидаты.
  • Записывает управляемый блок ## Light Sleep, если хранилище предусматривает встроенный вывод.
  • Регистрирует сигналы подкрепления для последующего ранжирования в глубокой фазе.
  • Никогда не записывает данные в MEMORY.md.
  • Формирует сводки по темам и размышлениям на основе свежих краткосрочных следов.
  • Записывает управляемый блок ## REM Sleep, если хранилище предусматривает встроенный вывод.
  • Регистрирует сигналы подкрепления REM, используемые при ранжировании в глубокой фазе.
  • Никогда не записывает данные в MEMORY.md.
  • Ранжирует кандидатов с помощью взвешенной оценки и пороговых условий (все minScore, minRecallCount и minUniqueQueries должны быть выполнены).
  • Перед записью повторно загружает фрагменты из актуальных ежедневных файлов, поэтому устаревшие или удалённые фрагменты пропускаются.
  • Добавляет перенесённые записи в MEMORY.md.
  • Записывает сводку ## Deep Sleep в DREAMS.md и при необходимости в memory/dreaming/deep/YYYY-MM-DD.md.

Приём расшифровок сеансов

Dreaming может добавлять отредактированные расшифровки сеансов в свой корпус данных. Когда расшифровки доступны, они поступают в лёгкую фазу вместе с сигналами ежедневной памяти и следами припоминания. Перед приёмом персональные и конфиденциальные данные редактируются.

Дневник сновидений

Dreaming ведёт повествовательный дневник сновидений в DREAMS.md. После того как в каждой фазе накапливается достаточно материала, memory-core в фоновом режиме по мере возможности запускает ход субагента и добавляет краткую запись в дневник, используя модель среды выполнения по умолчанию, если не настроен dreaming.model. Если настроенная модель недоступна, дневник повторяет запуск один раз с моделью сеанса по умолчанию; ошибки доверия или списка разрешённых моделей не приводят к повторной попытке и остаются видимыми в журналах вместо незаметного перехода к универсальной записи дневника.
Дневник предназначен для чтения человеком в интерфейсе сновидений, а не для переноса данных. Артефакты дневника и отчётов исключены из переноса краткосрочной памяти; в MEMORY.md могут переноситься только фрагменты памяти, подкреплённые исходными данными.
Также предусмотрен контур обоснованного исторического заполнения для проверки и восстановления:
  • memory rem-harness --path ... --grounded показывает предварительный вариант обоснованных записей дневника, созданных из исторических заметок YYYY-MM-DD.md.
  • memory rem-backfill --path ... записывает обратимые обоснованные записи дневника в DREAMS.md.
  • memory rem-backfill --path ... --stage-short-term помещает обоснованные кандидаты для долговременной памяти в то же хранилище краткосрочных свидетельств, которое использует обычная глубокая фаза.
  • memory rem-backfill --rollback и --rollback-short-term удаляют эти подготовленные артефакты заполнения, не затрагивая обычные записи дневника и актуальное краткосрочное припоминание.
Control UI предоставляет тот же процесс заполнения и сброса дневника на вкладке памяти агента (страница агентов), чтобы можно было проверить результаты в сцене сновидений, прежде чем решать, заслуживают ли обоснованные кандидаты переноса. Отдельный обоснованный контур сцены показывает, какие подготовленные краткосрочные записи получены при историческом воспроизведении, какие перенесённые элементы были преимущественно обоснованными, а также позволяет удалить только подготовленные записи, относящиеся исключительно к обоснованным данным, не затрагивая актуальное состояние краткосрочной памяти.

Сигналы ранжирования глубокой фазы

Ранжирование глубокой фазы использует шесть взвешенных базовых сигналов и подкрепление фаз: Срабатывания в лёгкой фазе и фазе REM добавляют небольшое усиление с затуханием по времени из memory/.dreams/phase-signals.json. Результаты теневого испытания могут накладываться на базовую оценку как сигнал для проверки перед любой долговременной записью: полезное испытание даёт кандидату небольшое ограниченное усиление, нейтральное оставляет его отложенным, а вредное помечает его отклонённым для данного прохода оценки. Этот сигнал используется только в отчёте: он может изменить порядок кандидатов или метаданные проверки, но никогда сам по себе не записывает данные в MEMORY.md и не переносит кандидата.

Покрытие отчёта теневого испытания в QA

QA Lab включает сценарий, предназначенный только для отчётности и позволяющий исследовать, как будущее теневое испытание Dreaming могло бы проверять память-кандидат перед переносом: агент сравнивает базовый ответ с ответом, который может использовать память-кандидат, а затем записывает локальный отчёт с вердиктом, причиной и флагами риска. Это покрытие ограничено QA: оно проверяет, что артефакт отчёта остаётся отдельным от MEMORY.md и что агент никогда не заявляет о переносе кандидата. Оно не добавляет рабочее поведение теневого испытания и не изменяет механизм переноса глубокой фазы. Средство запуска теневых испытаний memory-core сохраняет тот же контракт только для отчётности в путях кода, которым требуется стабильный артефакт. Оно принимает кандидата, запрос испытания, базовый результат, результат с кандидатом, вердикт, причину, флаги риска и ссылки на свидетельства, а затем записывает отчёт с помощью promotion action: report-only. Полезные вердикты сопоставляются с рекомендацией promote, нейтральные — с defer, а вредные — с reject; ни один из них не записывает данные в MEMORY.md и не выполняет перенос глубокой фазы.

Планирование

Когда функция включена, memory-core автоматически управляет одним заданием Cron для полного прохода Dreaming, устраняя дублирование между основным рабочим пространством среды выполнения и всеми настроенными рабочими пространствами агентов, чтобы разветвление рабочих пространств субагентов не исключало DREAMS.md и состояние памяти основного агента.

Быстрый старт

Команда с косой чертой

/dreaming on и /dreaming off требуют статуса владельца для вызывающих сторон канала или operator.admin для клиентов Gateway. /dreaming status и /dreaming help доступны только для чтения.

Рабочий процесс CLI

При ручном memory promote по умолчанию используются пороговые значения глубокой фазы, если они не переопределены флагами CLI.

Основные значения по умолчанию

Все настройки находятся в plugins.entries.memory-core.config.dreaming.
boolean
по умолчанию:"false"
Включает или отключает проход Dreaming.
string
по умолчанию:"0 3 * * *"
Периодичность Cron для полного прохода Dreaming.
string
Необязательное переопределение модели субагента дневника сновидений. Используйте каноническое значение provider/model, если также задаётся список разрешённых моделей субагента allowedModels.
number
по умолчанию:"160"
Максимальное приблизительное количество токенов, сохраняемое из каждого фрагмента краткосрочного припоминания, перенесённого в MEMORY.md. Происхождение данных ранжирования остаётся видимым.
dreaming.model требует plugins.entries.memory-core.subagent.allowModelOverride: true. Чтобы ограничить его, также задайте plugins.entries.memory-core.subagent.allowedModels. Автоматическая повторная попытка выполняется только при ошибках недоступности модели; ошибки доверия или списка разрешённых моделей остаются видимыми в журналах вместо незаметного перехода к резервному варианту.
Большинство правил фаз, пороговых значений и особенностей работы хранилища относятся к внутренним деталям реализации. Полный список ключей приведён в справочнике по настройке памяти.

Интерфейс сновидений

Когда функция включена, вкладка сновидений в Gateway показывает:
  • текущее состояние включения Dreaming
  • состояние отдельных фаз и наличие управляемого прохода
  • количество краткосрочных, обоснованных и перенесённых сегодня элементов, а также сигналов
  • время следующего запланированного запуска
  • отдельный обоснованный контур сцены для подготовленных записей исторического воспроизведения
  • раскрываемое средство чтения дневника сновидений на основе doctor.memory.dreamDiary

Связанные материалы