Contexto no Deep Agents: o que um agente faz com a memória cheia

Contexto no Deep Agents: o que um agente faz com a memória cheia
20.000tokens: a partir daí, a resposta de uma ferramenta vai para o disco
85%da janela: quando o Deep Agents corta e resume por padrão
10-20%da janela: onde forçar o resumo para poder medi-lo
3conselhos para avaliar suas próprias estratégias
O que seu agente de IA faz quando a memória enche? Como o Deep Agents gerencia o contexto
Também conto isso neste vídeo de nove minutos, no meu canal Articulator PT.

Por que é preciso gerenciar o contextolink

Os agentes encaram tarefas cada vez mais longas. E quanto mais dura uma tarefa, mais coisas o agente acumula na sua janela de contexto: mensagens, chamadas de ferramentas, as respostas delas, arquivos lidos…

Isso traz dois problemas. O primeiro é óbvio: a janela do modelo é finita. O segundo chega muito antes de enchê-la: com tanto texto, o modelo aproveita pior o que importa. É a deterioração do contexto, ou context rot.

Os dois problemas das tarefas longas: a janela é finita e o contexto se degrada.
Dois problemas: a janela acaba e, antes disso, o contexto se degrada.

A solução é comprimir o contexto: reduzir o que o agente guarda na memória de trabalho sem perder os detalhes de que ele precisa para terminar a tarefa. Pode ser resumir o que já aconteceu, tirar informação desatualizada ou decidir com cuidado o que fica e o que sai.

O Deep Agents e seu sistema de arquivoslink

O Deep Agents é o arnês de agentes da LangChain: de código aberto e com tudo o que é preciso já incluído (em inglês, batteries included). Com ele, um agente pode planejar, criar subagentes e trabalhar com um sistema de arquivos para executar tarefas complexas e longas.

Esse sistema de arquivos é a peça-chave de toda a gestão do contexto. O agente tem ferramentas para listar, ler, escrever e buscar arquivos, e até executá-los. Assim, o que sai da memória de trabalho não se perde: vai para o disco, e o agente procura e recupera quando precisa.

As ferramentas do agente sobre o sistema de arquivos: listar, ler, escrever, buscar e executar.
O que sai da memória de trabalho vai para o disco, e o agente recupera quando precisa.

Três técnicas, três ritmoslink

Sobre essa base, o Deep Agents comprime o contexto com três técnicas, cada uma no seu ritmo:

1. Respostas grandes

Move para o disco as respostas enormes das ferramentas assim que aparecem.

2. Entradas grandes

Tira do histórico os argumentos grandes das chamadas antigas quando o contexto passa de um limite.

3. Resumo

Resume a conversa quando já não sobra nada para mover para o disco.

Os limites não são um número fixo de tokens, e sim frações da janela de cada modelo. A LangChain guarda perfis de modelo com o máximo de tokens que cada um aceita, e o Deep Agents comprime quando o contexto chega a uma certa porcentagem desse valor.

As três técnicas do Deep Agents, cada uma no seu ritmo: respostas grandes, entradas grandes e resumo.
Três técnicas, da mais barata à mais drástica.

1. As respostas grandes vão para o discolink

Quando o agente lê um arquivo enorme ou consulta um serviço web, a resposta da ferramenta pode ser tão grande que nem cabe na janela do modelo.

Por isso, quando o Deep Agents detecta uma resposta de mais de 20.000 tokens, ele a salva num arquivo no disco. No contexto, deixa só o caminho desse arquivo e uma prévia com as dez primeiras linhas. Se depois precisar de mais, o agente volta a ler o arquivo ou busca nele o que interessa: a resposta completa continua ao seu alcance, mas já não ocupa a memória de trabalho.

Uma resposta de ferramenta que passa do limite de 20.000 tokens é salva no disco; no contexto ficam o caminho e uma prévia.
Mais de 20.000 tokens: para o disco, com o caminho e uma prévia no contexto.

Um detalhe que conferi no código do Deep Agents: o limite de 20.000 tokens e a pasta /large_tool_results/ batem com o artigo, mas a versão atual já não mostra só o começo, e sim o começo e o final da resposta.

2. Cortar as entradas grandeslink

A segunda técnica olha para o outro lado: não para o que as ferramentas devolvem, mas para o que elas recebem. Quando o agente escreve ou edita um arquivo, a chamada da ferramenta leva dentro o conteúdo completo, e ele fica no histórico da conversa.

Mas esse conteúdo já está salvo no disco. Mantê-lo também no histórico é redundante: podem ser quinhentas linhas de código ocupando espaço turno após turno. Então, quando a conversa passa de 85% da janela, o Deep Agents corta as chamadas mais antigas: troca o conteúdo delas por um ponteiro para o arquivo no disco, e o contexto ativo emagrece. O mais recente fica como está.

