Перейти до основного вмісту

Dreaming (експериментально)

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

Три фази

Light

Фаза light dreaming упорядковує нещодавній безлад. Вона сканує нещодавні сліди пам’яті, дедуплікує їх за подібністю Жаккара, кластеризує пов’язані записи й підготовлює кандидатів пам’яті в щоденній нотатці (memory/YYYY-MM-DD.md). Light не записує нічого в MEMORY.md. Вона лише впорядковує й підготовлює. Умовно: «що із сьогоднішнього може мати значення пізніше?»

Deep

Фаза deep dreaming вирішує, що стане стійкою пам’яттю. Вона виконує справжню логіку просування: зважене оцінювання за шістьма сигналами, порогові перевірки, кількість згадувань, різноманіття унікальних запитів, згасання актуальності та фільтрацію за максимальним віком. Deep — це єдина фаза, якій дозволено записувати стійкі факти в MEMORY.md. Вона також відповідає за відновлення, коли пам’яті замало (стан здоров’я падає нижче налаштованого порога). Умовно: «що є достатньо правдивим, щоб це зберегти?»

REM

Фаза REM dreaming шукає патерни й рефлексію. Вона аналізує нещодавній матеріал, визначає повторювані теми через кластеризацію тегів концепцій і записує нотатки вищого порядку та роздуми в щоденну нотатку. REM записує в щоденну нотатку (memory/YYYY-MM-DD.md), а не в MEMORY.md. Її результат є інтерпретативним, а не канонічним. Умовно: «який патерн я помічаю?»

Жорсткі межі

ФазаЗавданняЗаписує вНЕ записує в
LightУпорядкуванняЩоденна нотатка (YYYY-MM-DD.md)MEMORY.md
DeepЗбереженняMEMORY.md
REMІнтерпретаціяЩоденна нотатка (YYYY-MM-DD.md)MEMORY.md

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

Увімкнути всі три фази (рекомендовано):
{
  "plugins": {
    "entries": {
      "memory-core": {
        "config": {
          "dreaming": {
            "enabled": true
          }
        }
      }
    }
  }
}
Увімкнути лише просування deep:
{
  "plugins": {
    "entries": {
      "memory-core": {
        "config": {
          "dreaming": {
            "enabled": true,
            "phases": {
              "light": { "enabled": false },
              "deep": { "enabled": true },
              "rem": { "enabled": false }
            }
          }
        }
      }
    }
  }
}

Конфігурація

Усі налаштування dreaming розташовані в plugins.entries.memory-core.config.dreaming у openclaw.json. Повний список ключів див. у Довіднику конфігурації пам’яті.

Глобальні налаштування

КлючТипТипове значенняОпис
enabledbooleantrueГоловний перемикач для всіх фаз
timezonestringне заданоЧасовий пояс для обчислення розкладу й щоденних нотаток
verboseLoggingbooleanfalseВиводити докладні журнали dreaming для кожного запуску
storage.modestring"inline"inline, separate або both

Конфігурація фази light

КлючТипТипове значенняОпис
enabledbooleantrueУвімкнути фазу light
cronstring0 */6 * * *Розклад (типово: кожні 6 годин)
lookbackDaysnumber2Скільки днів слідів сканувати
limitnumber100Макс. кількість кандидатів для підготовки за запуск
dedupeSimilaritynumber0.9Поріг Жаккара для дедуплікації
sourcesstring[]["daily","sessions","recall"]Джерела даних для сканування

Конфігурація фази deep

КлючТипТипове значенняОпис
enabledbooleantrueУвімкнути фазу deep
cronstring0 3 * * *Розклад (типово: щодня о 3:00)
limitnumber10Макс. кількість кандидатів для просування за цикл
minScorenumber0.8Мінімальна зважена оцінка для просування
minRecallCountnumber3Мінімальний поріг кількості згадувань
minUniqueQueriesnumber3Мінімальна кількість різних запитів
recencyHalfLifeDaysnumber14Кількість днів, за яку оцінка актуальності зменшується вдвічі
maxAgeDaysnumber30Максимальний вік щоденної нотатки для просування
sourcesstring[]["daily","memory","sessions","logs","recall"]Джерела даних

Конфігурація відновлення deep

Відновлення вмикається, коли стан довготривалої пам’яті падає нижче порога.
КлючТипТипове значенняОпис
recovery.enabledbooleantrueУвімкнути автоматичне відновлення
recovery.triggerBelowHealthnumber0.35Поріг оцінки здоров’я для запуску відновлення
recovery.lookbackDaysnumber30Як далеко назад шукати матеріал для відновлення
recovery.maxRecoveredCandidatesnumber20Макс. кількість кандидатів для відновлення за запуск
recovery.minRecoveryConfidencenumber0.9Мінімальна впевненість для кандидатів на відновлення
recovery.autoWriteMinConfidencenumber0.97Поріг автозапису (без ручного перегляду)

Конфігурація фази REM

