Przejdź do głównej treści

Dreaming

Dreaming to system konsolidacji pamięci działający w tle w memory-core. Pomaga OpenClaw przenosić silne sygnały z pamięci krótkotrwałej do trwałej pamięci, zachowując przy tym przejrzystość i możliwość przeglądu procesu. Dreaming jest opcjonalny i domyślnie wyłączony.

Co zapisuje Dreaming

Dreaming przechowuje dwa rodzaje danych wyjściowych:
  • Stan maszyny w memory/.dreams/ (magazyn recall, sygnały faz, punkty kontrolne ingestii, blokady).
  • Czytelne dla człowieka dane wyjściowe w DREAMS.md (lub istniejącym dreams.md) oraz opcjonalne pliki raportów faz w memory/dreaming/<phase>/YYYY-MM-DD.md.
Promowanie do pamięci długotrwałej nadal zapisuje dane wyłącznie do MEMORY.md.

Model faz

Dreaming używa trzech współpracujących faz:
FazaCelTrwały zapis
LightSortowanie i przygotowanie ostatnich materiałów z pamięci krótkotrwałejNie
DeepOcenianie i promowanie trwałych kandydatówTak (MEMORY.md)
REMRefleksja nad motywami i powtarzającymi się ideamiNie
Te fazy są wewnętrznymi szczegółami implementacji, a nie oddzielnymi konfigurowanymi przez użytkownika „trybami”.

Faza Light

Faza Light pobiera ostatnie sygnały z codziennej pamięci i ślady recall, usuwa duplikaty oraz przygotowuje wiersze kandydatów.
  • Odczytuje stan recall pamięci krótkotrwałej, ostatnie pliki codziennej pamięci oraz zredagowane transkrypty sesji, jeśli są dostępne.
  • Zapisuje zarządzany blok ## Light Sleep, gdy magazyn obejmuje dane wyjściowe inline.
  • Rejestruje sygnały wzmocnienia do późniejszego rankingu deep.
  • Nigdy nie zapisuje do MEMORY.md.

Faza Deep

Faza Deep decyduje o tym, co staje się pamięcią długotrwałą.
  • Nadaje kandydatom ranking przy użyciu ważonej punktacji i progów.
  • Wymaga spełnienia minScore, minRecallCount i minUniqueQueries.
  • Przed zapisem ponownie pobiera fragmenty z aktywnych plików dziennych, dzięki czemu nieaktualne/usunięte fragmenty są pomijane.
  • Dopisuje promowane wpisy do MEMORY.md.
  • Zapisuje podsumowanie ## Deep Sleep w DREAMS.md i opcjonalnie zapisuje memory/dreaming/deep/YYYY-MM-DD.md.

Faza REM

Faza REM wyodrębnia wzorce i sygnały refleksyjne.
  • Buduje podsumowania motywów i refleksji na podstawie ostatnich śladów pamięci krótkotrwałej.
  • Zapisuje zarządzany blok ## REM Sleep, gdy magazyn obejmuje dane wyjściowe inline.
  • Rejestruje sygnały wzmocnienia REM używane przez ranking deep.
  • Nigdy nie zapisuje do MEMORY.md.

Ingestia transkryptów sesji

Dreaming może pobierać zredagowane transkrypty sesji do korpusu Dreaming. Gdy transkrypty są dostępne, trafiają do fazy light wraz z sygnałami codziennej pamięci i śladami recall. Treści osobiste i wrażliwe są redagowane przed ingestą.

Dziennik snów

Dreaming prowadzi także narracyjny Dziennik snów w DREAMS.md. Gdy po każdej fazie zbierze się wystarczająco dużo materiału, memory-core uruchamia w tle, w trybie best-effort, turę subagenta (z użyciem domyślnego modelu runtime) i dopisuje krótki wpis do dziennika. Ten dziennik jest przeznaczony do czytania przez ludzi w interfejsie Dreams, a nie jako źródło promocji. Artefakty dziennika/raportów wygenerowane przez Dreaming są wykluczone z promocji pamięci krótkotrwałej. Do promowania do MEMORY.md kwalifikują się wyłącznie ugruntowane fragmenty pamięci. Istnieje także ugruntowana ścieżka historycznego backfillu do przeglądu i odzyskiwania danych:
  • memory rem-harness --path ... --grounded wyświetla podgląd ugruntowanych danych wyjściowych dziennika na podstawie historycznych notatek YYYY-MM-DD.md.
  • memory rem-backfill --path ... zapisuje odwracalne ugruntowane wpisy dziennika w DREAMS.md.
  • memory rem-backfill --path ... --stage-short-term przygotowuje ugruntowanych trwałych kandydatów w tym samym magazynie dowodów krótkoterminowych, którego używa już normalna faza deep.
  • memory rem-backfill --rollback i --rollback-short-term usuwają te przygotowane artefakty backfillu bez naruszania zwykłych wpisów dziennika ani aktywnego recall pamięci krótkotrwałej.
