Sessions and memory

Przegląd pamięci

OpenClaw zapamiętuje rzeczy, zapisując zwykłe pliki Markdown w przestrzeni roboczej Twojego agenta. Model „pamięta” tylko to, co zostanie zapisane na dysku — nie ma ukrytego stanu.

Jak to działa

Twój agent ma trzy pliki związane z pamięcią:

  • MEMORY.md — pamięć długoterminowa. Trwałe fakty, preferencje i decyzje. Ładowana na początku każdej sesji DM.
  • memory/YYYY-MM-DD.md (lub memory/YYYY-MM-DD-<slug>.md) — notatki dzienne. Bieżący kontekst i obserwacje. Notatki z dzisiaj i wczoraj są ładowane automatycznie, a warianty ze slugiem, takie jak te zapisane przez dołączony hook pamięci sesji przy /new lub /reset, są teraz pobierane razem z plikiem zawierającym samą datę.
  • DREAMS.md (opcjonalnie) — dziennik Dreaming i podsumowania przebiegów Dreaming do przeglądu przez człowieka, w tym ugruntowane historyczne wpisy uzupełniające.

Te pliki znajdują się w przestrzeni roboczej agenta (domyślnie ~/.openclaw/workspace).

Co gdzie trafia

MEMORY.md to kompaktowa, opracowana warstwa. Używaj go do trwałych faktów, preferencji, stałych decyzji i krótkich podsumowań, które powinny być dostępne na początku głównej sesji prywatnej. Nie jest przeznaczony jako surowy transkrypt, dziennik dzienny ani pełne archiwum.

Pliki memory/YYYY-MM-DD.md są warstwą roboczą. Używaj ich do szczegółowych notatek dziennych, obserwacji, podsumowań sesji i surowego kontekstu, który może przydać się później. Te pliki są indeksowane dla memory_search i memory_get, ale nie są wstrzykiwane do zwykłego promptu startowego przy każdej turze.

Z czasem agent powinien destylować przydatny materiał z notatek dziennych do MEMORY.md i usuwać nieaktualne wpisy długoterminowe. Wygenerowane instrukcje przestrzeni roboczej i przepływ Heartbeat mogą robić to okresowo; nie musisz ręcznie edytować MEMORY.md dla każdego zapamiętanego szczegółu.

