Sessions and memory

Dreaming

Dreaming — це фонова система консолідації пам'яті в memory-core. Вона допомагає OpenClaw переносити сильні короткострокові сигнали в довготривалу пам'ять, зберігаючи процес пояснюваним і придатним для перегляду.

Що записує Dreaming

Dreaming зберігає два види результатів:

  • Машинний стан у memory/.dreams/ (сховище пригадування, фазові сигнали, контрольні точки приймання, блокування).
  • Людиночитний результат у DREAMS.md (або наявному dreams.md) і необов'язкових файлах фазових звітів у memory/dreaming/<phase>/YYYY-MM-DD.md.

Довготривале просування й надалі записує лише до MEMORY.md.

Модель фаз

Dreaming використовує три кооперативні фази:

Фаза Призначення Довготривалий запис
Light Сортує й готує нещодавній короткостроковий матеріал Ні
Deep Оцінює й просуває довготривалих кандидатів Так (MEMORY.md)
REM Осмислює теми й повторювані ідеї Ні

Ці фази є внутрішніми деталями реалізації, а не окремими налаштованими користувачем "режимами".

Light phase

Фаза Light приймає нещодавні щоденні сигнали пам'яті та сліди пригадування, усуває дублікати й готує рядки-кандидати.

  • Читає з короткострокового стану пригадування, нещодавніх щоденних файлів пам'яті та відредагованих стенограм сесій, коли вони доступні.
  • Записує керований блок ## Light Sleep, коли сховище включає вбудований результат.
  • Фіксує сигнали підсилення для подальшого глибокого ранжування.
  • Ніколи не записує до MEMORY.md.
Deep phase

Фаза Deep вирішує, що стає довготривалою пам'яттю.

  • Ранжує кандидатів за допомогою зваженого оцінювання та порогових фільтрів.
  • Вимагає проходження minScore, minRecallCount і minUniqueQueries.
  • Перед записом повторно завантажує фрагменти з актуальних щоденних файлів, тому застарілі або видалені фрагменти пропускаються.
  • Додає просунуті записи до MEMORY.md.
  • Записує підсумок ## Deep Sleep у DREAMS.md і за потреби записує memory/dreaming/deep/YYYY-MM-DD.md.
REM phase

Фаза REM витягує патерни та рефлексивні сигнали.

  • Створює підсумки тем і рефлексій з нещодавніх короткострокових слідів.
  • Записує керований блок ## REM Sleep, коли сховище включає вбудований результат.
  • Фіксує сигнали підсилення REM, які використовує глибоке ранжування.
  • Ніколи не записує до MEMORY.md.

Приймання стенограм сесій

Dreaming може приймати відредаговані стенограми сесій у корпус Dreaming. Коли стенограми доступні, вони подаються у фазу Light разом із щоденними сигналами пам'яті та слідами пригадування. Особистий і чутливий вміст редагується перед прийманням.

Щоденник снів

Dreaming також веде оповідний Щоденник снів у DREAMS.md. Після того як кожна фаза має достатньо матеріалу, memory-core запускає best-effort фоновий хід субагента й додає короткий запис щоденника. Він використовує стандартну модель середовища виконання, якщо не налаштовано dreaming.model. Якщо налаштована модель недоступна, Щоденник снів повторює спробу один раз зі стандартною моделлю сесії.

Також існує обґрунтований канал історичного дозаповнення для перегляду й відновлення:

Backfill commands
  • 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 видаляють ці підготовлені артефакти дозаповнення, не зачіпаючи звичайні записи щоденника або активне короткострокове пригадування.

Control UI надає той самий потік дозаповнення/скидання щоденника, щоб ви могли переглянути результати в сцені Dreams перед рішенням, чи заслуговують обґрунтовані кандидати на просування. Сцена також показує окремий обґрунтований канал, щоб ви могли бачити, які підготовлені короткострокові записи походять з історичного відтворення, які просунуті елементи були обґрунтовано керованими, і очищати лише обґрунтовані підготовлені записи, не зачіпаючи звичайний активний короткостроковий стан.

