Sessions and memory
Przegląd pamięci
OpenClaw zapamiętuje informacje, zapisując zwykłe pliki Markdown w obszarze
roboczym agenta (domyślnie ~/.openclaw/workspace). Model pamięta tylko to, co
zostanie zapisane na dysku; nie istnieje żaden ukryty stan.
Jak to działa
Agent ma trzy pliki związane z pamięcią:
MEMORY.md— pamięć długoterminowa. Trwałe fakty, preferencje i decyzje. Wczytywana na początku sesji.memory/YYYY-MM-DD.md(lubmemory/YYYY-MM-DD-<slug>.md) — notatki dzienne. Bieżący kontekst i obserwacje. Datowane notatki z dzisiaj i wczoraj są automatycznie wczytywane przy samym/newlub/reset; warianty ze slugiem, na przykład zapisywane przez dołączony hook pamięci sesji, są pobierane razem z plikiem zawierającym wyłącznie datę.DREAMS.md(opcjonalnie) — Dziennik snów i podsumowania przebiegów Dreaming do weryfikacji przez człowieka, w tym ugruntowane wpisy historycznego uzupełniania danych.
Co trafia dokąd
MEMORY.md to zwięzła, starannie dobrana warstwa: trwałe fakty, preferencje, stałe
decyzje i krótkie podsumowania, które powinny być dostępne na początku
sesji. Nie jest to surowa transkrypcja, dziennik ani kompletne archiwum.
Pliki memory/YYYY-MM-DD.md stanowią warstwę roboczą: szczegółowe notatki dzienne,
obserwacje, podsumowania sesji i surowy kontekst, który może być przydatny
później. Są indeksowane na potrzeby memory_search i memory_get, ale nie są
dołączane do początkowego promptu przy każdej turze.
Z czasem agent wyodrębnia przydatne materiały z notatek dziennych do
MEMORY.md i usuwa nieaktualne wpisy długoterminowe. Wygenerowane instrukcje
obszaru roboczego i przepływ Heartbeat wykonują to okresowo; nie trzeba
ręcznie edytować MEMORY.md dla każdego szczegółu.
Jeśli MEMORY.md przekroczy budżet plików początkowych, OpenClaw zachowuje plik na
dysku w całości, ale skraca kopię dołączaną do kontekstu. Należy potraktować
to jako sygnał, aby przenieść szczegółowy materiał do memory/*.md, pozostawić
w MEMORY.md tylko trwałe podsumowanie albo zwiększyć limity początkowe, jeśli
akceptowalne jest większe zużycie budżetu promptu. Aby sprawdzić rozmiary surowe
i dołączane oraz stan skrócenia, użyj /context list, /context detail lub openclaw doctor.
Importowanie z asystentów programistycznych
Interfejs Control UI może importować istniejącą pamięć lokalną z Codex i Claude Code. Otwórz Settings → Import Memory, wybierz agenta docelowego, sprawdź wykryte pliki i potwierdź import. OpenClaw kopiuje wyłącznie pamięć w formacie Markdown:
- Codex: skonsolidowane pliki
MEMORY.mdimemory_summary.mdw~/.codex/memories(lubCODEX_HOME/memories). Surowe pliki przebiegów i transkrypcji nie są importowane. - Claude Code: pliki Markdown z katalogu automatycznej pamięci każdego projektu w
~/.claude/projects/*/memoryoraz skonfigurowany przez użytkownikaautoMemoryDirectory, jeśli istnieje. Instrukcje projektów, sesje, ustawienia i dane uwierzytelniające nie są objęte tą operacją dotyczącą wyłącznie pamięci.
Zaimportowane pliki pozostają oddzielne w memory/imports/codex/ i
memory/imports/claude-code/ w obszarze roboczym wybranego agenta. Są indeksowane
na potrzeby memory_search i dostępne za pośrednictwem memory_get; nie są scalane
z początkowym plikiem MEMORY.md agenta. Pliki źródłowe pozostają niezmienione.
Podgląd oznacza konflikty w miejscu docelowym. Włącz Replace existing imports, aby zastąpić te pliki; zastosowanie zmian tworzy zweryfikowaną kopię zapasową sprzed importu i zachowuje w raporcie migracji kopie poszczególnych zastąpionych plików.
Wspomnienia wpływające na działania
Większość wspomnień to zwykłe notatki Markdown. Niektóre wpływają na to, co agent powinien zrobić później; w takich przypadkach należy zapisać nie tylko sam fakt, lecz także informację, kiedy można bezpiecznie podjąć na jego podstawie działanie.
Należy zapisać tę granicę działania, gdy notatka dotyczy:
- wymagań dotyczących zatwierdzenia lub uprawnień,
- ograniczeń tymczasowych,
- przekazania zadania do innej sesji, wątku lub osoby,
- warunków wygaśnięcia,
- bezpiecznego momentu podjęcia działania,
- uprawnień źródła lub właściciela,
- instrukcji, aby powstrzymać się od kuszącego działania.
Przydatne wspomnienie wpływające na działania jasno określa:
- co zmienia przyszłe zachowanie,
- kiedy lub pod jakim warunkiem ma zastosowanie,
- kiedy wygasa lub co umożliwia podjęcie działania,
- czego agent powinien unikać,
- kto jest źródłem lub właścicielem, jeśli wpływa to na zaufanie lub uprawnienia.
Pamięć może zachowywać kontekst zatwierdzenia, ale nie wymusza zasad. Do ścisłej kontroli operacyjnej należy używać ustawień zatwierdzania OpenClaw, izolacji sandbox oraz zaplanowanych zadań.
Przykład:
Migracja API jest projektowana w innej sesji. W przyszłych turach nie należyedytować implementacji API z poziomu tego wątku; ustalenia stąd należytraktować wyłącznie jako dane wejściowe do projektu, dopóki plan migracji nie zostanie przyjęty.Inny przykład:
Raport z niezaufanego źródła wymaga weryfikacji przed zatwierdzeniem. W przyszłych turachnależy traktować go wyłącznie jako materiał dowodowy; nie należy zapisywać go jako trwałej pamięci, dopókizaufany weryfikator nie potwierdzi zawartości.Nie jest to schemat wymagany dla każdego wspomnienia; proste fakty mogą pozostać zwięzłe. Granice działań należy stosować, gdy utrata kontekstu czasu, uprawnień, wygaśnięcia lub bezpiecznego momentu działania mogłaby później spowodować niewłaściwe działanie agenta.
Dla wywnioskowanych, krótkotrwałych działań następczych użyj zobowiązań. Dla dokładnych przypomnień, kontroli czasowych i cyklicznych prac użyj zaplanowanych zadań. Pamięć może nadal podsumowywać trwały kontekst dotyczący obu tych ścieżek.
Wywnioskowane zobowiązania
Niektóre przyszłe działania następcze nie są trwałymi faktami. Jeśli wspomniana zostanie rozmowa
kwalifikacyjna jutro, przydatnym wspomnieniem może być „odezwij się po rozmowie”, a nie „przechowuj
to na zawsze w MEMORY.md”.
Zobowiązania to opcjonalne, krótkotrwałe wspomnienia o działaniach następczych przeznaczone do takich przypadków. OpenClaw wywnioskuje je w ukrytym procesie w tle, ogranicza je do tego samego agenta i kanału oraz dostarcza należne wiadomości kontrolne za pomocą Heartbeat. Jawne przypomnienia nadal korzystają z zaplanowanych zadań.
Narzędzia pamięci
Agent ma dwa narzędzia do pracy z pamięcią:
memory_search— wyszukuje odpowiednie notatki semantycznie, nawet jeśli ich sformułowanie różni się od oryginalnego.memory_get— odczytuje określony plik pamięci lub zakres wierszy.
Oba narzędzia udostępnia aktywny plugin pamięci (domyślnie: memory-core).
Wyszukiwanie w pamięci
Po skonfigurowaniu dostawcy osadzeń memory_search używa wyszukiwania hybrydowego:
podobieństwa wektorowego (znaczenia semantycznego) połączonego z dopasowywaniem słów kluczowych (dokładnych
terminów, takich jak identyfikatory i symbole kodu). Działa to bez dodatkowej konfiguracji po podaniu klucza API
dowolnego obsługiwanego dostawcy.
Zobacz Wyszukiwanie w pamięci, aby dowiedzieć się, jak działa wyszukiwanie, poznać opcje dostrajania i konfigurację dostawcy.
Backendy pamięci
Oparty na SQLite. Działa bez dodatkowej konfiguracji z wyszukiwaniem słów kluczowych, podobieństwem wektorowym i wyszukiwaniem hybrydowym. Bez dodatkowych zależności.
Lokalny proces pomocniczy z ponownym szeregowaniem, rozwijaniem zapytań i możliwością indeksowania katalogów spoza obszaru roboczego.
Natywna dla AI pamięć między sesjami z modelowaniem użytkownika, wyszukiwaniem semantycznym i obsługą wielu agentów. Instalacja pluginu.
Pamięć oparta na LanceDB z osadzeniami zgodnymi z OpenAI, automatycznym przypominaniem, automatycznym przechwytywaniem i obsługą lokalnych osadzeń Ollama. Instalacja pluginu.
Warstwa wiki wiedzy
Aby trwała pamięć zachowywała się bardziej jak utrzymywana baza wiedzy
niż surowe notatki, użyj dołączonego pluginu memory-wiki. Kompiluje on trwałą
wiedzę do repozytorium wiki z deterministyczną strukturą stron, ustrukturyzowanymi
twierdzeniami i dowodami, śledzeniem sprzeczności i aktualności, wygenerowanymi
pulpitami, skompilowanymi zestawieniami i narzędziami natywnymi dla wiki (wiki_status,
wiki_search, wiki_get, wiki_apply, wiki_lint).
memory-wiki nie zastępuje aktywnego pluginu pamięci; aktywny plugin pamięci
nadal odpowiada za przywoływanie, promowanie i Dreaming. memory-wiki dodaje obok niego
warstwę wiedzy z rozbudowaną informacją o pochodzeniu.
Automatyczne opróżnianie pamięci
Zanim Compaction podsumuje rozmowę,
OpenClaw uruchamia cichą turę przypominającą agentowi o zapisaniu ważnego kontekstu
w plikach pamięci. Funkcja jest domyślnie włączona; ustaw
agents.defaults.compaction.memoryFlush.enabled: false, aby ją wyłączyć.
Aby ta tura porządkowa korzystała z modelu lokalnego, ustaw dokładne nadpisanie, które ma zastosowanie wyłącznie do tury opróżniania pamięci (nie dziedziczy łańcucha modeli zapasowych aktywnej sesji):
{ "agents": { "defaults": { "compaction": { "memoryFlush": { "model": "ollama/qwen3:8b" } } } }}Dreaming
Dreaming to opcjonalny proces konsolidacji pamięci w tle. Gromadzi
krótkoterminowe sygnały przywołania, ocenia kandydatów i promuje do pamięci
długoterminowej (MEMORY.md) tylko zakwalifikowane elementy:
- Opcjonalne: domyślnie wyłączone.
- Zaplanowane: po włączeniu
memory-coreautomatycznie zarządza jednym cyklicznym zadaniem Cron wykonującym pełny przebieg Dreaming. - Progowe: promocje muszą przejść progi wyniku, częstotliwości przywołania i różnorodności zapytań.
- Możliwe do weryfikacji: podsumowania faz i wpisy dziennika są zapisywane w
DREAMS.mddo weryfikacji przez człowieka.
Zobacz Dreaming, aby poznać zachowanie faz, sygnały oceny i szczegóły Dziennika snów.
Ugruntowane uzupełnianie danych i promocja na żywo
System Dreaming ma dwie powiązane ścieżki weryfikacji:
- Dreaming na żywo korzysta z krótkoterminowego magazynu Dreaming w
memory/.dreams/i służy normalnej fazie głębokiej do decydowania, co trafia doMEMORY.md. - Ugruntowane uzupełnianie danych odczytuje historyczne notatki
memory/YYYY-MM-DD.mdjako samodzielne pliki dzienne i zapisuje ustrukturyzowane wyniki weryfikacji wDREAMS.md.
Ugruntowane uzupełnianie danych przydaje się do ponownego przetwarzania starszych notatek i sprawdzania, co
system uznaje za trwałe, bez ręcznego edytowania MEMORY.md.
openclaw memory rem-backfill --path ./memory --stage-short-termFlaga --stage-short-term umieszcza ugruntowanych kandydatów na trwałe wspomnienia w tym samym
krótkoterminowym magazynie Dreaming, którego używa już normalna faza głęboka; nie
promuje ich bezpośrednio. Zatem:
DREAMS.mdpozostaje powierzchnią weryfikacji przez człowieka.- Magazyn krótkoterminowy pozostaje powierzchnią szeregującą przeznaczoną dla maszyny.
MEMORY.mdjest nadal zapisywany wyłącznie przez promocję w fazie głębokiej.
Aby cofnąć ponowne przetwarzanie bez zmieniania zwykłych wpisów dziennika ani normalnego stanu przywoływania:
openclaw memory rem-backfill --rollbackopenclaw memory rem-backfill --rollback-short-termCLI
openclaw memory status # Sprawdź stan indeksu i dostawcęopenclaw memory search "query" # Wyszukaj z wiersza poleceńopenclaw memory index --force # Przebuduj indeksDalsza lektura
- Wyszukiwanie w pamięci: potok wyszukiwania, dostawcy i dostrajanie.
- Wbudowany silnik pamięci: domyślny backend SQLite.
- Silnik pamięci QMD: zaawansowany lokalny proces pomocniczy.
- Pamięć Honcho: pamięć między sesjami zaprojektowana z myślą o AI.
- Pamięć LanceDB: Plugin oparty na LanceDB z osadzeniami zgodnymi z OpenAI.
- Wiki pamięci: skompilowany magazyn wiedzy i narzędzia natywne dla wiki.
- Dreaming: działające w tle przenoszenie informacji z pamięci krótkotrwałej do długotrwałej.
- Dokumentacja konfiguracji pamięci: wszystkie opcje konfiguracji.
- Compaction: sposób interakcji Compaction z pamięcią.
- Active Memory: pamięć podagentów dla interaktywnych sesji czatu.