Sessions and memory

Przegląd pamięci

OpenClaw zapamiętuje informacje, zapisując zwykłe pliki Markdown w przestrzeni roboczej 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 (lub memory/YYYY-MM-DD-<slug>.md) — notatki dzienne. Bieżący kontekst i obserwacje. Datowane notatki z dzisiaj i wczoraj są automatycznie wczytywane po zwykłym /new lub /reset; warianty z identyfikatorem tekstowym, takie jak tworzone przez dołączony hook pamięci sesji, są wczytywane razem z plikiem zawierającym wyłącznie datę.
  • DREAMS.md (opcjonalny) — Dziennik snów i podsumowania przebiegów Dreaming przeznaczone do weryfikacji przez człowieka, w tym osadzone w źródłach wpisy uzupełniające dane historyczne.

Co trafia do którego pliku

MEMORY.md jest zwartą, uporządkowaną warstwą: zawiera trwałe fakty, preferencje, obowiązujące decyzje i krótkie podsumowania, które powinny być dostępne na początku sesji. Nie jest to surowy zapis rozmowy, dziennik ani kompletne archiwum.

Pliki memory/YYYY-MM-DD.md stanowią warstwę roboczą: zawierają szczegółowe notatki dzienne, obserwacje, podsumowania sesji i surowy kontekst, który może nadal przydać się później. Są indeksowane na potrzeby memory_search i memory_get, ale nie są umieszczane w początkowym prompcie przy każdej turze.

Z czasem agent wyodrębnia przydatne informacje z notatek dziennych i przenosi je do MEMORY.md, a także usuwa nieaktualne wpisy długoterminowe. Wygenerowane instrukcje przestrzeni roboczej i przepływ Heartbeat wykonują te czynności okresowo; nie musisz ręcznie edytować MEMORY.md przy każdym szczególe.

