Como destravar seu agente de programação de IA quando ele insiste em repetir o mesmo erro
Por VCA Newsroom
Você diz ao seu agente de programação de IA para parar de usar uma função obsoleta. Ele se desculpa, reescreve o código — e usa a mesma função obsoleta de novo. Você corrige uma terceira vez. Mesmo resultado. Isso é o "doom loop" (laço da perdição), e todo mundo que constrói acaba esbarrando nele. A boa notícia: quando você entende por que isso acontece, a correção é rápida e repetível.
Por que os agentes travam
Um agente de programação de IA não lembra da sua última correção do jeito que uma pessoa lembra. Ele trabalha a partir do seu contexto — a transcrição corrente da sua conversa somada aos arquivos que ele leu. Duas coisas dão errado em uma sessão longa:
- Os erros se acumulam. Se uma suposição errada entra no contexto cedo, toda resposta posterior é construída em cima dela. Sua correção é apenas mais uma mensagem competindo com todo o texto anterior que ainda diz a coisa errada.
- Apodrecimento do contexto (context rot). À medida que a janela se enche ao longo de uma sessão longa, a qualidade da saída se degrada gradualmente. O agente começa a perder o fio de instruções que você deu vinte mensagens atrás.
Então, quando um agente repete um erro, normalmente não é teimosia — ele está se afogando em um contexto poluído. Conserte o contexto, não a atitude do agente.
Passo 1: Reinicie em vez de reexplicar
Seu instinto é explicar a correção com mais firmeza. Resista. Cada mensagem extra soma-se ao contexto poluído. Em vez disso, remova o contexto ruim:
- No Claude Code, o
/rewindretrocede a conversa e as alterações de arquivo para um checkpoint anterior — use quando os últimos passos deram errado, mas o trabalho anterior vale a pena manter (aperteEscduas vezes para o mesmo menu). O/clearapaga a conversa por completo e recomeça do zero, deixando seu código intacto — use quando a sessão inteira descarrilhou. O/compactresume o histórico em uma forma mais curta quando você quer continuar com uma pegada mais leve. (Veja as boas práticas do Claude Code.) - No Cursor ou em uma ferramenta baseada em chat, inicie um novo chat para a tarefa travada em vez de continuar a que já está contaminada.
Um contexto limpo com uma instrução clara vale mais do que um contexto longo com cinco instruções cada vez mais frustradas.
Passo 2: Dê à correção um lar permanente
Uma correção que você digita no chat some quando a sessão termina. Na próxima sessão, o agente comete o mesmo erro — porque você removeu a correção da memória dele ao fechar a janela. Coloque regras duráveis onde o agente as lê toda vez:
- Claude Code: um arquivo
CLAUDE.mdna raiz do seu repositório. - Cursor: um arquivo de regras (por exemplo,
.cursor/rules/). - Qualquer agente: um arquivo
AGENTS.md, hoje amplamente suportado.
Escreva a regra como uma afirmação direta e testável. Não "tente escrever código limpo", mas: "Use fetch, nunca axios. Este projeto não tem dependência do axios."
Passo 3: Torne a restrição impossível de ignorar
Aqui vai um exemplo concreto. Digamos que seu agente insiste em importar uma biblioteca de datas que você removeu:
// Agent keeps writing this:
import moment from 'moment'
const now = moment().format('YYYY-MM-DD')
Você já disse três vezes para ele usar a API nativa Intl. Em vez de uma quarta correção, adicione uma linha ao CLAUDE.md:
## Dates
Never import `moment` or `dayjs` — they are not installed.
Format dates with the built-in `Intl.DateTimeFormat`. Example:
`new Intl.DateTimeFormat('en-CA').format(new Date())` → "2026-07-04"
A diferença: você deu uma regra somada a um exemplo funcional. Os agentes seguem um exemplo copiável de forma muito mais confiável do que uma instrução abstrata, e agora a regra é carregada automaticamente no início de cada sessão.
Passo 4: Dê ao agente uma forma de se verificar
Os agentes repetem erros que não conseguem ver. Feche o ciclo dando ao agente um sinal que ele possa ler:
- Uma regra de linter ou um teste que falha exatamente no erro. Se o
momenté proibido pelo seu linter, o agente roda o linter, vê o erro e o corrige — sem você no meio do caminho. - Uma rápida lista de verificação de "definição de pronto" no seu prompt: "Antes de terminar, rode
npm run lintenpm teste confirme que ambos passam."
Esta é a maior melhoria de todas. Um erro que o próprio agente consegue detectar deixa de ser um erro que você precisa pegar.
Passo 5: Reduza a tarefa
Se um agente entra em loop em um pedido grande e vago ("refatore o sistema de autenticação"), muitas vezes ele está perdido no escopo, não no detalhe. Divida o trabalho em um pequeno passo verificável de cada vez — "extraia a lógica de renovação de token para uma função própria, não altere o comportamento" — e confirme cada um antes de seguir adiante. Tarefas pequenas deixam menos espaço para o agente se perder.
O padrão
Quando seu agente não para de repetir um erro, percorra a lista: reinicie o contexto, anote a regra onde ela persiste, mostre um exemplo, dê a ele uma verificação que ele mesmo possa rodar e restrinja a tarefa. Você vai notar o tema — você não está discutindo com o agente, está consertando aquilo que ele consegue ver. Faça isso e o doom loop vira um desvio de dois minutos em vez de uma tarde perdida.
SOURCES
Auto-generated by Vibe Coding Academy on July 4, 2026, grounded in the real sources linked above. We review for accuracy, but please verify time-sensitive details against the primary sources.
Build Blueprint · Creator
Tem uma ideia? Receba a especificação a partir da qual seu agente de IA pode construir.
Descreva qualquer produto e receba um blueprint de construção completo — stack, modelo de dados, telas, APIs e um prompt pronto para colar no Claude Code ou Cursor. Exporte para PDF.
Abrir o Blueprint ▸