Jeśli MEMORY.md przekroczy budżet pliku startowego, OpenClaw zachowuje plik na dysku w całości, ale obcina kopię wstrzykiwaną do kontekstu modelu. Traktuj to jako sygnał, aby przenieść szczegółowy materiał z powrotem do memory/*.md, zostawić tylko trwałe podsumowanie w MEMORY.md albo podnieść limity startowe, jeśli wyraźnie chcesz przeznaczyć większy budżet promptu. Użyj /context list, /context detail lub openclaw doctor, aby zobaczyć rozmiary surowe i wstrzyknięte oraz status obcięcia.

Pamięci wrażliwe na działanie

Większość wspomnień można zapisywać jako zwykłe notatki Markdown. Niektóre wspomnienia wpływają jednak na to, co agent powinien zrobić później. W takich przypadkach uchwyć, kiedy można bezpiecznie zadziałać na podstawie notatki, a nie tylko sam fakt.

Uchwyć tę granicę działania, gdy notatka obejmuje:

  • wymagania dotyczące zatwierdzenia lub uprawnień,
  • tymczasowe ograniczenia,
  • przekazania do innej sesji, wątku lub osoby,
  • warunki wygaśnięcia,
  • moment, od którego działanie jest bezpieczne,
  • autorytet źródła lub właściciela,
  • instrukcje, aby uniknąć kuszącego działania.

Przydatna pamięć wrażliwa na działanie jasno określa:

  • co zmienia przyszłe zachowanie,
  • kiedy lub pod jakim warunkiem ma zastosowanie,
  • kiedy wygasa albo co odblokowuje działanie,
  • czego agent powinien unikać,
  • kto jest źródłem lub właścicielem, jeśli wpływa to na zaufanie lub autorytet.

Pamięć może zachować kontekst zatwierdzeń, ale nie egzekwuje polityki. Do twardych kontroli operacyjnych używaj ustawień zatwierdzania OpenClaw, piaskownicy i zadań zaplanowanych.

Przykład:

md
The API migration is being designed in another session. Future turns should not edit the API implementation from this thread; use findings here only as design input until the migration plan lands.

Inny przykład:

md
A report from an untrusted source needs review before promotion. Future turns should treat it as evidence only; do not store it as durable memory until a trusted reviewer confirms the contents.

Używaj zobowiązań do wywnioskowanych, krótkotrwałych działań następczych. Używaj zadań zaplanowanych do dokładnych przypomnień, kontroli czasowych i pracy cyklicznej. Pamięć nadal może podsumowywać trwały kontekst wokół obu ścieżek.

Nie jest to wymagany schemat dla każdej pamięci. Proste fakty mogą pozostać zwięzłe. Używaj granic wrażliwych na działanie wtedy, gdy utrata kontekstu czasu, autorytetu, wygaśnięcia lub bezpieczeństwa działania mogłaby później spowodować błędne działanie agenta.

Wywnioskowane zobowiązania

Niektóre przyszłe działania następcze nie są trwałymi faktami. Jeśli wspomnisz o rozmowie jutro, przydatną pamięcią może być „sprawdź po rozmowie”, a nie „zapisz to na zawsze w MEMORY.md”.

Zobowiązania to opcjonalne, krótkotrwałe pamięci działań następczych dla takiego przypadku. OpenClaw wywnioskowuje je w ukrytym przebiegu w tle, ogranicza je do tego samego agenta i kanału oraz dostarcza należne sprawdzenia przez Heartbeat. Jawne przypomnienia nadal używają zadań zaplanowanych.

Narzędzia pamięci

Agent ma dwa narzędzia do pracy z pamięcią:

  • memory_search — znajduje istotne notatki za pomocą wyszukiwania semantycznego, nawet gdy sformułowanie różni się od oryginału.
  • memory_get — odczytuje konkretny plik pamięci lub zakres wierszy.

Oba narzędzia są dostarczane przez aktywny plugin pamięci (domyślnie: memory-core).

Plugin towarzyszący Memory Wiki

Jeśli chcesz, aby trwała pamięć zachowywała się bardziej jak utrzymywana baza wiedzy niż tylko surowe notatki, użyj dołączonego pluginu memory-wiki.

memory-wiki kompiluje trwałą wiedzę do skarbca wiki z:

  • deterministyczną strukturą stron
  • ustrukturyzowanymi twierdzeniami i dowodami
  • śledzeniem sprzeczności i świeżości
  • generowanymi panelami
  • skompilowanymi streszczeniami dla odbiorców agenta/środowiska wykonawczego
  • natywnymi narzędziami wiki, takimi jak wiki_search, wiki_get, wiki_apply i wiki_lint

Nie zastępuje aktywnego pluginu pamięci. Aktywny plugin pamięci nadal odpowiada za przypominanie, promowanie i Dreaming. memory-wiki dodaje obok niego warstwę wiedzy bogatą w pochodzenie informacji.

Zobacz Memory Wiki.

Wyszukiwanie w pamięci

Gdy skonfigurowany jest dostawca embeddingów, memory_search używa wyszukiwania hybrydowego — łącząc podobieństwo wektorowe (znaczenie semantyczne) z dopasowaniem słów kluczowych (dokładne terminy, takie jak identyfikatory i symbole kodu). Działa to od razu, gdy masz klucz API dla dowolnego obsługiwanego dostawcy.

Szczegóły działania wyszukiwania, opcje dostrajania i konfigurację dostawcy znajdziesz w Wyszukiwanie w pamięci.

Backendy pamięci

Warstwa wiki wiedzy

Automatyczne zrzucanie pamięci

Zanim Compaction podsumuje Twoją rozmowę, OpenClaw uruchamia cichą turę, która przypomina agentowi o zapisaniu ważnego kontekstu do plików pamięci. Jest to domyślnie włączone — nie musisz niczego konfigurować.

Aby zachować tę turę porządkową na modelu lokalnym, ustaw dokładne nadpisanie modelu zrzutu pamięci:

json
{  "agents": {    "defaults": {      "compaction": {        "memoryFlush": {          "model": "ollama/qwen3:8b"        }      }    }  }}

Nadpisanie dotyczy tylko tury zrzutu pamięci i nie dziedziczy łańcucha fallbacków aktywnej sesji.

Dreaming

Dreaming to opcjonalny przebieg konsolidacji pamięci w tle. Zbiera sygnały krótkoterminowe, ocenia kandydatów i promuje tylko kwalifikujące się elementy do pamięci długoterminowej (MEMORY.md).

Został zaprojektowany tak, aby pamięć długoterminowa miała wysoką wartość sygnału:

  • Opcjonalny: domyślnie wyłączony.
  • Zaplanowany: po włączeniu memory-core automatycznie zarządza jednym cyklicznym zadaniem cron dla pełnego przebiegu Dreaming.
  • Progowy: promocje muszą przejść bramki wyniku, częstotliwości przypominania i różnorodności zapytań.
  • Możliwy do przeglądu: podsumowania faz i wpisy dziennika są zapisywane do DREAMS.md do przeglądu przez człowieka.

Zachowanie faz, sygnały punktacji i szczegóły dziennika Dreaming opisuje Dreaming.

Ugruntowane uzupełnianie i promocja na żywo

System Dreaming ma teraz dwie blisko powiązane ścieżki przeglądu:

  • Dreaming na żywo działa na krótkoterminowym magazynie Dreaming pod memory/.dreams/ i jest tym, czego zwykła faza głęboka używa przy podejmowaniu decyzji, co może przejść do MEMORY.md.
  • Ugruntowane uzupełnianie odczytuje historyczne notatki memory/YYYY-MM-DD.md jako samodzielne pliki dzienne i zapisuje ustrukturyzowany wynik przeglądu do DREAMS.md.

Ugruntowane uzupełnianie jest przydatne, gdy chcesz odtworzyć starsze notatki i sprawdzić, co system uznaje za trwałe, bez ręcznego edytowania MEMORY.md.

Gdy użyjesz:

bash
openclaw memory rem-backfill --path ./memory --stage-short-term

ugruntowani kandydaci do pamięci trwałej nie są promowani bezpośrednio. Są umieszczani etapowo w tym samym krótkoterminowym magazynie Dreaming, którego zwykła faza głęboka już używa. To oznacza, że:

  • DREAMS.md pozostaje powierzchnią przeglądu dla człowieka.
  • magazyn krótkoterminowy pozostaje powierzchnią rankingu dla maszyny.
  • MEMORY.md nadal jest zapisywany tylko przez głęboką promocję.

Jeśli uznasz, że odtworzenie nie było przydatne, możesz usunąć przygotowane artefakty bez dotykania zwykłych wpisów dziennika ani normalnego stanu przypominania:

bash
openclaw memory rem-backfill --rollbackopenclaw memory rem-backfill --rollback-short-term

CLI

bash
openclaw memory status          # Check index status and provideropenclaw memory search "query"  # Search from the command lineopenclaw memory index --force   # Rebuild the index

Dalsza lektura

Powiązane

Was this useful?
On this page

On this page