Como funciona
- Turnos antigos da conversa são resumidos em uma entrada compacta.
- O resumo é salvo na transcrição da sessão.
- Mensagens recentes são mantidas intactas.
toolResult correspondentes. Se um ponto de divisão cair dentro de um bloco de ferramenta, o OpenClaw move o limite para que o par permaneça junto e a cauda atual não resumida seja preservada.
O histórico completo da conversa permanece no disco. A Compaction só altera o que o modelo vê no próximo turno.
Compaction automática
A Compaction automática fica ativada por padrão. Ela é executada quando a sessão se aproxima do limite de contexto ou quando o modelo retorna um erro de estouro de contexto; nesse caso, o OpenClaw compacta e tenta novamente. Você verá:embedded run auto-compaction start/completenos logs normais do Gateway.🧹 Auto-compaction completeno modo detalhado./statusmostrando🧹 Compactions: <count>.
Antes de compactar, o OpenClaw lembra automaticamente o agente de salvar observações importantes em arquivos de memória. Isso evita perda de contexto.
Assinaturas de estouro reconhecidas
Assinaturas de estouro reconhecidas
O OpenClaw detecta estouro de contexto a partir destes padrões de erro de provedores:
request_too_largecontext length exceededinput exceeds the maximum number of tokensinput token count exceeds the maximum number of input tokensinput is too long for the modelollama error: context length exceeded
Compaction manual
Digite/compact em qualquer chat para forçar uma Compaction. Adicione instruções para orientar o resumo:
agents.defaults.compaction.keepRecentTokens está definido, a Compaction manual respeita esse ponto de corte do OpenClaw e mantém a cauda recente no contexto reconstruído. Sem um orçamento explícito de retenção, a Compaction manual se comporta como um ponto de verificação rígido e continua apenas a partir do novo resumo.
Configuração
Configure a Compaction emagents.defaults.compaction no seu openclaw.json. Os ajustes mais comuns estão listados abaixo; para a referência completa, consulte Visão aprofundada do gerenciamento de sessões.
Usando um modelo diferente
Por padrão, a Compaction usa o modelo principal do agente. Definaagents.defaults.compaction.model para delegar o resumo a um modelo mais capaz ou especializado. A substituição aceita uma string provider/model-id ou um alias simples configurado em agents.defaults.models:
agents.defaults.compaction.model permanece exata e não herda a cadeia de fallback da sessão.
Preservação de identificadores
O resumo da Compaction preserva identificadores opacos por padrão (identifierPolicy: "strict"). Substitua por identifierPolicy: "off" para desativar, ou identifierPolicy: "custom" mais identifierInstructions para orientação personalizada.
Proteção por bytes da transcrição ativa
Quandoagents.defaults.compaction.maxActiveTranscriptBytes está definido, o OpenClaw aciona a Compaction local normal antes de uma execução se o JSONL ativo atingir esse tamanho. Isso é útil para sessões de longa duração em que o gerenciamento de contexto do lado do provedor pode manter o contexto do modelo saudável enquanto a transcrição local continua crescendo. Ele não divide bytes JSONL brutos; ele solicita que o pipeline normal de Compaction crie um resumo semântico.
Transcrições sucessoras
Quandoagents.defaults.compaction.truncateAfterCompaction está ativado, o OpenClaw não reescreve a transcrição existente no lugar. Ele cria uma nova transcrição sucessora ativa a partir do resumo da Compaction, do estado preservado e da cauda não resumida, depois registra metadados de ponto de verificação que apontam fluxos de ramificação/restauração para essa sucessora compactada.
Transcrições sucessoras também descartam turnos longos de usuário exatamente duplicados que chegam
dentro de uma janela curta de nova tentativa, para que tempestades de novas tentativas do canal não sejam levadas para a
próxima transcrição ativa após a Compaction.
O OpenClaw não grava mais cópias .checkpoint.*.jsonl separadas para novas
Compactions. Arquivos de ponto de verificação legados existentes ainda podem ser usados enquanto referenciados
e são removidos pela limpeza normal de sessões.
Avisos de Compaction
Por padrão, a Compaction é executada silenciosamente. DefinanotifyUser para mostrar mensagens breves de status quando a Compaction começar e terminar:
Descarga de memória
Antes da Compaction, o OpenClaw pode executar um turno de descarga silenciosa de memória para armazenar observações duráveis em disco. Definaagents.defaults.compaction.memoryFlush.model quando esse turno de manutenção deve usar um modelo local em vez do modelo ativo da conversa:
Provedores de Compaction plugáveis
Plugins podem registrar um provedor de Compaction personalizado por meio deregisterCompactionProvider() na API do Plugin. Quando um provedor é registrado e configurado, o OpenClaw delega o resumo a ele em vez de usar o pipeline de LLM integrado.
Para usar um provedor registrado, defina o ID dele na sua configuração:
provider força automaticamente mode: "safeguard". Provedores recebem as mesmas instruções de Compaction e a mesma política de preservação de identificadores do caminho integrado, e o OpenClaw ainda preserva o contexto de sufixo de turnos recentes e turnos divididos após a saída do provedor.
Se o provedor falhar ou retornar um resultado vazio, o OpenClaw recorre ao resumo por LLM integrado.
Compaction vs remoção
| Compaction | Remoção | |
|---|---|---|
| O que faz | Resume conversas antigas | Corta resultados de ferramentas antigos |
| Salvo? | Sim (na transcrição da sessão) | Não (apenas em memória, por solicitação) |
| Escopo | Conversa inteira | Apenas resultados de ferramentas |
Solução de problemas
Compactando com muita frequência? A janela de contexto do modelo pode ser pequena, ou as saídas de ferramentas podem ser grandes. Tente ativar a remoção de sessão. O contexto parece desatualizado após a Compaction? Use/compact Focus on <topic> para orientar o resumo, ou ative a descarga de memória para que as observações sobrevivam.
Precisa de um início limpo? /new inicia uma nova sessão sem compactar.
Para configuração avançada (tokens reservados, preservação de identificadores, mecanismos de contexto personalizados, Compaction do lado do servidor da OpenAI), consulte a Visão aprofundada do gerenciamento de sessões.
Relacionado
- Sessão: gerenciamento e ciclo de vida de sessões.
- Remoção de sessão: corte de resultados de ferramentas.
- Contexto: como o contexto é construído para turnos do agente.
- Hooks: hooks do ciclo de vida da Compaction (
before_compaction,after_compaction).