O medidor do contexto passa de 85%: as chamadas write_file mais antigas são cortadas e ficam como ponteiros para o arquivo.
Passando de 85%, as chamadas antigas viram um ponteiro para o arquivo.

3. Resumir sem apagar nadalink

Quando tirar coisas para o disco já não libera espaço suficiente, o Deep Agents recorre ao resumo, em duas partes:

  1. Um resumo na memória: um modelo de linguagem escreve um resumo estruturado da conversa, com a intenção da sessão, os artefatos criados e os próximos passos. Esse resumo substitui o histórico completo na memória de trabalho do agente.
  2. O histórico completo, no disco: as mensagens originais são gravadas num arquivo, como registro canônico de tudo o que aconteceu. O resumo indica onde ele está, caso seja preciso voltar a ele.
O resumo estruturado com a intenção da sessão, os artefatos criados e os próximos passos substitui o histórico na memória.
O resumo estruturado substitui o histórico; os originais ficam salvos no disco.

Com essa abordagem dupla, o agente sabe em que ponto está e para onde vai graças ao resumo, e se precisar de um detalhe específico ele recupera buscando no disco. O artigo mostra isso com um rastreamento real, em que o modelo usa a ferramenta read_file para trazer mensagens que já tinham sido resumidas.

Como saber se funciona?link

Essa é a maquinaria. Mas, para mim, a parte mais interessante do artigo é a segunda: como saber se ela funciona de verdade? Em tarefas reais, como as do Terminal Bench, a compressão só dispara de vez em quando. Com tão poucos eventos, é difícil isolar o que cada técnica traz.

O truque da LangChain é provocá-la. Se você resume ao chegar a 10 ou 20% da janela, o agente rende um pouco pior no geral, mas resume muitíssimas vezes mais. Não é uma configuração para produção, e sim para testar: com tantos eventos, já dá para comparar configurações diferentes, por exemplo, duas versões do seu prompt de resumo.

Ao resumir com 10 ou 20% da janela, o desempenho cai um pouco, mas os eventos de resumo se multiplicam.
Forçar o resumo: um pouco menos de desempenho, muitíssimos mais eventos para estudar.

Foi assim que encontraram uma melhoria simples: o agente funcionava melhor ao acrescentar ao prompt de resumo duas seções próprias, a intenção da sessão e os próximos passos. Na PR da LangChain que mudou esse prompt, o novo fica com quatro seções: intenção da sessão, resumo, artefatos e próximos passos.

O gráficolink

O artigo ilustra isso com um gráfico: execuções do Claude Sonnet 4.5 no Terminal Bench 2, comprimindo a 25% da janela em vez dos 85% padrão. Cada linha acompanha os tokens do contexto turno a turno.

  • A linha verde: passado o turno 20, um resumo afunda o contexto de uma vez, de uns 50.000 tokens para uns 15.000.
  • A linha laranja: perto do turno 40, a queda é menor. Não é um resumo: uma chamada que escrevia um arquivo grande é expulsa do contexto.
O gráfico de tokens por turno, redesenhado: a linha verde cai de uma vez por causa de um resumo e a laranja cai menos ao expulsar uma chamada.
Redesenhado a partir da figura do artigo (os números, lidos a olho).

Mais eventos, mais dados para estudá-los. Os números das quedas eu li na figura, porque o artigo só diz "por volta do turno 20" e "por volta do turno 40".

Avaliações dirigidaslink

Além disso, o Deep Agents tem um conjunto de avaliações dirigidas: testes pequenos de propósito, em que cada um isola um mecanismo da compressão. Assim, quando algo falha, a falha salta aos olhos e fica fácil depurar.

Elas não buscam medir o quanto o agente resolve bem tarefas em geral, mas comprovar que o arnês não atrapalha. Dois exemplos:

O resumo manteve o objetivo?

Forçam um resumo no meio da tarefa e veem se o agente segue em frente. Não basta guardar o estado: ele também tem que manter o rumo.

Ele recupera o que o resumo levou?

Escondem um dado no começo da conversa, como uma agulha num palheiro, forçam um resumo e, mais tarde, a tarefa exige esse dado. Ele já não está no contexto: o agente só consegue encontrá-lo buscando no disco.

A agulha no palheiro: um dado escondido no começo da conversa é resumido e o agente o encontra no histórico salvo no disco.
A agulha no palheiro: o dado já não está no contexto, mas está no disco.

São como testes de integração da gestão do contexto. Não substituem os benchmarks completos, mas aceleram muito cada iteração, e quando algo falha você sabe qual mecanismo foi, em vez de culpar o agente em geral.

Três conselhos para avaliar sua compressãolink

O artigo termina com três conselhos para quem quer avaliar suas próprias estratégias de compressão:

1. Benchmarks reais, depois estresse

