Compactação
Todo modelo tem uma janela de contexto — o número máximo de tokens que ele pode processar. Quando uma conversa se aproxima desse limite, o OpenClaw compacta as mensagens mais antigas em um resumo para que o chat possa continuar.Como funciona
- Os turnos mais antigos da conversa são resumidos em uma entrada compacta.
- O resumo é salvo na transcrição da sessão.
- As 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 compactação só altera o que o
modelo vê no próximo turno.
Compactação automática
A compactação automática vem 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). Assinaturas típicas de estouro incluemrequest_too_large, context length exceeded, input exceeds the maximum number of tokens, input token count exceeds the maximum number of input tokens, input is too long for the model e ollama error: context length exceeded.
Antes de compactar, o OpenClaw lembra automaticamente o agente de salvar notas importantes
em arquivos de memória. Isso evita perda de contexto.
agents.defaults.compaction no seu openclaw.json para configurar o comportamento da compactação (modo, tokens alvo etc.).
A sumarização da compactação preserva identificadores opacos por padrão (identifierPolicy: "strict"). Você pode substituir isso com identifierPolicy: "off" ou fornecer texto personalizado com identifierPolicy: "custom" e identifierInstructions.
Opcionalmente, você pode especificar um modelo diferente para a sumarização da compactação por meio de agents.defaults.compaction.model. Isso é útil quando seu modelo principal é um modelo local ou pequeno e você quer que os resumos de compactação sejam produzidos por um modelo mais capaz. A substituição aceita qualquer string provider/model-id:
Provedores de compactação conectáveis
Plugins podem registrar um provedor de compactação personalizado por meio deregisterCompactionProvider() na API do plugin. Quando um provedor está registrado e configurado, o OpenClaw delega a sumarização a ele em vez de usar o pipeline de LLM integrado.
Para usar um provedor registrado, defina o id do provedor na sua configuração:
provider força automaticamente mode: "safeguard". Os provedores recebem as mesmas instruções de compactação 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 de turnos divididos após a saída do provedor. Se o provedor falhar ou retornar um resultado vazio, o OpenClaw recorre à sumarização por LLM integrada.
Compactação automática (ativada por padrão)
Quando uma sessão se aproxima ou excede a janela de contexto do modelo, o OpenClaw aciona a compactação automática e pode tentar novamente a solicitação original usando o contexto compactado. Você verá:🧹 Auto-compaction completeno modo detalhado/statusmostrando🧹 Compactions: <count>
Compactação manual
Digite/compact em qualquer chat para forçar uma compactação. Adicione instruções para orientar
o resumo:
Usar um modelo diferente
Por padrão, a compactação usa o modelo principal do seu agente. Você pode usar um modelo mais capaz para obter resumos melhores:Aviso de início da compactação
Por padrão, a compactação é executada silenciosamente. Para mostrar um aviso breve quando a compactação começar, ativenotifyUser:
Compactação vs poda
| Compactação | Poda | |
|---|---|---|
| O que faz | Resume a conversa mais antiga | Remove resultados antigos de ferramentas |
| Salvo? | Sim (na transcrição da sessão) | Não (somente na memória, por solicitação) |
| Escopo | Conversa inteira | Somente 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 poda de sessão. O contexto parece desatualizado após a compactação? Use/compact Focus on <topic> para
orientar o resumo, ou ative o descarregamento de memória para que as notas
sejam preservadas.
Precisa de uma página em branco? /new inicia uma sessão nova sem compactar.
Para configuração avançada (reserva de tokens, preservação de identificadores, mecanismos de
contexto personalizados, compactação do lado do servidor da OpenAI), consulte a
Análise aprofundada do gerenciamento de sessão.
Relacionado
- Sessão — gerenciamento e ciclo de vida da sessão
- Poda de sessão — remoção de resultados de ferramentas
- Contexto — como o contexto é montado para os turnos do agente
- Hooks — hooks do ciclo de vida da compactação (before_compaction, after_compaction)