Jeśli rozmiar MEMORY.md przekroczy limit pliku początkowego, OpenClaw pozostawi cały plik na dysku, ale skróci kopię umieszczaną w kontekście. Potraktuj to jako sygnał, aby przenieść szczegółowe informacje do memory/*.md, pozostawić w MEMORY.md wyłącznie trwałe podsumowanie albo zwiększyć limity początkowe, jeśli chcesz przeznaczyć większy budżet promptu. Użyj /context list, /context detail lub openclaw doctor, aby zobaczyć rozmiary surowe i umieszczone w kontekście oraz stan skrócenia.

Wspomnienia wpływające na działania

Większość wspomnień to zwykłe notatki Markdown. Niektóre wpływają jednak na to, co agent powinien zrobić później; w takich przypadkach zapisz nie tylko sam fakt, lecz także informację, kiedy można bezpiecznie podjąć na jego podstawie działanie.

Zapisz tę granicę działania, gdy notatka dotyczy:

  • wymagań dotyczących zatwierdzenia lub uprawnień,
  • tymczasowych ograniczeń,
  • przekazania zadania do innej sesji, wątku lub osoby,
  • warunków wygaśnięcia,
  • momentu, od którego działanie jest bezpieczne,
  • 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 albo 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 zachować kontekst zatwierdzenia, ale nie egzekwuje zasad. Do twardych mechanizmów kontroli operacyjnej używaj ustawień zatwierdzania OpenClaw, piaskownicy i zaplanowanych zadań.

Przykład:

md
Migracja API jest projektowana w innej sesji. W przyszłych turach nie należyedytować implementacji API z tego wątku; ustalenia z tego miejsca mogą służyćwyłącznie jako dane wejściowe do projektu, dopóki plan migracji nie zostaniewdrożony.

Inny przykład:

md
Raport z niezaufanego źródła wymaga weryfikacji przed zatwierdzeniem. Wprzyszłych turach należy traktować go wyłącznie jako materiał dowodowy; nienależy zapisywać go jako trwałej pamięci, dopóki zaufany recenzent niepotwierdzi jego zawartości.

Nie jest to wymagany schemat każdego wspomnienia; proste fakty mogą pozostać zwięzłe. Używaj granic wpływających na działania, gdy utrata informacji o czasie, uprawnieniach, wygaśnięciu lub warunkach bezpiecznego działania mogłaby sprawić, że agent zrobi później coś niewłaściwego.

Do wywnioskowanych, krótkotrwałych działań następczych używaj zobowiązań. Do dokładnych przypomnień, kontroli wykonywanych w określonym czasie i cyklicznych zadań używaj zaplanowanych zadań. Pamięć może nadal podsumowywać trwały kontekst związany z każdą z tych ścieżek.

Wywnioskowane zobowiązania

Niektóre przyszłe działania następcze nie są trwałymi faktami. Jeśli wspomnisz o jutrzejszej rozmowie kwalifikacyjnej, przydatnym wspomnieniem może być „zapytaj po rozmowie, jak poszło”, a nie „zapisz to na zawsze w MEMORY.md”.

Zobowiązania to opcjonalne, krótkotrwałe wspomnienia dotyczące działań następczych przeznaczone do takich przypadków. OpenClaw wnioskuje je w ukrytym przebiegu w tle, ogranicza do tego samego agenta i kanału oraz dostarcza odpowiednie wiadomości kontrolne za pośrednictwem Heartbeat. Jawne przypomnienia nadal korzystają z zaplanowanych zadań.

Narzędzia pamięci

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

  • memory_search — znajduje odpowiednie notatki za pomocą wyszukiwania semantycznego, nawet jeśli ich sformułowanie różni się od oryginału.
  • 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

Gdy skonfigurowany jest dostawca embeddingów, memory_search korzysta z wyszukiwania hybrydowego: podobieństwo wektorowe (znaczenie semantyczne) jest łączone z dopasowywaniem słów kluczowych (dokładnych terminów, takich jak identyfikatory i symbole kodu). Działa to od razu po podaniu klucza API dowolnego obsługiwanego dostawcy.

Zobacz Wyszukiwanie w pamięci, aby dowiedzieć się, jak działa wyszukiwanie, jakie są opcje dostrajania i jak skonfigurować dostawcę.

Mechanizmy przechowywania pamięci

Warstwa wiki wiedzy

Jeśli chcesz, aby trwała pamięć działała 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, generowanymi pulpitami, skompilowanymi zestawieniami oraz natywnymi narzędziami 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 bogatą w informacje o pochodzeniu.

Automatyczne opróżnianie pamięci

Zanim Compaction podsumuje rozmowę, OpenClaw wykonuje cichą turę, która przypomina 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 porządkowa tura korzystała z modelu lokalnego, ustaw dokładne nadpisanie obowiązujące wyłącznie dla tury opróżniania pamięci (nie dziedziczy ona łańcucha modeli rezerwowych aktywnej sesji):

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

Dreaming

Dreaming to opcjonalny proces konsolidacji pamięci wykonywany w tle. Zbiera krótkoterminowe sygnały przywoływania, ocenia kandydatów i promuje do pamięci długoterminowej (MEMORY.md) wyłącznie zakwalifikowane elementy:

  • Opcjonalny: domyślnie wyłączony.
  • Zaplanowany: po włączeniu memory-core automatycznie zarządza jednym cyklicznym zadaniem Cron wykonującym pełny przebieg Dreaming.
  • Progowy: promowane elementy muszą przejść kryteria wyniku, częstotliwości przywoływania i różnorodności zapytań.
  • Możliwy do weryfikacji: podsumowania faz i wpisy dziennika są zapisywane w DREAMS.md do weryfikacji przez człowieka.

Zobacz Dreaming, aby poznać zachowanie poszczególnych faz, sygnały oceny i szczegóły Dziennika snów.

Osadzone uzupełnianie danych i promowanie na bieżąco

System Dreaming ma dwie powiązane ścieżki weryfikacji:

  • Dreaming na bieżąco korzysta z krótkoterminowego magazynu Dreaming w memory/.dreams/ i jest używany przez zwykłą fazę głęboką do podejmowania decyzji, które elementy trafią do MEMORY.md.
  • Osadzone uzupełnianie danych odczytuje historyczne notatki memory/YYYY-MM-DD.md jako samodzielne pliki dni i zapisuje ustrukturyzowane wyniki weryfikacji w DREAMS.md.

Osadzone uzupełnianie danych przydaje się do ponownego przetwarzania starszych notatek i sprawdzania, które informacje system uznaje za trwałe, bez ręcznego edytowania MEMORY.md.

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

Flaga --stage-short-term umieszcza osadzonych kandydatów do trwałej pamięci w tym samym krótkoterminowym magazynie Dreaming, którego używa już zwykła faza głęboka; nie promuje ich bezpośrednio. W rezultacie:

  • DREAMS.md pozostaje obszarem weryfikacji przeznaczonym dla człowieka.
  • Magazyn krótkoterminowy pozostaje obszarem rankingu przeznaczonym dla maszyny.
  • MEMORY.md jest nadal zapisywany wyłącznie przez głębokie promowanie.

Aby cofnąć ponowne przetwarzanie bez modyfikowania zwykłych wpisów dziennika ani normalnego stanu przywoływania:

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

CLI

bash
openclaw memory status          # Sprawdź stan indeksu i dostawcęopenclaw memory search "query"  # Wyszukaj z wiersza poleceńopenclaw memory index --force   # Przebuduj indeks

Dalsza lektura

Was this useful?
On this page

On this page