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.
Se 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.
- 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]" }
Exemplos¶
Padrão (desativado):
{
agent: {
contextPruning: { mode: "off" },
},
}
Habilitar poda consciente de TTL:
{
agent: {
contextPruning: { mode: "cache-ttl", ttl: "5m" },
},
}
Restringir a poda a ferramentas específicas:
{
agent: {
contextPruning: {
mode: "cache-ttl",
tools: { allow: ["exec", "read"], deny: ["*image*"] },
},
},
}
Veja a referência de configuração: Gateway Configuration