Context Length Exceeded: reduza a solicitação e verifique o resultado
Meça cada componente do contexto, remova duplicações e histórico irrelevante, reserve saída e confirme que os fatos necessários foram mantidos.
Conteúdo
Context Length Exceeded: reduza a solicitação e verifique o resultado
Não corrija Context length exceeded apagando aleatoriamente metade do prompt. Primeiro, calcule o orçamento total, identifique o modelo e meça cada componente da solicitação. Em seguida, remova duplicações mecânicas, histórico irrelevante e resultados grandes de ferramentas. Ao reenviar, verifique tanto o desaparecimento do erro quanto a preservação dos fatos obrigatórios e da resposta completa.
O que ocupa a janela de contexto
Contexto é a memória de trabalho de uma solicitação inteira, não apenas o último prompt do usuário. De forma simplificada:
system instructions
+ conversation history
+ current message
+ images and documents
+ tool definitions
+ tool results
+ output / thinking budget
= total context usage
A documentação da Anthropic sobre janelas de contexto inclui explicitamente o prompt do sistema, todas as mensagens, imagens, documentos, definições e resultados de ferramentas e a resposta gerada. Prompt caching altera o custo dos tokens reutilizados, mas não os remove da janela.
Não grave no código um “limite universal”: a janela de contexto e o comportamento ao excedê-la dependem do modelo e da API escolhidos. Confira a ficha atual do modelo no dia da configuração.
Encontre o componente mais pesado
| Componente | O que medir | Redução segura |
|---|---|---|
| Instruções do sistema | Regras repetidas e exemplos longos | Unir duplicações e manter as restrições obrigatórias |
| Histórico | Tokens por mensagem e ramificações antigas | Remover ramificações irrelevantes ou substituí-las por um resumo verificável |
| Arquivos e trechos de RAG | Tamanho de cada documento, duplicações e trechos pouco relevantes | Reduzir top_k, deduplicar e enviar apenas seções necessárias |
| Definições de ferramentas | Ferramentas não usadas e descrições extensas | Enviar apenas as ferramentas necessárias nesta etapa |
| Resultados de ferramentas | JSON completo, logs, HTML, base64 e respostas repetidas | Manter campos, links e identificadores necessários; guardar dados grandes fora do prompt |
| Orçamento de saída | max_tokens e orçamento de raciocínio | Reservar uma margem realista ou dividir um resultado extenso em etapas |
Claude oferece uma API de contagem de tokens, capaz de considerar mensagens e ferramentas antes do envio. Com outro provedor, use o contador dele se houver. Um tokenizer local ajuda a alertar cedo, mas sua estimativa não é uma contagem garantida no servidor de outro modelo.
Abra a documentação atual da API BetterToken, faça um request de teste curto e localize-o no Dashboard. Compare tokens de entrada, saída e cache antes e depois de reduzir o contexto: menos tokens de entrada confirmam que a correção chegou à chamada real. O Dashboard não mostra o prompt completo nem substitui a contagem antes do envio.
Reduza o tamanho sem perder significado
1. Remova duplicações mecânicas
Procure regras de sistema repetidas, o mesmo arquivo em várias mensagens, trechos RAG duplicados, esquemas colados novamente e logs completos repetidos. Esta é a etapa mais segura, pois diminui o volume sem alterar a tarefa.
2. Remova o histórico irrelevante
Separe fatos duradouros do fluxo temporário da conversa. Preserve objetivos, decisões aceitas, restrições obrigatórias e questões em aberto. Raciocínios antigos, alternativas rejeitadas e resultados de ferramentas já processados podem ser removidos ou condensados em um resumo estruturado.
Um resumo ruim diz “discutimos a integração”. Um útil registra o endpoint escolhido, a versão do esquema, as restrições aceitas, os fatos confirmados e o próximo passo.
3. Compacte arquivos, RAG e resultados de ferramentas
Envie seções relevantes em vez do documento inteiro. Em um resultado de ferramenta, mantenha os campos necessários à etapa seguinte em vez de toda a resposta HTTP ou todo o log. Não descarte fontes ou dados obrigatórios apenas para fazer a solicitação caber; divida o trabalho em etapas verificáveis.
4. Deixe espaço para a resposta
Entrada e saída compartilham o mesmo orçamento. Se a solicitação quase preenche a janela, o modelo talvez não tenha espaço para uma resposta completa. Reduza a entrada opcional, defina um orçamento de saída realista ou divida o resultado. Não corte fatos críticos antes das duplicações mecânicas.
5. Troque de modelo somente depois de medir
Um modelo com contexto maior pode ser adequado para um documento que não pode ser dividido com segurança. Mudar para uma janela maior sem remover duplicações apenas adia o próximo erro e pode diminuir a densidade de informação.
Verificação mínima antes do envio
components = count_by_section(request)
estimated_input = sum(components)
reserved_output = requested_output_budget
if estimated_input + reserved_output approaches current_model_window:
remove exact duplicates
drop irrelevant history
compact tool results and retrieved chunks
count again
send only after required facts and constraints remain present
approaches não foi substituído deliberadamente por uma porcentagem fixa. A margem necessária depende da precisão do contador, do modelo, do raciocínio e do comportamento da API específica.
Como verificar a correção
Compare a nova solicitação com esta lista:
- A API não retorna mais
context length exceedednemprompt is too long. - A resposta termina normalmente, sem ser cortada pelo orçamento de saída.
- A resposta contém todos os fatos obrigatórios, restrições e o formato solicitado.
- Citações ou links ainda correspondem às fontes fornecidas.
- As chamadas de ferramentas usam os argumentos corretos, e nenhum resultado importante se perdeu durante a compactação.
- O novo uso de entrada é realmente menor que o original.
Se o erro desaparecer mas o modelo esquecer uma restrição essencial, a correção falhou. Restaure o bloco obrigatório e libere espaço removendo histórico menos relevante ou um resultado de ferramenta pesado. Se a resposta for cortada, examine separadamente o orçamento de saída: ele é outra parte da mesma janela total.
Resumo
A sequência de trabalho é: identificar o modelo → contar componentes → remover duplicações exatas → extrair histórico irrelevante → compactar arquivos e resultados de ferramentas → deixar espaço para a resposta → reenviar → verificar a qualidade. Isso trata a causa sem transformar o contexto em fatos truncados arbitrariamente.