Pular para o conteúdo principal

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 mensagens mais antigas em um resumo para que o chat possa continuar.

Como funciona

  1. Turnos mais antigos da conversa são resumidos em uma entrada compacta.
  2. O resumo é salvo na transcrição da sessão.
  3. As mensagens recentes são mantidas intactas.
Quando o OpenClaw divide o histórico em blocos de compactação, ele mantém chamadas de ferramentas do assistente emparelhadas com suas entradas 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 altera apenas o que o modelo vê no próximo turno.

Autocompactação

A autocompactação 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). Assinaturas típicas de estouro incluem request_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 memory. Isso evita perda de contexto.

Compactação manual

Digite /compact em qualquer chat para forçar uma compactação. Adicione instruções para orientar o resumo:
/compact Focus on the API design decisions

Usando 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:
{
  agents: {
    defaults: {
      compaction: {
        model: "openrouter/anthropic/claude-sonnet-4-6",
      },
    },
  },
}

Aviso de início da compactação

Por padrão, a compactação é executada silenciosamente. Para mostrar um breve aviso quando a compactação começar, ative notifyUser:
{
  agents: {
    defaults: {
      compaction: {
        notifyUser: true,
      },
    },
  },
}
Quando ativado, o usuário vê uma mensagem curta (por exemplo, “Compactando contexto…”) no início de cada execução de compactação.

Compactação vs poda

CompactaçãoPoda
O que fazResume a conversa mais antigaRemove resultados antigos de ferramentas
É salva?Sim (na transcrição da sessão)Não (somente em memória, por solicitação)
EscopoConversa inteiraApenas resultados de ferramentas
A poda de sessão é um complemento mais leve que remove a saída de ferramentas sem resumir.

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 memory flush para que as notas sobrevivam. Precisa de um recomeço? /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 no lado do servidor OpenAI), consulte a Análise aprofundada do gerenciamento de sessões.

Relacionado

  • Session — gerenciamento e ciclo de vida da sessão
  • Session Pruning — remoção de resultados de ferramentas
  • Context — como o contexto é criado para turnos do agente
  • Hooks — hooks do ciclo de vida da compactação (before_compaction, after_compaction)