Meça o seu arnês com tarefas representativas para ter uma linha de base. Em seguida, force a compressão, a 10 ou 20% em vez de 85%, e compare alternativas.

2. Confira a recuperação

Comprimir só serve se o que é crítico estiver à mão. Teste se o agente segue rumo ao objetivo e se resgata detalhes específicos, como a agulha.

3. Fique de olho na deriva

A falha mais traiçoeira: depois de um resumo, o agente perde de vista o que você queria. Pede esclarecimentos desnecessários ou dá a tarefa por concluída sem terminá-la.

A deriva do objetivo: depois de um resumo, o agente pede esclarecimentos desnecessários ou dá a tarefa por concluída sem terminá-la.
A deriva do objetivo, a falha mais traiçoeira.

Há desvios mais sutis, difíceis de atribuir ao resumo. Forçar resumos frequentes num conjunto de testes ajuda a trazê-los à tona.

Resumindolink

O Deep Agents gerencia o contexto em três degraus: tira para o disco as respostas enormes, corta as chamadas antigas e, como último recurso, resume sem apagar nada. Todo o arnês é de código aberto, então dá para testá-lo.

Em uma frase

Para saber se a sua compressão funciona, não espere que ela dispare sozinha: force-a e teste com testes pequenos.

O que os seus agentes fazem quando a memória deles enche?

Fonteslink

Continuar lendo

Últimos posts -->

Você viu esses projetos?

Gymnasia

Gymnasia Gymnasia
Expo
React Native
TypeScript
OpenAI
Anthropic

App de fitness com dois agentes que são executados integralmente no dispositivo, sem backend, de forma que os dados do usuário nunca saem do celular. Um coach conversacional BYOK com tools locais e system prompt remoto com fallback offline, e um estimador de refeições que tira os macronutrientes de uma foto do prato, com leitura de códigos de barras contra o OpenFoodFacts.

LangGraph Deep Researcher

LangGraph Deep Researcher LangGraph Deep Researcher
Python
LangGraph
FastAPI
React
TypeScript
Docker

Sistema multiagente de pesquisa construído com LangGraph. Um supervisor decompõe sua pergunta em tópicos e lança subagentes de busca em paralelo; cada um comprime seus achados antes de repassá-los a um agente redator que escreve o relatório final em markdown com suas fontes. Streaming ao vivo por WebSockets, modelo configurável por papel e chaves de API próprias que nunca são armazenadas no servidor.

Tau

Tau Tau
Python
LangChain

Sistema multiagente de tutoria para estudantes do ensino médio, com um agente por disciplina e material de curso elaborado e validado por uma equipe de professores. Chegou a ser usado com alunos reais em um colégio privado na Espanha e em uma escola de ensino médio na Colômbia.

Ver todos os projetos -->
>_ Disponível para projetos

Tem um projeto com IA?

Vamos conversar.

maximofn@gmail.com

Especialista em Machine Learning e Inteligência Artificial. Desenvolvo soluções com IA generativa, agentes inteligentes e modelos personalizados.

Quer assistir alguma palestra?

Últimas palestras -->

Quer melhorar com essas dicas?

Últimos tips -->

Use isso localmente

Os espaços do Hugging Face nos permitem executar modelos com demos muito simples, mas e se a demo quebrar? Ou se o usuário a deletar? Por isso, criei contêineres docker com alguns espaços interessantes, para poder usá-los localmente, aconteça o que acontecer. Na verdade, se você clicar em qualquer botão de visualização de projeto, ele pode levá-lo a um espaço que não funciona.

Flow edit

Flow edit Flow edit

Edite imagens com este modelo de Flow. Baseado em SD3 ou FLUX, você pode editar qualquer imagem e gerar novas

FLUX.1-RealismLora

FLUX.1-RealismLora FLUX.1-RealismLora
Ver todos os contêineres -->
>_ Disponível para projetos

Tem um projeto com IA?

Vamos conversar.

maximofn@gmail.com

Especialista em Machine Learning e Inteligência Artificial. Desenvolvo soluções com IA generativa, agentes inteligentes e modelos personalizados.

Você quer treinar seu modelo com esses datasets?

short-jokes-dataset

HuggingFace

Dataset com piadas em inglês

Uso: Fine-tuning de modelos de geração de texto humorístico

231K linhas 2 colunas 45 MB
Ver no HuggingFace →

opus100

HuggingFace

Dataset com traduções de inglês para espanhol

Uso: Treinamento de modelos de tradução inglês-espanhol

1M linhas 2 colunas 210 MB
Ver no HuggingFace →

netflix_titles

HuggingFace

Dataset com filmes e séries da Netflix

Uso: Análise de catálogo Netflix e sistemas de recomendação

8.8K linhas 12 colunas 3.5 MB
Ver no HuggingFace →
Ver mais datasets -->