Técnicas de Otimização de Contexto
A otimização de contexto estende a capacidade efetiva de janelas de contexto limitadas por meio de compressão estratégica, mascaramento, cache e particionamento. Uma otimização eficaz aumenta a capacidade útil sem exigir modelos maiores ou janelas mais longas — mas apenas quando aplicada com disciplina de medição. As técnicas abaixo estão ordenadas por impacto e risco.
Quando Ativar
Ative esta skill quando:
- Orçamentos de contexto ou custos de tokens restringem a complexidade da tarefa
- O mascaramento de observações pode substituir saídas verbosas de ferramentas por referências recuperáveis
- A taxa de acerto do prefixo ou cache KV precisa de melhoria
- O escopo de recuperação pode reduzir o contexto carregado irrelevante
- O particionamento de contexto pode estender a capacidade efetiva entre agentes
- Gatilhos de orçamento são necessários para mascaramento, compactação ou particionamento
Não ative esta skill para trabalhos adjacentes de outras skills:
- Explicar por que a atenção ou as janelas de contexto se comportam dessa maneira:
context-fundamentals. - Diagnosticar perda no meio, envenenamento, distração, confusão ou conflito ativos:
context-degradation. - Projetar um resumo de handoff estruturado para uma conversa longa:
context-compression. - Armazenar saídas grandes, planos ou logs como arquivos:
filesystem-context. - Reescrever o próprio contexto iniciado pelo modelo e seu custo de re-prefill:
self-managed-context.
Conceitos Principais
Aplique quatro estratégias primárias nesta ordem de prioridade:
-
Otimização de cache KV — Reordene e estabilize a estrutura do prompt para que o mecanismo de inferência reutilize tensores Key/Value armazenados em cache. Esta é a otimização mais barata quando o runtime suporta cache de prefixo: baixo risco de qualidade, economia imediata de custo e latência. Aplique-a primeiro quando existirem prefixos estáveis.
-
Mascaramento de observações — Substitua saídas verbosas de ferramentas por referências compactas quando seu propósito já foi atendido. As saídas de ferramentas podem dominar as trajetórias do agente (claim-context-optimization-tool-output-dominance), então o mascaramento geralmente produz os maiores ganhos de capacidade. O conteúdo original permanece recuperável se necessário downstream.
-
Compactação — Resuma o contexto acumulado quando a utilização exceder 70%, depois reinicialize com o resumo. Isso destila o conteúdo da janela preservando o estado crítico da tarefa. A compactação é com perda — aplique-a após o mascaramento já ter removido o volume de baixo valor.
-
Particionamento de contexto — Divida o trabalho entre subagentes com contextos isolados quando uma única janela não consegue conter o problema completo. Cada subagente opera em um contexto limpo focado em sua subtarefa. Reserve isso para tarefas onde o contexto estimado excede 60% do limite da janela, porque a sobrecarga de coordenação é real.
O princípio fundamental: a qualidade do contexto importa mais que a quantidade. Toda otimização preserva o sinal enquanto reduz o ruído. Meça antes de otimizar, depois meça o efeito da otimização.
Tópicos Detalhados
Estratégias de Compactação
Acione a compactação quando a utilização do contexto exceder 70%: resuma o contexto atual e, em seguida, reinicialize com o resumo. Isso destila o conteúdo da janela de forma de alta fidelidade, permitindo continuidade com degradação mínima de desempenho. Priorize a compactação das saídas de ferramentas primeiro (elas consomem 80%+ dos tokens), depois as rodadas de conversa antigas e, em seguida, os documentos recuperados. Nunca comprima o prompt do sistema — ele ancora o comportamento do modelo e sua remoção causa degradação imprevisível.
Preserve diferentes elementos por tipo de mensagem:
- Saídas de ferramentas: Extraia descobertas principais, métricas, códigos de erro e conclusões. Remova saída bruta verbosa, rastreamentos de pilha (a menos que a depuração esteja em andamento) e cabeçalhos padrão.
- Rodadas de conversa: Retenha decisões, compromissos, preferências do usuário e mudanças de contexto. Remova preenchimento, cortesias e idas e vindas exploratórias que levaram a uma conclusão já capturada.
- Documentos recuperados: Mantenha afirmações, fatos e pontos de dados relevantes para a tarefa ativa. Remova evidências de suporte e elaboração que serviram a um propósito de raciocínio único.
Almeje 50-70% de redução de tokens com menos de 5% de degradação de qualidade. Se a compactação exceder 70% de redução, audite o resumo quanto à perda de informações críticas — a compactação excessivamente agressiva é o modo de falha mais comum.
Mascaramento de Observações
Masque observações seletivamente com base na atualidade e relevância contínua — não uniformemente. Aplique estas regras:
- Nunca mascare: Observações críticas para a tarefa atual, observações da rodada mais recente, observações usadas em cadeias de raciocínio ativas e saídas de erro quando a depuração estiver em andamento.
- Masque após 3+ rodadas: Saídas verbosas cujos pontos principais já foram extraídos para o fluxo da conversa. Substitua por uma referência compacta:
[Obs:{ref_id} elidida. Resumo: {summary}. Conteúdo completo recuperável.] - Sempre masque imediatamente: Saídas repetidas/duplicadas, cabeçalhos e rodapés padrão, saídas já resumidas anteriormente na conversa.
O mascaramento deve atingir 60-80% de redução em observações mascaradas com menos de 2% de impacto na qualidade. A chave é manter a recuperabilidade — armazene o conteúdo completo externamente e mantenha o ID de referência no contexto para que o agente possa solicitar o original, se necessário.
Otimização de Cache KV
Maximize os acertos de cache de prefixo estruturando os prompts de modo que o conteúdo estável ocupe o prefixo e o conteúdo dinâmico apareça no final. O cache KV armazena tensores Key e Value computados durante a inferência; quando solicitações consecutivas compartilham um prefixo idêntico, os tensores em cache são reutilizados, economizando custo e latência.
Aplique esta ordenação em cada prompt:
- Prompt do sistema (mais estável — nunca muda dentro de uma sessão)
- Definições de ferramentas (estável entre solicitações)
- Modelos reutilizados com frequência e exemplos few-shot
- Histórico da conversa (cresce, mas compartilha prefixo com rodadas anteriores)
- Consulta atual e conteúdo dinâmico (menos estável — sempre por último)
Desenhe prompts para estabilidade de cache: remova carimbos de data/hora, contadores de sessão e IDs de solicitação do prompt do sistema. Mova metadados dinâmicos para uma mensagem de usuário separada ou resultado de ferramenta onde eles não quebrem o prefixo. Mesmo uma única alteração de espaço em branco no prefixo invalida todo o bloco em cache downstream dessa alteração. A mesma regra se aplica a qualquer edição de compactação ou mascaramento aplicada ao histórico anterior: seu custo é o texto que a segue, portanto, agrupe tais edições e prefira-as perto do final do contexto.
Almeje 70%+ de taxa de acerto de cache para cargas de trabalho estáveis. Em escala, isso se traduz em 50%+ de redução de custo e 40%+ de redução de latência em tokens em cache.
Particionamento de Contexto
Particione o trabalho entre subagentes quando um único contexto não puder conter o problema completo sem acionar compactação agressiva. Cada subagente opera em um contexto limpo e focado para sua subtarefa e, em seguida, retorna um resultado estruturado para um agente coordenador.
Planeje o particionamento quando o contexto da tarefa estimado exceder 60% do limite da janela. Decomponha a tarefa em subtarefas independentes, atribua cada uma a um subagente e agregue os resultados. Valide se todas as partições foram concluídas antes de mesclar, mescle resultados compatíveis e aplique sumarização se a saída agregada ainda exceder o orçamento.
Esta abordagem alcança separação de preocupações — o contexto detalhado de busca permanece isolado dentro dos subagentes enquanto o coordenador foca na síntese. No entanto, a coordenação tem um custo real de tokens: o prompt do coordenador, a agregação de resultados e o tratamento de erros consomem tokens. Somente particione quando a economia exceder essa sobrecarga.
Gerenciamento de Orçamento
Aloque orçamentos explícitos de tokens entre categorias de contexto antes do início da sessão: prompt do sistema, definições de ferramentas, documentos recuperados, histórico de mensagens, saídas de ferramentas e um buffer reservado (5-10% do total). Monitore o uso em relação ao orçamento continuamente e acione a otimização quando qualquer categoria exceder sua alocação ou a utilização total ultrapassar 70%.
Use otimização baseada em gatilho em vez de otimização periódica. Monitore estes sinais:
- Utilização de tokens acima de 80% — acione compactação
- Indicadores de degradação de atenção (repetição, instruções perdidas) — acione mascaramento + compactação
- A pontuação de qualidade cai abaixo da linha de base — audite a composição do contexto antes de otimizar
Orientação Prática
Estrutura de Decisão de Otimização
Selecione a técnica de otimização com base no que domina o contexto:
| Composição do Contexto | Primeira Ação | Segunda Ação |
|---|---|---|
| Saídas de ferramentas dominam (>50%) | Mascaramento de observações | Compactação das rodadas restantes |
| Documentos recuperados dominam | Sumarização | Particionamento se os docs forem independentes |
| Histórico de mensagens domina | Compactação com preservação seletiva | Particionamento para novas subtarefas |
| Múltiplos componentes contribuem | Otimização de cache KV primeiro, depois mascaramento + compactação em camadas | |
| Próximo do limite com depuração ativa | Masque apenas saídas de ferramentas resolvidas — preserve detalhes de erro |
Metas de Desempenho
Acompanhe estas métricas para validar a eficácia da otimização:
- Compactação: 50-70% de redução de tokens, <5% de degradação de qualidade, <10% de sobrecarga de latência da própria etapa de compactação
- Mascaramento: 60-80% de redução em observações mascaradas, <2% de impacto na qualidade, sobrecarga de latência próxima de zero
- Otimização de cache: 70%+ de taxa de acerto para cargas de trabalho estáveis, 50%+ de redução de custo, 40%+ de redução de latência
- Particionamento: Economia líquida de tokens após contabilizar a sobrecarga do coordenador; o ponto de equilíbrio normalmente requer 3+ subtarefas
Itere sobre as estratégias com base nos resultados medidos. Se uma técnica de otimização não melhorar mensuravelmente a métrica alvo, remova-a — a própria maquinaria de otimização consome tokens e adiciona latência.
Exemplos
Exemplo 1: Gatilho de Compactação
if context_tokens / context_limit > 0.8:
context = compact_context(context)
Exemplo 2: Mascaramento de Observações
if len(observation) > max_length:
ref_id = store_observation(observation)
return f"[Obs:{ref_id} elidida. Resumo: {extract_key(observation)}]"
Exemplo 3: Ordenação Amigável ao Cache
# Conteúdo estável primeiro
context = [system_prompt, tool_definitions] # Cacheável
context += [reused_templates] # Reutilizável
context += [unique_content] # Único
Exemplo 4: Política de otimização acionada por orçamento
budgets:
tool_outputs: 35%
message_history: 30%
retrieved_documents: 20%
reserved_buffer: 15%
triggers:
tool_outputs_over_budget: mask resolved observations
total_context_over_70_percent: compact message history
repeated_irrelevant_retrievals: tighten retrieval scope
Diretrizes
- Meça antes de otimizar — conheça seu estado atual
- Aplique o mascaramento antes da compactação — remova o volume de baixo valor primeiro, depois resuma o que resta
- Projete para estabilidade de cache com prompts consistentes
- Particione antes que o contexto se torne problemático
- Monitore a eficácia da otimização ao longo do tempo
- Equilibre a economia de tokens com a preservação da qualidade
- Teste a otimização em escala de produção
- Implemente degradação graciosa para casos extremos
Armadilhas
-
Espaços em branco quebram o cache KV: Mesmo uma única alteração de espaço em branco ou nova linha no prefixo do prompt invalida todo o bloco de cache KV downstream desse ponto. Fixe prompts do sistema como strings imutáveis — não interpole carimbos de data/hora, números de versão ou IDs de sessão neles. Compare modelos de prompt byte por byte entre implantações.
-
Carimbos de data/hora em prompts do sistema destroem as taxas de acerto de cache: Incluir
Data atual: {today}ou conteúdo dinâmico semelhante no prompt do sistema força uma perda total de cache a cada novo dia (ou a cada solicitação, se estiver usando hora do dia). Mova metadados dinâmicos para uma mensagem de usuário ou resultado de ferramenta separado anexado após o prefixo estável. -
Compactação sob pressão perde estado crítico: Quando o modelo que executa a compactação está ele próprio sob pressão de contexto (>85% de utilização), sua qualidade de sumarização degrada — ele omite metas da tarefa, descarta restrições do usuário e achata o estado cheio de nuances. Acione a compactação em 70-80%, não em 90%+. Se a compactação precisar ser feita tarde, use uma chamada de modelo separada com um contexto limpo contendo apenas o material a ser resumido.
-
Mascarar saídas de erro quebra loops de depuração: O mascaramento excessivamente agressivo oculta mensagens de erro, rastreamentos de pilha e detalhes de falha que o agente precisa em rodadas subsequentes para diagnosticar e corrigir problemas. Durante a depuração ativa (erro nas últimas 3 rodadas), suspenda o mascaramento para todas as observações relacionadas a erros até que o problema seja resolvido.
-
A sobrecarga de particionamento pode exceder a economia: Cada subagente requer seu próprio prompt do sistema, definições de ferramentas e mensagens de coordenação. Para tarefas com menos de 3 subtarefas independentes, a sobrecarga de coordenação geralmente excede a economia de contexto. Estime o total de tokens (coordenador + todos os subagentes) antes de se comprometer com o particionamento.
-
Pico de custo de perda de cache após alterações de implantação: Reordenar ferramentas, reformular o prompt do sistema ou alterar exemplos few-shot entre implantações invalida todo o cache de prefixo, causando um pico de custo temporário de 2 a 5x até que o novo cache seja aquecido. Implemente alterações de prompt gradualmente e monitore a taxa de acerto de cache durante as janelas de implantação.
-
Compactação cria falsa confiança em resumos desatualizados: Uma vez que o contexto é compactado, o resumo parece autoritário, mas pode refletir um estado desatualizado. Se a tarefa evoluiu desde a compactação (novos requisitos do usuário, suposições corrigidas), o resumo carrega silenciosamente informações desatualizadas. Após a compactação, revalide o resumo em relação à meta da tarefa atual antes de prosseguir.
Integração
Esta skill possui táticas de eficiência de tokens e política de orçamento. Skills adjacentes possuem diagnóstico, armazenamento e arquitetura:
context-fundamentals: modelos mentais para entender por que a qualidade do contexto e a colocação da atenção são importantes.context-degradation: diagnóstico quando a qualidade da saída já caiu.context-compression: sumarização com perda e estratégia de handoff.filesystem-context: offloading baseado em arquivo para saídas e logs completos.multi-agent-patterns: particionamento de trabalho em contextos de agente isolados.latent-briefing: retenção seletiva de KV em orquestra
…
[truncado para tradução]