Context Rot: Por que Mais Tokens Não Significam Respostas Melhores
É tentador pensar que enviar mais informações para o Claude só pode ajudar, já que o modelo pode simplesmente ignorar o que não for relevante.
Busque em todas as páginas da documentação
É tentador pensar que enviar mais informações para o Claude só pode ajudar, já que o modelo pode simplesmente ignorar o que não for relevante.
Na prática, preencher um prompt com material desnecessário ou irrelevante tende a degradar a qualidade da resposta, em vez de apenas desperdiçar tokens.
Esse efeito tem um nome que vale a pena conhecer: context rot (deterioração de contexto).
Compreendê-lo muda a forma como você pensa sobre engenharia de contexto, de "cortar contexto para economizar dinheiro" para "cortar contexto porque isso também produz melhores respostas".
Uma suposição inicial útil, e incorreta, é que um modelo de linguagem lê um prompt da mesma forma que um índice de busca: ele encontra a parte relevante e ignora o resto sem custo.
Context rot descreve o padrão observado de que isso não é exatamente verdade.
À medida que um prompt se preenche com material que não é relevante para a pergunta real, as respostas do modelo podem se tornar menos precisas, menos focadas ou mais propensas a captar detalhes irrelevantes como se fossem importantes.
Uma analogia simples: imagine ser perguntado algo em uma sala barulhenta versus uma sala silenciosa.
Você ainda pode ouvir a pergunta em ambos os casos, mas sua atenção e precisão não são idênticas, mesmo que as palavras ditas a você fossem as mesmas.
Um prompt com muito material irrelevante é a sala barulhenta.
# Same question, two prompts. The second buries the relevant line in noise.
focused_prompt = "What does validate_email() return for 'a@b'? \n\ndef validate_email(s): return '@' in s and '.' in s.split('@')[-1]"
noisy_prompt = f"{unrelated_500_line_file}\n\nWhat does validate_email() return for 'a@b'?"Ambos os prompts contêm as informações necessárias para responder corretamente.
Apenas um deles torna essa informação fácil de encontrar.
O context rot interage com alguns aspectos diferentes de como um modelo processa um prompt.
Razão sinal-ruído é a moldura mais simples: se a informação relevante é uma pequena fração do prompt total, o modelo tem que trabalhar mais para distinguir o que importa do que não importa, e esse trabalho não é garantido ser livre de erros.
Diluição de atenção é a ideia relacionada de que o foco efetivo de um modelo é espalhado por tudo no prompt, então um prompt dominado por material irrelevante deixa comparativamente menos capacidade para a parte que realmente responde à pergunta.
Conteúdo distrator é um modo de falha específico: material irrelevante que por acaso se parece com a resposta correta, uma variável de nome semelhante, um fato superficialmente relacionado, pode ativamente enganar o modelo em vez de ser simplesmente ignorado.
É por isso que context rot não é simplesmente "tokens desperdiçados".
Tokens desperdiçados custam dinheiro, mas não necessariamente mudam a resposta.
Context rot muda a resposta, em qualquer direção, às vezes para pior, puramente por causa do que mais estava no prompt.
# A distractor: a same-named function elsewhere in the file that isn't the one being asked about.
distractor_prompt = """
def validate_email(s): # in module `legacy`, deprecated, different logic
return len(s) > 0
def validate_email(s): # in module `current`, the one actually asked about
return "@" in s and "." in s.split("@")[-1]
Which validate_email is used by the current signup flow?
"""Um modelo lendo isso tem que determinar corretamente qual definição é relevante, uma tarefa tornada mais difícil por incluir a obsoleta, mesmo que ela não seja realmente necessária para responder à pergunta.
O context rot tem uma implicação direta em como as equipes devem pensar sobre o crescimento da janela de contexto.
À medida que os modelos suportam janelas de contexto cada vez maiores, é tentador tratar "cabe" como equivalente a "deve ser incluído".
Context rot é o argumento contra essa equivalência: uma janela maior muda o que é possível enviar, não o que é aconselhável enviar.
A resposta prática é o mesmo conjunto de técnicas abordadas nesta seção, aplicadas por uma segunda razão além do custo.
O prompting de contexto mínimo mantém a razão sinal-ruído alta por construção, já que apenas material relevante é incluído.
A sumarização reduz o volume enquanto, quando bem feita, preserva o sinal que importa, o que pode melhorar a razão sinal-ruído mesmo para material que não pode ser completamente descartado.
A aparagem de grafo de dependências aplica a mesma ideia ao código, usando a estrutura do grafo em vez de julgamento manual para decidir o que é realmente relevante.
| Abordagem | Efeito no Custo | Efeito na Qualidade |
|---|---|---|
| Enviar tudo "por precaução" | Maior, escala com o material total | Risco de diluição e efeitos distratores |
| Prompting de contexto mínimo | Menor, escala apenas com material relevante | Geralmente melhora o foco, se a seleção for precisa |
| Sumarização | Menor para documentos reutilizados | Depende da qualidade do resumo; pode perder detalhes finos |
| Sem aparagem, mas uma janela de contexto maior | Maior | Não resolvido pelo tamanho da janela; rot é sobre relevância, não capacidade |
Vale a pena ser preciso sobre o que context rot não significa.
Não significa que prompts curtos são sempre melhores que longos, ou que todo documento longo é prejudicial de incluir.
Significa que a relevância, e não o comprimento, é a variável que importa, e que o comprimento sem relevância carrega um custo real em ambos os lados do balanço.
A tendência de material irrelevante ou excessivo em um prompt degradar a qualidade da resposta do modelo, além de simplesmente custar mais tokens.
Não.
Não exatamente; o comprimento não é a variável que importa por si só, a relevância é.
Um prompt longo feito inteiramente de material relevante não sofre necessariamente de context rot da mesma forma que um prompt curto preenchido com material irrelevante pode sofrer.
Material irrelevante que por acaso se parece superficialmente com a resposta correta, como uma variável de mesmo nome definida duas vezes, que pode ativamente enganar o modelo em vez de ser simplesmente ignorada.
Não, uma janela maior apenas muda o quanto pode caber tecnicamente.
Não muda se o material irrelevante dilui o foco ou introduz distratores uma vez que é incluído.
O prompting de contexto mínimo é a contramedida direta: ao incluir apenas trechos relevantes, ele mantém a razão sinal-ruído alta por construção, o que aborda o context rot e reduz o custo ao mesmo tempo.
Sim.
Pode ajudar, quando o resumo preserva o sinal relevante enquanto descarta o volume que não estava adicionando nada.
Um resumo ruim que descarta o detalhe realmente relevante substitui um problema por outro, então a qualidade do resumo ainda importa.
Não, aplica-se a qualquer prompt: um ticket de suporte preenchido com histórico de conta não relacionado, uma pergunta legal enterrada em um contrato inteiro, ou uma pergunta de cliente cercada por turnos de conversa anteriores não relacionados.
Essas são alavancas separadas.
Trate "devo incluir isso" como uma pergunta real com um custo real em ambos os lados, em vez de adotar o padrão "mais contexto só pode ajudar".
Versões de Stack: Escrito contra a linha de modelos Claude atual por volta de Junho de 2026 - Claude Fable 5, Claude Opus 4.8, Claude Sonnet 5 (o padrão), e Claude Haiku 4.5 - e o SDK oficial
anthropicpara Python (última versão 0.x). Nomes de modelos, preços e versões de SDK mudam rapidamente - verifique os detalhes atuais em platform.claude.com/docs antes de confiar neles.
Revisado por Chris St. John·Última atualização: 16 de jul. de 2026