Sessions and memory
Przycinanie sesji
Przycinanie sesji przycina stare wyniki narzędzi z kontekstu przed każdym
wywołaniem LLM. Ogranicza rozrost kontekstu spowodowany nagromadzonymi wynikami narzędzi (wyniki exec, odczyty plików, wyniki wyszukiwania), bez przepisywania zwykłego tekstu rozmowy.
Dlaczego to ma znaczenie
Długie sesje gromadzą wyniki narzędzi, które powiększają okno kontekstu. To zwiększa koszty i może wymusić Compaction wcześniej, niż jest to konieczne.
Przycinanie jest szczególnie wartościowe dla pamięci podręcznej promptów Anthropic. Po wygaśnięciu TTL pamięci podręcznej następne żądanie ponownie zapisuje w cache cały prompt. Przycinanie zmniejsza rozmiar zapisu do cache, bezpośrednio obniżając koszt.
Jak to działa
- Poczekaj na wygaśnięcie TTL cache (domyślnie 5 minut).
- Znajdź stare wyniki narzędzi do zwykłego przycinania (tekst rozmowy pozostaje bez zmian).
- Miękkie przycięcie zbyt dużych wyników -- zachowaj początek i koniec, wstaw
.... - Twarde wyczyszczenie pozostałych -- zastąp placeholderem.
- Zresetuj TTL, aby kolejne żądania korzystały ze świeżego cache.
Czyszczenie starszych obrazów
OpenClaw buduje też osobny idempotentny widok odtwarzania dla sesji, które zachowują surowe bloki obrazów lub znaczniki mediów z hydracji promptu w historii.
- Zachowuje 3 najnowsze ukończone tury bajt w bajt, aby prefiksy pamięci podręcznej promptu dla ostatnich działań następczych pozostały stabilne.
- W widoku odtwarzania starsze już przetworzone bloki obrazów z historii
userlubtoolResultmogą zostać zastąpione przez[image data removed - already processed by model]. - Starsze tekstowe odwołania do mediów, takie jak
[media attached: ...],[Image: source: ...]imedia://inbound/..., mogą zostać zastąpione przez[media reference removed - already processed by model]. Znaczniki załączników bieżącej tury pozostają nienaruszone, aby modele vision nadal mogły hydratuować nowe obrazy. - Surowy transkrypt sesji nie jest przepisywany, więc przeglądarki historii nadal mogą renderować oryginalne wpisy wiadomości i ich obrazy.
- To rozwiązanie jest oddzielne od zwykłego przycinania według TTL cache. Istnieje po to, by zatrzymać powtarzające się ładunki obrazów lub nieaktualne odwołania do mediów przed psuciem pamięci podręcznej promptów w późniejszych turach.
Inteligentne wartości domyślne
OpenClaw automatycznie włącza przycinanie dla profili Anthropic:
| Typ profilu | Przycinanie włączone | Heartbeat |
|---|---|---|
| Uwierzytelnianie Anthropic OAuth/token (w tym ponowne użycie Claude CLI) | Tak | 1 godzina |
| Klucz API | Tak | 30 min |
Jeśli ustawisz jawne wartości, OpenClaw ich nie nadpisze.
Włączanie lub wyłączanie
Przycinanie jest domyślnie wyłączone dla dostawców innych niż Anthropic. Aby je włączyć:
{
agents: {
defaults: {
contextPruning: { mode: "cache-ttl", ttl: "5m" },
},
},
}
Aby wyłączyć: ustaw mode: "off".
Przycinanie a Compaction
| Przycinanie | Compaction | |
|---|---|---|
| Co | Przycina wyniki narzędzi | Streszcza rozmowę |
| Zapisywane? | Nie (na żądanie) | Tak (w transkrypcie) |
| Zakres | Tylko wyniki narzędzi | Cała rozmowa |
Uzupełniają się nawzajem -- przycinanie utrzymuje lekkie wyniki narzędzi pomiędzy cyklami Compaction.
Dalsza lektura
- Compaction -- redukcja kontekstu oparta na streszczaniu
- Konfiguracja Gateway -- wszystkie ustawienia konfiguracyjne przycinania
(
contextPruning.*)