Poda de sessão
A poda de sessão remove resultados antigos de ferramentas do contexto em memória imediatamente antes de cada chamada ao LLM. Ela não reescreve o histórico de sessão no disco (*.jsonl).
Quando ela é executada
- Quando
mode: "cache-ttl"está habilitado e a última chamada Anthropic da sessão é mais antiga quettl. - Afeta apenas as mensagens enviadas ao modelo para aquela solicitação.
- Ativa apenas para chamadas à API Anthropic (e modelos Anthropic do OpenRouter).
- Para melhores resultados, combine
ttlcom ocacheControlTtldo seu modelo. - Após uma poda, a janela de TTL é redefinida, de modo que solicitações subsequentes mantêm o cache até
ttlexpirar novamente.
Padrões inteligentes (Anthropic)
- Perfis OAuth ou setup-token: habilite a poda
cache-ttle defina o heartbeat como1h. - Perfis de chave de API: habilite a poda
cache-ttl, defina o heartbeat como30me defina ocacheControlTtlpadrão como1hem modelos Anthropic. - Se você definir qualquer um desses valores explicitamente, o OpenClaw não os substitui.
O que isso melhora (custo + comportamento de cache)
- Por que podar: o cache de prompts da Anthropic só se aplica dentro do TTL. Se uma sessão fica ociosa além do TTL, a próxima solicitação recacheia o prompt completo, a menos que você o corte antes.
- O que fica mais barato: a poda reduz o tamanho de cacheWrite para essa primeira solicitação após o TTL expirar.
- Por que a redefinição do TTL importa: quando a poda é executada, a janela de cache é redefinida, então solicitações seguintes podem reutilizar o prompt recém-cacheado em vez de recachear todo o histórico novamente.
- O que não faz: a poda não adiciona tokens nem “duplica” custos; ela apenas altera o que é cacheado nessa primeira solicitação pós‑TTL.
O que pode ser podado
- Apenas mensagens
toolResult. - Mensagens de usuário + assistente nunca são modificadas.
- As últimas
keepLastAssistantsmensagens do assistente são protegidas; resultados de ferramentas após esse corte não são podados. - Se não houver mensagens do assistente suficientes para estabelecer o corte, a poda é ignorada.
- Resultados de ferramentas que contêm blocos de imagem são ignorados (nunca cortados/limpos).
Estimativa da janela de contexto
A poda usa uma estimativa da janela de contexto (caracteres ≈ tokens × 4). A janela base é resolvida nesta ordem:- Substituição
models.providers.*.models[].contextWindow. - Definição do modelo
contextWindow(do registro de modelos). - Padrão de
200000tokens.
agents.defaults.contextTokens estiver definido, ele é tratado como um limite (mín.) na janela resolvida.
Modo
cache-ttl
- A poda só é executada se a última chamada Anthropic for mais antiga que
ttl(padrão5m). - Quando é executada: mesmo comportamento de soft-trim + hard-clear de antes.
Poda suave vs. poda rígida
- Soft-trim: apenas para resultados de ferramentas superdimensionados.
- Mantém início + fim, insere
...e anexa uma nota com o tamanho original. - Ignora resultados com blocos de imagem.
- Mantém início + fim, insere
- Hard-clear: substitui todo o resultado da ferramenta por
hardClear.placeholder.
Seleção de ferramentas
tools.allow/tools.denysuportam curingas*.- Negar vitórias.
- Correspondência é insensível a maiúsculas e minúsculas.
- Lista de permissão vazia => todas as ferramentas permitidas.
Interação com outros limites
- Ferramentas integradas já truncam sua própria saída; a poda de sessão é uma camada extra que impede chats de longa duração de acumularem saída excessiva de ferramentas no contexto do modelo.
- A compactação é separada: a compactação resume e persiste, a poda é transitória por solicitação. Veja /concepts/compaction.
Padrões (quando habilitado)
ttl:"5m"keepLastAssistants:3softTrimRatio:0.3hardClearRatio:0.5minPrunableToolChars:50000softTrim:{ maxChars: 4000, headChars: 1500, tailChars: 1500 }hardClear:{ enabled: true, placeholder: "[Old tool result content cleared]" }