Se você já viu um agente de IA começar afiado e ir ficando burro no meio de uma tarefa longa, não é impressão. Quanto mais coisa entra na conversa, pior o modelo lembra do que importa. A Anthropic tem até nome pra isso: context rot. A boa notícia é que a correção virou recurso de plataforma nas duas maiores casas do mercado, e ela se chama compaction.
Este post é pra quem constrói: o que está acontecendo por baixo, por que resolver isso é o que separa um demo de um produto, e o que dá pra fazer hoje.
O que é a janela de contexto
A janela de contexto é a memória de trabalho do modelo: tudo que ele consegue enxergar pra gerar a próxima resposta. Não é o que ele aprendeu no treino, é o que está na mesa agora — seu prompt de sistema, o histórico da conversa, os resultados das ferramentas, os documentos que você anexou e a própria resposta sendo gerada.
Ela é grande. Os modelos de ponta hoje chegam a 1 milhão de tokens de janela. O detalhe que engana quem está começando: janela maior não é sinônimo de resposta melhor.
Por que o agente "esquece"
Ele esquece porque contexto demais atrapalha. Conforme o número de tokens cresce, a precisão e a capacidade de recuperar informação caem — é o tal do context rot que a Anthropic descreve na própria documentação. O modelo não trava, ele degrada: passa a ignorar instruções do começo, misturar detalhes, repetir passo que já fez.
Isso derruba justamente o tipo de trabalho que faz a IA valer a pena: tarefas de várias etapas, agentes que ficam horas num fluxo, automações que encadeiam dezenas de chamadas de ferramenta. O gargalo deixou de ser "o modelo é inteligente o bastante?" e passou a ser "ele consegue manter o foco por tempo suficiente?".
Por isso curar o que entra no contexto importa tanto quanto o tamanho da janela.
Compaction: o resumo automático que segura a conversa
Compaction é o modelo resumir a própria conversa pra continuar depois do limite sem perder o fio. Em vez de arrastar o histórico inteiro a cada rodada, o sistema comprime o que já passou num formato enxuto e segue em frente. As duas abordagens convergiram no mesmo lugar, com sabores diferentes:
- OpenAI. Dá pra ligar compaction do lado do servidor na própria chamada da Responses API: você define um
compact_thresholde, quando a contagem de tokens cruza esse limite, o servidor comprime o contexto sozinho e continua. Existe também um endpoint dedicado (/responses/compact) pra quem quer controlar a hora exata. O resultado é um "item de compactação" cifrado e opaco, não feito pra humano ler, que carrega o estado e o raciocínio anteriores gastando menos tokens. - Anthropic. A compaction server-side resume automaticamente as partes mais antigas da conversa no servidor, deixando o agente passar do limite da janela. Está em beta nos modelos atuais, do Sonnet 5 ao Opus 4.8.
O ganho é o mesmo dos dois lados: equilibrar qualidade, custo e latência à medida que a conversa cresce. Menos tokens arrastados por rodada é menos dinheiro por chamada e menos tempo de espera.
Além do compaction: as outras alavancas
Compaction não é a única ferramenta, e nem sempre é a primeira. Vale conhecer o resto do arsenal:
| Alavanca | O que faz | Quando usar |
|---|---|---|
| Limpar resultados de ferramenta | Descarta saídas antigas de tools que já não importam | Agentes que fazem muitas chamadas e enchem o contexto de lixo |
| Consciência de contexto | O modelo acompanha quanto de janela ainda resta | Tarefas longas onde ele precisa dosar o próprio esforço |
| Memória entre sessões | Guarda estado fora da janela pra retomar depois | Fluxos que atravessam várias sessões |
| Busca de ferramentas | Carrega só as tools necessárias, sob demanda | Agentes com dezenas de ferramentas disponíveis |
A Anthropic embutiu a consciência de contexto direto em modelos como Sonnet 5 e Haiku 4.5: eles recebem o próprio orçamento de tokens e sabem quanto sobra, em vez de chutar. Isso muda como um agente decide onde gastar atenção.
O que fazer na prática
Se você está montando um agente ou uma automação séria, três decisões evitam a maior parte da dor:
- Não empilhe tudo numa conversa só. Cada resultado de ferramenta, cada documento, cada passo custa janela. Corte o que não vai ser usado de novo.
- Ligue compaction antes de precisar. Definir um limite de compactação é barato e evita a queda de qualidade lá na frente. Não espere o agente já estar perdido.
- Meça o contexto, não confie no olho. Use contagem de tokens pra saber onde está antes de estourar. "Parece que tá grande" não é métrica.
Nada disso deixa o modelo mais inteligente. Deixa o trabalho mais organizado — e é isso que faz um agente entregar de verdade em vez de só impressionar num vídeo de demonstração.
A próxima leva de produtos com IA não vai ganhar por ter o modelo mais esperto. Vai ganhar por saber o que colocar na frente dele — e o que tirar.