Sessions and memory
Dreaming
Dreaming to działający w tle system konsolidacji pamięci w memory-core. Przenosi silne sygnały krótkoterminowe do trwałej pamięci, zachowując przejrzystość procesu i możliwość jego przeglądu.
Co zapisuje Dreaming
- Stan maszyny w
memory/.dreams/(magazyn przywołań, sygnały faz, punkty kontrolne pozyskiwania danych, blokady). - Dane wyjściowe czytelne dla człowieka w
DREAMS.md(lub istniejącymdreams.md) oraz opcjonalne pliki raportów faz wmemory/dreaming/<phase>/YYYY-MM-DD.md.
Długoterminowa promocja nadal zapisuje dane wyłącznie do MEMORY.md.
Model faz
Dreaming wykonuje podczas każdego przebiegu trzy współdziałające fazy w następującej kolejności: lekka -> REM -> głęboka. Są to wewnętrzne fazy implementacji, a nie osobne tryby konfigurowane przez użytkownika.
| Faza | Cel | Trwały zapis |
|---|---|---|
| Lekka | Sortowanie i przygotowanie najnowszych materiałów krótkoterminowych | Nie |
| REM | Refleksja nad motywami i powtarzającymi się ideami | Nie |
| Głęboka | Ocena i promocja kandydatów do trwałej pamięci | Tak (MEMORY.md) |
Faza lekka
- Odczytuje najnowszy stan krótkoterminowych przywołań, dzienne pliki pamięci oraz zredagowane transkrypcje sesji, jeśli są dostępne.
- Usuwa zduplikowane sygnały i przygotowuje wiersze kandydatów.
- Zapisuje zarządzany blok
## Light Sleep, gdy magazyn obejmuje dane wyjściowe wbudowane w treść. - Rejestruje sygnały wzmacniające na potrzeby późniejszego rankingu w fazie głębokiej.
- Nigdy nie zapisuje do
MEMORY.md.
Faza REM
- Tworzy podsumowania motywów i refleksji na podstawie najnowszych śladów krótkoterminowych.
- Zapisuje zarządzany blok
## REM Sleep, gdy magazyn obejmuje dane wyjściowe wbudowane w treść. - Rejestruje sygnały wzmacniające REM używane przez ranking w fazie głębokiej.
- Nigdy nie zapisuje do
MEMORY.md.
Faza głęboka
- Klasyfikuje kandydatów za pomocą ważonej oceny i progów (
minScore,minRecallCountorazminUniqueQueriesmuszą zostać spełnione). - Przed zapisem ponownie pobiera fragmenty z aktywnych plików dziennych, dzięki czemu pomija nieaktualne lub usunięte fragmenty.
- Dodaje promowane wpisy do
MEMORY.md. - Zapisuje podsumowanie
## Deep SleepwDREAMS.mdi opcjonalnie wmemory/dreaming/deep/YYYY-MM-DD.md.
Pozyskiwanie transkrypcji sesji
Dreaming może pozyskiwać zredagowane transkrypcje sesji do korpusu Dreaming. Gdy są dostępne, transkrypcje zasilają fazę lekką wraz z dziennymi sygnałami pamięci i śladami przywołań. Treści osobiste i wrażliwe są redagowane przed pozyskaniem.
Dziennik snów
Dreaming prowadzi narracyjny Dziennik snów w DREAMS.md. Gdy każda faza zgromadzi wystarczającą ilość materiału, memory-core uruchamia w tle, w miarę możliwości, turę subagenta i dodaje krótki wpis do dziennika, korzystając z domyślnego modelu środowiska uruchomieniowego, chyba że skonfigurowano dreaming.model. Jeśli skonfigurowany model jest niedostępny, uruchomienie dziennika jest ponawiane raz z domyślnym modelem sesji; błędy zaufania lub listy dozwolonych elementów nie są ponawiane i pozostają widoczne w dziennikach zamiast powodować ciche przełączenie na ogólny wpis dziennika.
Dostępny jest również oparty na źródłach proces historycznego uzupełniania danych na potrzeby przeglądu i odzyskiwania:
Polecenia uzupełniania danych
memory rem-harness --path ... --groundedwyświetla podgląd opartych na źródłach danych wyjściowych dziennika z historycznych notatekYYYY-MM-DD.md.memory rem-backfill --path ...zapisuje odwracalne, oparte na źródłach wpisy dziennika wDREAMS.md.memory rem-backfill --path ... --stage-short-termprzygotowuje opartych na źródłach kandydatów do trwałej pamięci w tym samym magazynie krótkoterminowych dowodów, którego używa zwykła faza głęboka.memory rem-backfill --rollbackoraz--rollback-short-termusuwają przygotowane artefakty uzupełniania danych bez modyfikowania zwykłych wpisów dziennika ani aktywnych krótkoterminowych przywołań.
Interfejs sterowania udostępnia ten sam proces uzupełniania i resetowania dziennika na karcie Pamięć agenta (strona Agenci), co pozwala sprawdzić wyniki w scenie snu przed podjęciem decyzji, czy kandydaci opierający się na źródłach zasługują na promocję. Osobna, oparta na źródłach ścieżka Sceny pokazuje, które przygotowane wpisy krótkoterminowe pochodzą z odtwarzania danych historycznych i które promowane elementy zostały wybrane przede wszystkim na podstawie źródeł, oraz umożliwia usunięcie wyłącznie przygotowanych wpisów opartych tylko na źródłach bez modyfikowania aktywnego stanu krótkoterminowego.
Sygnały rankingu głębokiego
Ranking głęboki wykorzystuje sześć ważonych sygnałów bazowych oraz wzmocnienie faz:
| Sygnał | Waga | Opis |
|---|---|---|
| Trafność | 0.30 | Średnia jakość wyszukiwania wpisu |
| Częstotliwość | 0.24 | Liczba krótkoterminowych sygnałów zgromadzonych przez wpis |
| Różnorodność zapytań | 0.15 | Odrębne konteksty zapytań lub dni, w których się pojawił |
| Aktualność | 0.15 | Wynik aktualności malejący wraz z upływem czasu |
| Konsolidacja | 0.10 | Siła powtarzalności w wielu dniach |
| Bogactwo pojęciowe | 0.06 | Zagęszczenie znaczników pojęć we fragmencie lub ścieżce |
Trafienia w fazach lekkiej i REM dodają niewielkie wzmocnienie z memory/.dreams/phase-signals.json, malejące wraz z upływem czasu.
Wyniki prób w tle mogą zostać nałożone na wynik bazowy jako sygnał do przeglądu przed wykonaniem jakiegokolwiek trwałego zapisu: pomocna próba zapewnia kandydatowi niewielkie, ograniczone wzmocnienie, neutralna próba pozostawia go odroczonym, a szkodliwa próba oznacza go jako odrzuconego w danym przebiegu oceny. Ten sygnał jest używany wyłącznie w raportach — może zmieniać kolejność kandydatów lub metadane przeglądu, ale nigdy nie zapisuje do MEMORY.md ani samodzielnie nie promuje kandydata.
Zakres raportów prób w tle w QA
QA Lab zawiera scenariusz służący wyłącznie do raportowania, który pozwala zbadać, jak przyszła próba Dreaming w tle mogłaby ocenić kandydata pamięci przed promocją: agent porównuje odpowiedź bazową z odpowiedzią mogącą korzystać z pamięci kandydata, a następnie zapisuje lokalny raport zawierający werdykt, uzasadnienie i flagi ryzyka. Ten zakres jest ograniczony do QA — sprawdza, czy artefakt raportu pozostaje oddzielony od MEMORY.md oraz czy agent nigdy nie twierdzi, że kandydat został promowany. Nie dodaje produkcyjnego działania prób w tle ani nie zmienia mechanizmu promocji fazy głębokiej.
Program uruchamiający próby w tle memory-core zachowuje tę samą umowę wyłącznie raportową dla ścieżek kodu wymagających stabilnego artefaktu. Przyjmuje kandydata, prompt próby, wynik bazowy, wynik kandydata, werdykt, uzasadnienie, flagi ryzyka i odwołania do dowodów, a następnie zapisuje raport za pomocą promotion action: report-only. Pomocne werdykty są mapowane na rekomendację promote, neutralne werdykty na defer, a szkodliwe werdykty na reject — żadna z tych operacji nie zapisuje do MEMORY.md ani nie stosuje promocji fazy głębokiej.
Harmonogram
Po włączeniu memory-core automatycznie zarządza jednym zadaniem Cron dla pełnego przebiegu Dreaming, usuwając duplikaty między głównym obszarem roboczym środowiska uruchomieniowego a wszystkimi skonfigurowanymi obszarami roboczymi agentów, aby rozdzielanie obszarów roboczych subagentów nie wykluczało DREAMS.md ani stanu pamięci głównego agenta.
| Ustawienie | Wartość domyślna |
|---|---|
dreaming.frequency |
0 3 * * * |
dreaming.model |
model domyślny |
Szybki start
Włącz Dreaming
{ "plugins": { "entries": { "memory-core": { "config": { "dreaming": { "enabled": true } } } } }}Niestandardowa częstotliwość przebiegów
{ "plugins": { "entries": { "memory-core": { "config": { "dreaming": { "enabled": true, "timezone": "America/Los_Angeles", "frequency": "0 */6 * * *" } } } } }}Polecenie z ukośnikiem
/dreaming status/dreaming on/dreaming off/dreaming help/dreaming on oraz /dreaming off wymagają statusu właściciela w przypadku wywołań z kanału lub operator.admin w przypadku klientów Gateway. /dreaming status oraz /dreaming help są tylko do odczytu.
Przepływ pracy CLI
Podgląd lub zastosowanie promocji
openclaw memory promoteopenclaw memory promote --applyopenclaw memory promote --limit 5openclaw memory status --deepRęczne memory promote domyślnie używa progów fazy głębokiej, chyba że zostaną one zastąpione flagami CLI.
Wyjaśnienie promocji
Wyjaśnia, dlaczego określony kandydat zostałby lub nie zostałby promowany:
openclaw memory promote-explain "router vlan"openclaw memory promote-explain "router vlan" --jsonPodgląd środowiska testowego REM
Wyświetla podgląd refleksji REM, prawd kandydatów i wyników głębokiej promocji bez zapisywania czegokolwiek:
openclaw memory rem-harnessopenclaw memory rem-harness --jsonNajważniejsze wartości domyślne
Wszystkie ustawienia znajdują się w plugins.entries.memory-core.config.dreaming.
enabledbooleandefault: falseWłącza lub wyłącza przebieg Dreaming.
frequencystringdefault: 0 3 * * *Częstotliwość Cron pełnego przebiegu Dreaming.
modelstringOpcjonalne zastąpienie modelu subagenta Dziennika snów. Przy jednoczesnym ustawianiu listy dozwolonych elementów subagenta allowedModels należy użyć kanonicznej wartości provider/model.
phases.deep.maxPromotedSnippetTokensnumberdefault: 160Maksymalna szacowana liczba tokenów zachowywana z każdego fragmentu krótkoterminowego przywołania promowanego do MEMORY.md. Pochodzenie rankingu pozostaje widoczne.
Interfejs snów
Po włączeniu karta Sny w Gateway pokazuje:
- bieżący stan włączenia Dreaming
- stan poszczególnych faz i obecność zarządzanego przebiegu
- liczbę elementów krótkoterminowych, opartych na źródłach, sygnałów i promowanych dzisiaj
- czas następnego zaplanowanego uruchomienia
- osobną, opartą na źródłach ścieżkę Sceny dla przygotowanych wpisów odtwarzania historycznego
- rozwijany czytnik Dziennika snów oparty na
doctor.memory.dreamDiary