Nos dois posts anteriores descrevi a inflação de contexto como problema de custo e as técnicas de compactação que reduzem volume antes de enviar ao modelo. Compactação opera sobre o que já foi decidido manter. Pra mim, poda e priorização são anteriores a essa decisão: definem o que entra e o que fica de fora quando o orçamento de tokens é menor do que a soma do que o agente poderia teoricamente carregar. Num agente de longa duração esse é o problema dominante, até porque o histórico cresce a cada turno e a context window, por maior que seja, permanece finita em termos operacionais.
Os 200K nominais padrão do Claude Sonnet 4 ou o 1M do GPT-4.1 (e do próprio Sonnet 4 em modo estendido) tendem a ser interpretados como capacidade utilizável, quando na prática funcionam como limite físico a partir do qual o sistema começa a falhar. Bem antes de atingir esse teto, dois efeitos aparecem com regularidade. O primeiro é o lost in the middle, fenômeno documentado desde 2023 e reconfirmado em benchmarks posteriores, em que a acurácia de recall degrada significativamente para informação posicionada no meio do contexto, mesmo em modelos treinados especificamente para contextos longos. O segundo é o custo quadrático do mecanismo de atenção, que faz com que dobrar o contexto quadruplique a computação de atenção e eleve a latência de forma não linear. Na minha avaliação, a janela útil de um agente é uma fração da janela nominal, e essa fração precisa ser administrada com critério de alocação.
Poda é a decisão sobre o que remover. Priorização é a decisão sobre a ordem em que o que sobra é apresentado. Na minha análise as duas operações são inseparáveis, até porque compartilham a mesma função de scoring, que em agentes bem projetados se organiza em torno de três vetores. A recência captura o fato de que os últimos três a cinco turnos carregam quase toda a coerência imediata da conversa e não podem ser comprimidos sem perda de continuidade. A importância funciona como filtro estrutural: identifica os elementos âncora do fluxo (system prompt, definições de ferramentas, schemas, restrições explícitas do usuário, decisões arquiteturais já tomadas), que devem receber status protegido e permanecer independentemente do tamanho do contexto. Quanto à relevância, ela mede a similaridade semântica entre cada elemento candidato e a query atual, tipicamente via embedding e cosine similarity, e define o que entra do histórico mais antigo quando ainda há espaço disponível no budget.
O budget de tokens por chamada é o instrumento que transforma esse scoring em decisão concreta. O agente opera com um teto fixo, bem abaixo da janela nominal, tipicamente entre 30% e 50% da capacidade do modelo, e distribui esse teto entre categorias com limites próprios (system prompt, definições de ferramentas, histórico conversacional recente, resultados de tool calls relevantes, retrieval), cada uma com sua própria fatia reservada. Quando uma categoria estoura seu limite, o scoring decide o que sai de dentro dela, sem invadir o orçamento das outras. Essa disciplina evita o padrão comum em que um único tool result grande consome o espaço que deveria pertencer ao histórico conversacional, degradando a continuidade da interação sem que o time perceba.
A ordenação final do contexto explora as curvas de atenção do modelo. Itens críticos recebem posições de início ou de fim do prompt, porque é nessas regiões que a acurácia de recall é maior. Itens de relevância marginal são colocados no meio, onde a degradação por lost in the middle afeta menos o resultado final, já que são justamente os itens de menor valor informacional. Pra mim essa inversão de prioridade posicional é o ponto-chave: garante que itens de alto valor ocupem as regiões onde o recall do modelo é mais forte. Em pipelines de RAG com reranking, a ordenação do retriever precisa ser reinterpretada antes da injeção, até porque ordenar chunks por score decrescente do topo ao fim do prompt coloca o segundo mais relevante no meio, exatamente onde o modelo olha menos.
Em agentes com horizonte longo, onde a interação se estende por dezenas ou centenas de turnos, a poda opera como processo contínuo que acompanha cada nova rodada. A cada turno o scoring é recalculado: itens que eram relevantes deixam de ser e ganham um destino reduzido, seja como linha de sumário (no caso de decisões tomadas há cinquenta turnos), seja como referência compacta (no caso de resultados de ferramentas antigas). O contexto do agente passa a ter estrutura semelhante a um working set de sistema operacional, com a separação entre itens quentes e itens frios e uma política explícita de evicção governando essa separação. A analogia é operacional e não meramente ilustrativa, já que o problema enfrentado é o mesmo que o sistema operacional resolve há décadas.
O erro recorrente em sistemas que não aplicam essa disciplina é tratar o contexto como log cronológico, em que tudo que foi dito permanece até a janela acabar. Esse modelo mental produz agentes que custam mais e, paradoxalmente, lembram pior do que precisariam, até porque a informação útil passa a competir com ruído acumulado pelo simples fato de não ter sido removido. Pra mim a gestão ativa de contexto é a diferença entre um agente que opera em produção com previsibilidade e um agente que degrada à medida que a conversa avança.