Interfejs Control udostępnia ten sam przepływ backfillu/resetowania dziennika, dzięki czemu możesz sprawdzić wyniki w scenie Dreams, zanim zdecydujesz, czy ugruntowani kandydaci zasługują na promocję. Scena pokazuje także osobną ugruntowaną ścieżkę, aby było widać, które przygotowane wpisy krótkoterminowe pochodzą z historycznego odtwarzania, które promowane elementy były prowadzone przez dane ugruntowane, oraz umożliwia wyczyszczenie wyłącznie ugruntowanych przygotowanych wpisów bez naruszania zwykłego aktywnego stanu pamięci krótkotrwałej.

Sygnały rankingu deep

Ranking deep używa sześciu ważonych sygnałów bazowych oraz wzmocnienia faz:
SygnałWagaOpis
Częstotliwość0.24Ile sygnałów pamięci krótkotrwałej zgromadził wpis
Trafność0.30Średnia jakość odzyskiwania dla wpisu
Różnorodność zapytań0.15Różne konteksty zapytań/dni, w których się pojawił
Aktualność0.15Punktacja świeżości z osłabieniem w czasie
Konsolidacja0.10Siła nawrotów w wielu dniach
Bogactwo koncepcyjne0.06Gęstość tagów pojęciowych na podstawie fragmentu/ścieżki
Trafienia faz Light i REM dodają niewielkie wzmocnienie z osłabieniem w czasie z memory/.dreams/phase-signals.json.

Harmonogram

Po włączeniu memory-core automatycznie zarządza jednym zadaniem Cron dla pełnego przebiegu Dreaming. Każdy przebieg uruchamia fazy po kolei: light -> REM -> deep. Domyślne zachowanie harmonogramu:
UstawienieDomyślna wartość
dreaming.frequency0 3 * * *

Szybki start

Włącz Dreaming:
{
  "plugins": {
    "entries": {
      "memory-core": {
        "config": {
          "dreaming": {
            "enabled": true
          }
        }
      }
    }
  }
}
Włącz Dreaming z własnym harmonogramem przebiegów:
{
  "plugins": {
    "entries": {
      "memory-core": {
        "config": {
          "dreaming": {
            "enabled": true,
            "timezone": "America/Los_Angeles",
            "frequency": "0 */6 * * *"
          }
        }
      }
    }
  }
}

Komenda slash

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

Przepływ pracy CLI

Użyj promocji CLI do podglądu lub ręcznego zastosowania:
openclaw memory promote
openclaw memory promote --apply
openclaw memory promote --limit 5
openclaw memory status --deep
Ręczne memory promote domyślnie używa progów fazy deep, chyba że zostaną nadpisane flagami CLI. Wyjaśnij, dlaczego konkretny kandydat zostałby lub nie zostałby promowany:
openclaw memory promote-explain "router vlan"
openclaw memory promote-explain "router vlan" --json
Wyświetl podgląd refleksji REM, prawd kandydatów i danych wyjściowych promocji deep bez zapisywania czegokolwiek:
openclaw memory rem-harness
openclaw memory rem-harness --json

Kluczowe wartości domyślne

Wszystkie ustawienia znajdują się w plugins.entries.memory-core.config.dreaming.
KluczDomyślna wartość
enabledfalse
frequency0 3 * * *
Zasady faz, progi i zachowanie magazynu są wewnętrznymi szczegółami implementacji (i nie stanowią konfiguracji dostępnej dla użytkownika). Pełną listę kluczy znajdziesz w Dokumentacji konfiguracji pamięci.

Interfejs Dreams

Po włączeniu karta Dreams w Gateway pokazuje:
  • bieżący stan włączenia Dreaming
  • status na poziomie faz oraz obecność zarządzanego przebiegu
  • liczbę wpisów krótkoterminowych, ugruntowanych, sygnałów i promowanych dzisiaj
  • czas do następnego zaplanowanego uruchomienia
  • osobną ugruntowaną ścieżkę sceny dla przygotowanych wpisów z historycznego odtwarzania
  • rozwijany czytnik Dziennika snów oparty na doctor.memory.dreamDiary

Powiązane