Conceitos principais

Envenenamento de contexto

Aprende o que é envenenamento de contexto, como reconhecê-lo numa conversa com o Bob e como recuperar iniciando uma task nova ou melhorando a higiene de contexto.

Sobre o envenenamento de contexto

O envenenamento de contexto acontece quando informação errada ou irrelevante entra na context window e fica no transcript. O Bob trata essa informação como facto nos prompts seguintes. As respostas começam a desviar. As chamadas de tools ficam imprecisas. O work goal perde-se.

Isto é diferente de uma única má resposta. Os dados errados ficam em Messages (ou entraram através da leitura de um ficheiro, de um paste de logs ou de um comentário desatualizado). O Bob volta a enviá-los em cada prompt até fazeres reset ou condensares.

Para perceberes como a window enche e quando deves recomeçar, vê Context window management. Para um guia prático de reset, vê Create a new context window.

Sintomas

É provável que estejas a lidar com envenenamento de contexto quando notas algum destes sinais:

  • Output pior: As sugestões repetem-se, divagam ou deixam de corresponder ao repository.
  • Uso errado de tools: Os passos de tools no transcript já não correspondem ao que pediste.
  • Trabalho multi-step bloqueado: Fluxos longos com vários prompts entram em loop ou ficam parados em Agent mode.
  • Correções de curta duração: Um prompt corretivo ajuda uma vez, mas depois o problema volta.
  • Confusão com tools: O Bob usa mal as tools apesar de as Tool definitions não terem mudado.

Se Messages já estiver grande, verifica primeiro o context window breakdown. Envenenamento e uma window cheia costumam aparecer juntos.

Causas comuns

CausaO que acontece
Factos errados na threadO Bob afirma algo incorreto. Trocas posteriores tratam isso como verdade em Messages.
Texto de repository desatualizado ou erradoComentários desatualizados, fragmentos de README ou docs geradas enganam leituras de ficheiros.
Pastes demasiado grandesLogs ou snippets com ruído, truncamento ou caracteres escondidos vão parar a Messages.
CondensationO Bob resume Messages antigas. Detalhes úteis desaparecem. O que fica pode dominar a thread.
Contexto irrelevanteFicheiros não relacionados, planos antigos ou um work goal anterior ainda existem no transcript.

Quando o mau contexto entra em Messages, ele persiste em cada prompt seguinte. O Bob não ignora de forma fiável texto plausível só porque está errado.

Limitações de prompts corretivos

Colar Tool definitions, regras ou um prompt corretivo rígido na conversa pode mascarar o problema por uma ou duas trocas. O histórico envenenado de Messages continua lá. A próxima pergunta fora de tema pode trazer o mesmo erro de volta.

A solução fiável é uma task nova: clica em + (New task) no painel de chat. Vê Create a new context window.

Recuperação

  • Inicia uma task nova com + (New Task). Isto limpa Messages envenenadas, mantendo Rules e os ficheiros do projeto no disco.
  • Cola menos. Envia só as linhas de log ou os erros de que o Bob precisa. Dumps grandes aumentam Messages e introduzem mais risco.
  • Divide o work goal. Usa tasks separadas para passos não relacionados para que um transcript antigo não passe para a frente.
  • Verifica o output das tools. Se uma tool devolver lixo, para e faz reset em vez de deixares o Bob construir em cima disso em Messages.
  • Confia mais nos testes do que no texto. Quando comentários e código entram em conflito, aponta o Bob para verificações executáveis. É a mesma orientação de context window best practices.

Prevenção

A maior parte da prevenção vem de uma boa higiene de contexto:

  • Define o work goal antes de explorares o repository (context window management).
  • Mantém AGENTS.md e Rules curtos e operacionais.
  • Adiciona ficheiros e logs quando for preciso, não logo à partida.
  • Faz reset quando Messages cresce sem progresso.

Para leituras ao nível de todo o repository, usa subagents para que a task veja subagent results, e não cada passo de tool em Messages.

Saber mais

Como está este tópico?