КлючТипТипове значенняОпис
enabledbooleantrueУвімкнути фазу REM
cronstring0 5 * * 0Розклад (типово: щотижня, неділя 5:00)
lookbackDaysnumber7Скільки днів матеріалу аналізувати
limitnumber10Макс. кількість патернів або тем для запису
minPatternStrengthnumber0.75Мінімальна сила співпояви тегів
sourcesstring[]["memory","daily","deep"]Джерела даних для рефлексії

Перевизначення виконання

Кожна фаза приймає блок execution для перевизначення глобальних типових значень:
КлючТипТипове значенняОпис
speedstring"balanced"fast, balanced або slow
thinkingstring"medium"low, medium або high
budgetstring"medium"cheap, medium, expensive
modelstringне заданоПеревизначити модель для цієї фази
maxOutputTokensnumberне заданоОбмеження вихідних токенів
temperaturenumberне заданоТемпература семплювання (0-2)
timeoutMsnumberне заданоТайм-аут фази в мілісекундах

Сигнали просування (фаза deep)

Фаза deep dreaming поєднує шість зважених сигналів. Просування вимагає, щоб усі налаштовані порогові перевірки одночасно пройшли.
СигналВагаОпис
Частота0.24Як часто той самий запис згадувався
Релевантність0.30Середні оцінки recall під час отримання
Різноманіття запитів0.15Кількість різних намірів запиту, у яких він з’являвся
Актуальність0.15Часове згасання (recencyHalfLifeDays, типово 14)
Консолідація0.10Винагорода за згадування, що повторюються впродовж кількох днів
Концептуальна насиченість0.06Винагорода за записи з багатшими похідними тегами концепцій

Команди чату

/dreaming status                 # Показати конфігурацію фаз і частоту запуску
/dreaming on                     # Увімкнути всі фази
/dreaming off                    # Вимкнути всі фази
/dreaming enable light|deep|rem  # Увімкнути конкретну фазу
/dreaming disable light|deep|rem # Вимкнути конкретну фазу
/dreaming help                   # Показати довідку з використання

Команди CLI

Попередній перегляд і застосування просувань deep з командного рядка:
# Preview promotion candidates
openclaw memory promote

# Apply promotions to MEMORY.md
openclaw memory promote --apply

# Limit preview count
openclaw memory promote --limit 5

# Include already-promoted entries
openclaw memory promote --include-promoted

# Check dreaming status
openclaw memory status --deep
Повний довідник прапорців див. у memory CLI.

Як це працює

Конвеєр фази light

  1. Прочитати записи короткострокового recall з memory/.dreams/short-term-recall.json.
  2. Відфільтрувати записи в межах lookbackDays від поточного часу.
  3. Виконати дедуплікацію за подібністю Жаккара (налаштовуваний поріг).
  4. Відсортувати за середньою оцінкою recall, узяти до limit записів.
  5. Записати підготовлених кандидатів до щоденної нотатки в блоці ## Light Sleep.

Конвеєр фази deep

  1. Прочитати й ранжувати кандидатів короткострокового recall за зваженими сигналами.
  2. Застосувати порогові перевірки: minScore, minRecallCount, minUniqueQueries.
  3. Відфільтрувати за maxAgeDays і застосувати згасання актуальності.
  4. Розгорнути обробку в налаштованих workspace пам’яті.
  5. Повторно прочитати актуальну щоденну нотатку перед записом (пропустити застарілі або видалені фрагменти).
  6. Додати записи, що відповідають умовам, до MEMORY.md із часовими позначками просування.
  7. Позначити просунуті записи, щоб виключити їх із майбутніх циклів.
  8. Якщо здоров’я нижче recovery.triggerBelowHealth, запустити етап відновлення.

Конвеєр фази REM

  1. Прочитати нещодавні сліди пам’яті в межах lookbackDays.
  2. Кластеризувати теги концепцій за співпоявою.
  3. Відфільтрувати патерни за minPatternStrength.
  4. Записати теми й роздуми до щоденної нотатки в блоці ## REM Sleep.

Планування

Кожна фаза автоматично керує власним cron-завданням. Коли dreaming увімкнено, memory-core узгоджує керовані cron-завдання під час запуску шлюзу. Вам не потрібно створювати записи cron вручну.
ФазаТиповий розкладОпис
Light0 */6 * * *Кожні 6 годин
Deep0 3 * * *Щодня о 3:00
REM0 5 * * 0Щотижня, неділя 5:00
Перевизначте будь-який розклад через ключ cron відповідної фази. Усі розклади враховують глобальне налаштування timezone.

Інтерфейс Dreams

Коли dreaming увімкнено, на бічній панелі Gateway відображається вкладка Dreams зі статистикою пам’яті (кількість короткострокових записів, довгострокових записів, просунутих записів) і часом наступного запланованого циклу. Щоденні лічильники враховують dreaming.timezone, якщо його задано, інакше використовується налаштований часовий пояс користувача. Ручні запуски openclaw memory promote типово використовують ті самі пороги фази deep, тому заплановане й запускане на вимогу просування залишаються узгодженими, якщо ви не передасте перевизначення CLI.

Пов’язане