Sessions and memory

Dreaming

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

Що записує Dreaming

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

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

Модель фаз

Dreaming виконує три узгоджені фази за один цикл у такому порядку: легка -> REM -> глибока. Це внутрішні фази реалізації, а не окремі режими, які налаштовує користувач.

Фаза Призначення Довготривалий запис
Легка Сортування й підготовка недавнього короткострокового матеріалу Ні
REM Осмислення тем та повторюваних ідей Ні
Глибока Оцінювання та підвищення рівня довготривалих кандидатів Так (MEMORY.md)
Легка фаза
  • Зчитує недавній стан короткострокового відтворення, щоденні файли пам’яті та редаговані стенограми сеансів, якщо вони доступні.
  • Усуває дублікати сигналів і готує рядки-кандидати.
  • Записує керований блок ## Light Sleep, коли сховище передбачає вбудоване виведення.
  • Записує сигнали підсилення для подальшого глибокого ранжування.
  • Ніколи не записує до MEMORY.md.
Фаза REM
  • Створює підсумки тем і міркувань на основі недавніх короткострокових слідів.
  • Записує керований блок ## 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 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 надає той самий процес дозаповнення та скидання щоденника на вкладці пам’яті агента (сторінка агентів), щоб можна було переглянути результати у сцені сновидіння, перш ніж вирішувати, чи заслуговують обґрунтовані кандидати на підвищення рівня. Окремий канал обґрунтованої сцени показує, які підготовлені короткострокові записи надійшли з історичного відтворення, які підвищені елементи були створені переважно на основі обґрунтованих даних, і дає змогу очистити лише підготовлені записи, що походять виключно з обґрунтованих даних, не змінюючи актуальний короткостроковий стан.

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

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

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

Збіги легкої фази та фази 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.frequency 0 3 * * *
dreaming.model початкова модель

Швидкий початок

Увімкнення Dreaming

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

Власна періодичність циклу

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

Команда з косою рискою

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

/dreaming on і /dreaming off вимагають статусу власника для викликів із каналів або operator.admin для клієнтів Gateway. /dreaming status і /dreaming help доступні лише для читання.

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

Попередній перегляд і застосування підвищення

bash
openclaw memory promoteopenclaw memory promote --applyopenclaw memory promote --limit 5openclaw memory status --deep

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

Пояснення підвищення

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

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

Попередній перегляд у засобі тестування REM

Попередній перегляд міркувань REM, істин-кандидатів і результатів глибокого підвищення без записування даних:

bash
openclaw memory rem-harnessopenclaw memory rem-harness --json

Ключові початкові значення

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

enabledbooleandefault: false

Увімкнення або вимкнення циклу Dreaming.

frequencystringdefault: 0 3 * * *

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

modelstring

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

phases.deep.maxPromotedSnippetTokensnumberdefault: 160

Максимальна приблизна кількість токенів, збережених із кожного фрагмента короткострокового відтворення, підвищеного до MEMORY.md. Походження ранжування залишається видимим.

Інтерфейс сновидінь

Коли функцію ввімкнено, вкладка Сновидіння в Gateway показує:

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

Пов’язані матеріали

Was this useful?
On this page

On this page