Sessiesnoeien
Sessiesnoeien trimt oude toolresultaten uit de in‑memory context vlak vóór elke LLM‑aanroep. Het herschrijft niet de on‑disk sessiegeschiedenis (*.jsonl).
Wanneer het wordt uitgevoerd
- Wanneer
mode: "cache-ttl"is ingeschakeld en de laatste Anthropic‑aanroep voor de sessie ouder is danttl. - Heeft alleen effect op de berichten die voor dat verzoek naar het model worden gestuurd.
- Alleen actief voor Anthropic API‑aanroepen (en OpenRouter Anthropic‑modellen).
- Voor het beste resultaat laat je
ttlaansluiten op decacheControlTtlvan je model. - Na een snoei wordt het TTL‑venster gereset, zodat volgende verzoeken de cache behouden totdat
ttlopnieuw verloopt.
Slimme standaardinstellingen (Anthropic)
- OAuth‑ of setup-token‑profielen: schakel
cache-ttl‑snoeien in en stel de heartbeat in op1h. - API‑sleutel‑profielen: schakel
cache-ttl‑snoeien in, stel de heartbeat in op30m, en zet standaardcacheControlTtlop1hvoor Anthropic‑modellen. - Als je een van deze waarden expliciet instelt, overschrijft OpenClaw ze niet.
Wat dit verbetert (kosten + cachegedrag)
- Waarom snoeien: Anthropic promptcaching geldt alleen binnen de TTL. Als een sessie langer dan de TTL inactief is, cachet het volgende verzoek de volledige prompt opnieuw, tenzij je die eerst inkort.
- Wat goedkoper wordt: snoeien verkleint de cacheWrite‑grootte voor dat eerste verzoek nadat de TTL is verlopen.
- Waarom de TTL‑reset telt: zodra snoeien is uitgevoerd, reset het cachevenster, zodat vervolgverzoeken de vers gecachte prompt kunnen hergebruiken in plaats van de volledige geschiedenis opnieuw te cachen.
- Wat het niet doet: snoeien voegt geen tokens toe en “verdubbelt” geen kosten; het verandert alleen wat er wordt gecachet bij dat eerste post‑TTL‑verzoek.
Wat kan worden gesnoeid
- Alleen
toolResult‑berichten. - Gebruikers‑ en assistentberichten worden nooit aangepast.
- De laatste
keepLastAssistantsassistentberichten zijn beschermd; toolresultaten na die afkap worden niet gesnoeid. - Als er onvoldoende assistentberichten zijn om de afkap te bepalen, wordt snoeien overgeslagen.
- Toolresultaten met image blocks worden overgeslagen (nooit ingekort/gewist).
Schatting van het contextvenster
Snoeien gebruikt een geschatte contextgrootte (tekens ≈ tokens × 4). Het basisvenster wordt in deze volgorde bepaald:models.providers.*.models[].contextWindow‑override.- Modeldefinitie
contextWindow(uit het modelregister). - Standaard
200000tokens.
agents.defaults.contextTokens is ingesteld, wordt dit behandeld als een bovengrens (min) op het bepaalde venster.
Modus
cache-ttl
- Snoeien wordt alleen uitgevoerd als de laatste Anthropic‑aanroep ouder is dan
ttl(standaard5m). - Wanneer het wordt uitgevoerd: hetzelfde soft‑trim + hard‑clear‑gedrag als voorheen.
Soft vs hard snoeien
- Soft‑trim: alleen voor te grote toolresultaten.
- Behoudt kop + staart, voegt
...in en voegt een notitie toe met de oorspronkelijke grootte. - Slaat resultaten met image blocks over.
- Behoudt kop + staart, voegt
- Hard‑clear: vervangt het volledige toolresultaat door
hardClear.placeholder.
Toolselectie
tools.allow/tools.denyondersteunen*‑wildcards.- Weigeren wint.
- Overeenkomen is hoofdletterongevoelig.
- Lege toegestane lijst => alle tools toegestaan.
Interactie met andere limieten
- Ingebouwde tools korten hun eigen uitvoer al in; sessiesnoeien is een extra laag die voorkomt dat langdurige chats te veel tooluitvoer in de modelcontext ophopen.
- Compactie staat los hiervan: compactie vat samen en wordt persistent opgeslagen; snoeien is tijdelijk per verzoek. Zie /concepts/compaction.
Standaardwaarden (wanneer ingeschakeld)
ttl:"5m"keepLastAssistants:3softTrimRatio:0.3hardClearRatio:0.5minPrunableToolChars:50000softTrim:{ maxChars: 4000, headChars: 1500, tailChars: 1500 }hardClear:{ enabled: true, placeholder: "[Old tool result content cleared]" }