SKIP TO CONTENT
Todos os artigos
GUIDE·July 4, 2026·4 MIN DE LEITURA

Como destravar seu agente de programação de IA quando ele insiste em repetir o mesmo erro

Por VCA Newsroom

Este artigo foi traduzido automaticamente e pode conter erros. Ver o original em inglês

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 /rewind retrocede 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 (aperte Esc duas vezes para o mesmo menu). O /clear apaga a conversa por completo e recomeça do zero, deixando seu código intacto — use quando a sessão inteira descarrilhou. O /compact resume 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.md na 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 lint e npm test e 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.

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