Como o Deep Agents gerencia o contexto: descarregamento e sumarização
Autoria: LangChain · Assistir no YouTube
Vídeo de autoria do canal indicado, não da IANIA; todos os direitos pertencem ao criador. Transcrição, resumo e tradução gerados automaticamente; o conteúdo no idioma original é preservado na versão em idioma original.
Idioma original: inglês
Vídeo original: How Deep Agents Manages Context: Offloading and Summarization · Canal: LangChain · 04:45 · Assistir no YouTube
Tópicos: Agentes de IA, Engenharia de prompts e contexto, Ferramentas de desenvolvimento com IA
Agentes acumulam instruções, resultados de ferramentas e outros dados durante tarefas longas, o que pode causar context rot e prejudicar o raciocínio. O harness do Deep Agents aplica técnicas de engenharia de contexto para evitar que informações desnecessárias entrem na context window e para gerenciar o conteúdo que já está nela. O descarregamento salva resultados extensos fora do contexto e mostra ao modelo apenas uma prévia; a sumarização compacta o histórico quando o uso de tokens ultrapassa um limite configurável. Juntas, essas técnicas preservam o acesso ao histórico enquanto reduzem o conteúdo enviado ao modelo.
Pontos-chave
Seção intitulada “Pontos-chave”- O acúmulo de histórico, ruído e resultados de ferramentas pode prejudicar o raciocínio e a precisão do modelo; esse problema é chamado de context rot.
- As técnicas de engenharia de contexto podem evitar a entrada de informações desnecessárias na context window ou gerenciar e filtrar o conteúdo que já está nela.
- O descarregamento salva resultados extensos de ferramentas em um sistema de arquivos virtual e deixa o conteúdo completo disponível para consulta posterior.
- Para resultados de ferramentas, o modelo recebe uma prévia com as primeiras e as últimas linhas e pode consultar o restante com a ferramenta de leitura de arquivo.
- Mensagens humanas longas também podem ser descarregadas; o exemplo usa um limite de 50.000 tokens.
- A sumarização é verificada antes de cada chamada ao modelo e, por padrão, é acionada quando o uso chega a 85%, valor que pode ser ajustado.
- O conteúdo acima da linha de corte é resumido e salvo no histórico da conversa; as mensagens abaixo da linha são acrescentadas literalmente ao resumo.
- Skills, subagents e memória de longo prazo também ajudam a manter informações fora da context window até que sejam necessárias.
Capítulos
Seção intitulada “Capítulos”| Início | Capítulo | Resumo |
|---|---|---|
| 00:01 | O problema do acúmulo de contexto | O vídeo explica como o acúmulo de informações em tarefas longas pode causar context rot e apresenta o papel do harness na gestão do contexto. |
| 01:03 | Offloading de informações extensas | O Deep Agents salva resultados grandes de ferramentas e mensagens longas fora do contexto, fornecendo ao modelo apenas uma prévia. |
| 02:37 | Sumarização do contexto acumulado | A sumarização reduz o conteúdo da context window quando o uso de tokens ultrapassa um limite e preserva as mensagens no histórico da conversa. |
| 04:13 | Como as técnicas trabalham juntas | O vídeo compara offloading e sumarização e menciona skills, subagents e memória de longo prazo como outras técnicas do Deep Agents. |
Citações
Seção intitulada “Citações”Chamamos isso de context rot. — 00:01
O modelo vê apenas as primeiras e as últimas linhas e pode percorrer o resultado completo se precisar. — 01:35
A sumarização pode condensar toda a context window do agente em uma versão compacta do que aconteceu até então. — 02:37
O offloading intercepta entradas antes de elas chegarem ao contexto, enquanto a sumarização atua sobre o conteúdo que já está na context window. — 04:13
Conceitos e entidades
Seção intitulada “Conceitos e entidades”- context rot (conceito): Degradação do raciocínio e da precisão associada ao acúmulo de histórico, ruído e resultados de ferramentas no contexto do modelo.
- context engineering (conceito): Conjunto de técnicas para controlar quais informações entram na context window e como o conteúdo existente é gerenciado.
- offloading (conceito): Técnica que salva informações extensas fora do contexto e fornece ao modelo uma prévia, mantendo o conteúdo completo recuperável.
- summarization (conceito): Técnica que condensa o conteúdo acumulado na context window quando o uso de tokens atinge um limite.
- Deep Agents (ferramenta): Harness que oferece técnicas de engenharia de contexto, incluindo offloading, summarization, skills, subagents e memória de longo prazo.
- LangChain (empresa): Empresa responsável pelo canal que publicou o vídeo.
- LangChain Academy (ferramenta): Plataforma mencionada no vídeo como local de um curso on-line gratuito e individualizado.
Tradução completa (pt-BR)
Seção intitulada “Tradução completa (pt-BR)”00:01 Se você já estudou às pressas para uma prova na noite anterior, sabe como é. Quanto mais você estuda, mais os capítulos anteriores começam a escapar da memória. Bem, os agents têm o mesmo problema. À medida que assumem tarefas mais longas, acumulam cada vez mais informações, como instruções e resultados de ferramentas. E, eventualmente, isso se torna informação demais para caber confortavelmente na context window de um modelo. Quanto mais histórico, ruído e resultados de ferramentas um modelo carrega, pior tende a ficar seu raciocínio e sua precisão. Chamamos isso de deterioração do contexto. Então, o que está acontecendo aqui? Para simplificar, um agent é apenas um modelo
00:32 mais um harness. E o trabalho do harness é fornecer ao modelo o contexto certo na hora certa. As técnicas de engenharia de contexto à disposição do agent para lidar com a deterioração do contexto se dividem principalmente em duas categorias. A primeira consiste em impedir que informações desnecessárias entrem na context window desde o início. A segunda trata de gerenciar e filtrar o que já está na context window. É o harness que aplica esses métodos estrategicamente para fornecer ao modelo o contexto certo na hora certa para a tarefa em questão. Agora, configurar
01:03 um harness que faça isso bem é mais fácil falar do que fazer e dá bastante trabalho. O harness do Deep Agents oferece essas técnicas de engenharia de contexto prontas para usar, com descarregamento, sumarização, skills, subagents e memória de longo prazo. Recapitulando, a primeira linha de defesa é impedir que informações desnecessárias entrem na context window desde o início. Seja seletivo nesse processo de recuperação. A segunda é gerenciar e filtrar o que já está na context window para controlar o que é enviado constantemente ao modelo. O descarregamento é um exemplo de
01:35 interceptação de entradas antes que elas entrem no contexto. Digamos que estamos conversando com nosso agent e pedimos que ele consulte algo. Ele chama uma ferramenta para fazer isso, query_db, e podemos ver que o resultado da ferramenta ao consultar esse banco de dados é enorme: mais de 20.000 tokens. O resultado da ferramenta é então enviado a um sistema de arquivos virtual e salvo em uma pasta chamada large_tool_results. Isso significa que a resposta completa pode sempre ser recuperada, mas não enviamos tudo ao modelo. O modelo vê apenas as primeiras e as últimas linhas e pode percorrer o resultado completo com a ferramenta de leitura de arquivos
02:06 se precisar. Mas o descarregamento funciona com mais do que apenas resultados de ferramentas. Também funciona com mensagens de pessoas, como um documento de visto longo ou uma transcrição. E o limite aqui é um pouco maior: 50.000 tokens. Isso é salvo em conversation_history, em vez de large_tool_results, mas o princípio é o mesmo. O modelo recebe uma prévia. E é assim que tentamos manter o máximo possível de informações desnecessárias fora da context window. E o processo é o mesmo.
02:37 No entanto, apesar de nossos melhores esforços para descarregar chamadas verbosas de ferramentas, o contexto ainda começa a se acumular ao longo de uma execução longa. É aí que entra a sumarização. A sumarização pode ser usada para condensar toda a context window do nosso agent em uma versão compacta do que aconteceu até então, basicamente dando a ele espaço para continuar trabalhando em outras coisas. Aqui está nossa context window. E esse limite de 85% é apenas o valor padrão. Você pode ajustá-lo para que a sumarização seja acionada quando o uso de tokens atingir um limite menor ou maior. Uma verificação é executada logo antes de cada chamada ao modelo para ver se
03:08 a sumarização é necessária. À medida que nossas mensagens se acumulam, você pode ver a barra de uso de tokens à direita aumentar. O motivo de ela passar dos 85% aqui é que a verificação é executada logo antes de cada chamada ao modelo, e um turno com várias chamadas de ferramentas pode adicionar bastante contexto entre as chamadas ao modelo. Agora, tudo que está acima da linha de corte de retenção é resumido, e você pode ver que a barra de uso de tokens caiu bastante. Essas mensagens, porém, não se perdem. Assim como no descarregamento, elas
03:38 são salvas no histórico da conversa e podem ser acessadas se necessário. Mas agora apenas um resumo é enviado ao modelo. Em seguida, as mensagens abaixo da linha de corte de retenção são anexadas ao resumo sem alterações, e esse ciclo se repete. Agora você pode ver que nossa context window foi resumida uma vez. Continuamos conversando com nosso agent, e as informações voltam a se acumular até que o processo se repita. Dessa vez, o resumo inclui o resumo anterior, e o ciclo continua.
04:13 Recapitulando, o descarregamento intercepta as entradas antes que elas entrem no contexto, enquanto a sumarização atua sobre o conteúdo que já está na context window. Assim, o uso de tokens no contexto vai aumentando, e o pequeno salto é o descarregamento. Um resultado grande chegou quando sua prévia entrou no contexto, e a sumarização reduz o acúmulo gradual inevitável. Essas duas técnicas funcionam juntas. O descarregamento e a sumarização não são as únicas técnicas de engenharia de contexto que vêm prontas para usar com o Deep Agents. Skills, subagents e memória de longo prazo trabalham para
04:45 manter o contexto fora da context window até que ele seja absolutamente necessário e relevante. Se tiver interesse em saber mais, recomendo muito que confira nosso curso online gratuito e individualizado na LangChain Academy.
Transcrição original
[00:01] If you’ve ever crammed for an exam the night before, then you know the feeling. The more you study, the more the earlier chapters start to slip. Well, agents have the same problem. As they take on longer tasks, they take on more and more information like instructions and tool results. And eventually, this becomes far too much context to comfortably fit in a model’s context window. And the more history, noise, and tool output a model carries, the worse its reasoning and accuracy tend to get. We call this context rot. So, what’s going on here? To simplify, an agent is just a model
[00:32] plus a harness. And the job of the harness is to get the model the right context at the right time. The context engineering techniques at the agent’s disposal to address context rot fall primarily into two categories. The first of which is preventing unnecessary information from even entering the context window in the first place. And the second is about managing and filtering what’s already in the context window. It’s the harness that applies these methods strategically to get the model the right context at the right time for the given task. Now, wiring up
[01:03] a harness that does this well is easier said than done and a lot of work. The Deep Agents harness offers these context engineering techniques out of the box with offloading, summarization, skills, subagents, and long-term memory. To recap, the first line of defense is to prevent unnecessary information from even entering the context window in the first place. be selective in this retrieval process. The second is to manage and filter what’s already in the context window to control what gets constantly sent to the model. Offloading is an example of
[01:35] intercepting inputs before they enter context. Say we’re chatting with our agent and we ask it to query something. It calls a tool to do that, query_db, and we can see that the tool result from querying this database is huge, over 20,000 tokens. The tool result is then sent to a virtual file system and saved in a folder called large_tool_results. This means the full answer is always recoverable, but we do not send everything to the model. The model sees just the first and last few lines and can page through the full result with
[02:06] the read file tool if it needs to. Offloading works with more than just tool results, though. It works with human messages, too, like a long visa document or transcript. And the threshold here is slightly higher at 50,000 tokens. This is saved to conversation_history instead of large tool results, but it’s the same principle. The model gets a preview. And this is how we try to keep as much unnecessary information out of the context window as possible. And it’s the same process.
[02:37] However, despite our best attempts to offload verbose tool calls, context will nonetheless begin to build up over a long run. This is where summarization steps in. Summarization can be used to condense our agent’s entire context window into a compacted version of what has happened so far to basically give it space to keep working on other things. Here’s our context window. And this 85% threshold is just the default value. You can adjust this so that summarization kicks in at a lower or higher token usage threshold. A check runs right before every model call to see if
[03:08] summarization is necessary. As our messages pile up, you can see the token usage bar on the right increasing. Now, the reason it actually overshoots 85% here is because the check runs right before each model call and a turn with several tool calls can add a lot of context in between model calls. Now, everything above the keep cutoff line gets summarized and you can see that the token usage bar went way down. Those messages are not lost though. Similar to offloading, they
[03:38] are saved in conversation history and can be accessed if needed. But now only a summary is sent to the model. Then the messages from below the keep cutoff line are appended verbatim to the summary and this loops. So now you can see that our context window has been summarized once and we keep chatting with our agent and information accumulates again until the process repeats. This time the summary includes the previous summary and it keeps looping.
[04:13] To recap, offloading intercepts inputs before they enter context, whereas summarization acts on content already in the context window. So token usage in context is growing and the small bump is offloading. A large result came in when its preview landed in context and summarization reduces the inevitable gradual buildup. These two work together. Now, offloading and summarization aren’t the only context engineering techniques that come out of the box with Deep Agents. Skills, subagents, and long-term memory all work to
[04:45] keep context out of the context window until it’s absolutely necessary and relevant. If you’re interested in learning more, I highly recommend you check out our free online self-paced course on LangChain Academy.