Сигнали глибокого ранжування

Глибоке ранжування використовує шість зважених базових сигналів плюс фазове підсилення:

Сигнал Вага Опис
Частота 0.24 Скільки короткострокових сигналів накопичив запис
Релевантність 0.30 Середня якість пошуку для запису
Різноманітність запитів 0.15 Окремі контексти запиту/дня, у яких він з'являвся
Давність 0.15 Оцінка свіжості з часовим спаданням
Консолідація 0.10 Сила повторення протягом кількох днів
Концептуальна насиченість 0.06 Щільність концептуальних тегів з фрагмента/шляху

Попадання фаз Light і REM додають невелике підсилення з часовим спаданням із memory/.dreams/phase-signals.json.

Планування

Коли ввімкнено, memory-core автоматично керує одним завданням Cron для повного проходу Dreaming. Кожен прохід виконує фази в порядку: light → REM → deep.

Прохід включає основний робочий простір середовища виконання та всі налаштовані робочі простори агентів, з усуненням дублікатів за шляхом, тому розгалуження робочих просторів субагентів не виключає DREAMS.md і стан пам'яті головного агента.

Типова поведінка періодичності:

Налаштування Типово
dreaming.frequency 0 3 * * *
dreaming.model стандартна модель

Швидкий старт

Enable dreaming

{
  "plugins": {
    "entries": {
      "memory-core": {
        "config": {
          "dreaming": {
            "enabled": true
          }
        }
      }
    }
  }
}

Custom sweep cadence

{
  "plugins": {
    "entries": {
      "memory-core": {
        "config": {
          "dreaming": {
            "enabled": true,
            "timezone": "America/Los_Angeles",
            "frequency": "0 */6 * * *"
          }
        }
      }
    }
  }
}

Slash-команда

/dreaming status
/dreaming on
/dreaming off
/dreaming help

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

Promotion preview / apply

openclaw memory promote
openclaw memory promote --apply
openclaw memory promote --limit 5
openclaw memory status --deep

Ручна команда memory promote типово використовує пороги фази Deep, якщо їх не перевизначено прапорцями CLI.

Explain promotion

Поясніть, чому конкретний кандидат був би або не був би просунутий:

openclaw memory promote-explain "router vlan"
openclaw memory promote-explain "router vlan" --json

REM harness preview

Попередньо перегляньте рефлексії REM, кандидатні істини та результат глибокого просування без запису будь-чого:

openclaw memory rem-harness
openclaw memory rem-harness --json

Основні типові значення

Усі налаштування розміщені в plugins.entries.memory-core.config.dreaming.

enabledboolean

Увімкнути або вимкнути прохід Dreaming.

frequencystring

Періодичність Cron для повного проходу Dreaming.

modelstring

Необов'язкове перевизначення моделі субагента для Щоденника снів. Використовуйте канонічне значення provider/model, коли також задаєте allowlist allowedModels для субагента.

Інтерфейс Dreams

Коли ввімкнено, вкладка Dreams у Gateway показує:

  • поточний стан увімкнення Dreaming
  • стан на рівні фаз і наявність керованого проходу
  • кількість короткострокових, обґрунтованих, сигнальних і просунутих сьогодні елементів
  • час наступного запланованого запуску
  • окремий обґрунтований канал сцени для підготовлених записів історичного відтворення
  • розгортаний читач Щоденника снів на основі doctor.memory.dreamDiary

Dreaming ніколи не запускається: стан показує blocked

Якщо openclaw memory status повідомляє Dreaming status: blocked, керований Cron існує, але Heartbeat стандартного агента не спрацьовує. Перевірте, що Heartbeat увімкнено для стандартного агента і що його ціль не none, а потім знову запустіть openclaw memory status --deep після наступного інтервалу Heartbeat.

Пов'язане