Claude Code entrou em loop: vale insistir ou é melhor começar do zero?

Claude Code em loop é quando o assistente repete o mesmo erro depois da correção, ignora a instrução que você acabou de dar ou volta a uma versão antiga do arquivo. Quase sempre a causa é contexto poluído por tentativas que falharam. A régua oficial da documentação é simples: corrigiu o mesmo ponto mais de duas vezes na mesma sessão, roda /clear e recomeça com um prompt mais específico, que já incorpore o que você aprendeu. Se a conversa ainda tem valor, /compact resume o histórico; se o código azedou, /rewind restaura conversa, arquivos ou os dois
Fala aí, beleza? Você corrige o Claude, ele concorda, pede desculpa, diz que entendeu direitinho
e refaz exatamente o mesmo erro
Aí você corrige de novo, dessa vez explicando melhor
E na terceira rodada ele ressuscita uma versão antiga do arquivo, aquela que você já tinha mandado jogar fora duas mensagens atrás 😅
Se liga nisso: não é teimosia do modelo e nem falta de capacidade. É contexto poluído. A sessão foi acumulando tentativa fracassada em cima de tentativa fracassada, e agora o histórico inteiro está empurrando o agente pro caminho errado
E tem uma boa notícia: a própria documentação do Claude Code dá uma régua objetiva pra você decidir entre insistir mais uma vez ou recomeçar do zero
(e só pra deixar claro, o loop do título é o loop ruim, não é o loop bom de deixar o agente rodando tarefas sozinho, que é outra história completamente diferente)
Bora ver na prática?
Domine o Claude Code do básico ao avançado
Você vai aprender a criar sistemas completos com Claude Code, sem precisar ser programador. Inscreva-se para ter acesso a um desconto de lançamento e bônus especiais!
Como reconhecer que a conversa entrou em loop
Os sintomas clássicos:
Antes de sair digitando comando, vale reconhecer o padrão. Três sinais aparecem quase sempre juntos:
- o assistente repete o MESMO erro depois de você ter corrigido
- ele ignora uma instrução que você deu de forma explícita
- ele volta pra uma versão antiga do código, como se a última alteração nunca tivesse acontecido
Quando os três aparecem na mesma sessão, para de escrever prompt. O problema não está no seu texto, está no que já foi acumulado antes dele
Por que isso acontece:
Cada tentativa que deu errado continua ali no histórico, ocupando espaço e competindo com a sua correção mais recente
A doc ainda nomeia um segundo culpado: a kitchen sink session, a sessão balaio de gato. É aquela em que você começa uma tarefa, pergunta uma coisa sem relação nenhuma no meio, volta pra primeira, e no fim o contexto está cheio de informação irrelevante pro que você está fazendo AGORA
Já me ferrei com isso: você acha que está economizando tempo por não abrir uma sessão nova, e na real está construindo o problema
Como medir antes de decidir:
Duas coisas ajudam a sair do achismo
A primeira é contar. Quantas vezes você já corrigiu o mesmo ponto nessa sessão? Esse número é a sua régua, e daqui a pouco eu volto nele
A segunda é rodar o comando de diagnóstico:
/context
Ele mostra o uso atual do contexto numa grade colorida, com a quebra por categoria, sugestões de otimização pra ferramentas pesadas de contexto, aviso de inchaço de memória e aviso de capacidade. Inclusive quais arquivos CLAUDE.md e de memória automática foram carregados
É o jeito de responder "o que está entupindo essa conversa?" olhando dado, não palpite
E a prevenção é chata de tão simples: /clear entre tarefas que não têm relação uma com a outra, com frequência. A orientação é oficial e está nas boas práticas do Claude Code
A regra oficial das 2 correções:
Aqui está a régua que eu prometi
Se você corrigiu o Claude mais de duas vezes sobre o mesmo problema na mesma sessão, o contexto já está poluído por tentativas que falharam. A recomendação da doc é rodar /clear e recomeçar com um prompt mais específico, que incorpore o que você aprendeu nas tentativas anteriores
A doc é bem direta no porquê: uma sessão limpa com um prompt melhor quase sempre supera uma sessão longa cheia de correções acumuladas
Ou seja: recomeçar não é desistir. É trocar histórico ruim por instrução boa
Uma observação de escopo antes de seguir: tudo daqui pra baixo é comando do Claude Code no terminal. Se você fala com o agente por fora, através de um harness que conversa com vários agentes, o caminho até essas funções pode ser outro
/clear: recomeçar do zero sem perder o que importa
O medo que trava todo mundo:
O leitor lê "roda /clear" e congela
Porque a conversa até pode ser lixo, mas ali dentro tem as regras do projeto, o padrão de código, aquele detalhe do banco que você explicou com carinho
Jogar tudo fora parece caro demais
O que o /clear faz de fato:
/clear
Ele reseta a conversa para um contexto vazio. Os prompts seguintes rodam sem nenhum histórico anterior, começando do zero mesmo
O que SOBREVIVE ao /clear:
E aqui vem o alívio: o CLAUDE.md da raiz do projeto e a memória automática sobrevivem, porque são recarregados do disco
Ou seja, a memória de projeto não mora na conversa. Ela mora no arquivo
Se você conhece um .gitignore ou um .editorconfig, a lógica é parecida: está no repositório, é lido de novo, não depende de você ter falado dele na última mensagem
O que se perde (e você precisa trazer de volta):
As instruções que você deu APENAS dentro da conversa
Aquele "não mexe na pasta de migrations" que você digitou no chat e nunca escreveu em lugar nenhum? Some
Então o prompt novo precisa carregar essas regras de novo. Tome cuidado com isso, é o erro mais comum de quem recomeça: dar /clear e reescrever o pedido igualzinho ao primeiro, sem incorporar nada do que aprendeu
E se eu me arrepender?
Respira, o /clear não apaga a conversa antiga do disco
Ela continua salva e pode ser retomada passando o ID da sessão para a opção de resume. Tem uma seção inteira sobre isso mais pra baixo
/compact: quando a conversa vale, mas está pesada
Nem toda conversa merece a lixeira:
Tem caso em que o histórico é bom. Vocês investigaram um bug juntos, mapearam três arquivos, chegaram numa hipótese decente
O problema não é a qualidade, é o tamanho
Nesse cenário o /clear seria um desperdício
A alternativa:
/compact
Ele resume as mensagens antigas preservando o contexto importante, em vez de jogar tudo fora
Um requisito prático pra não te pegar de surpresa: a compactação exige uma conversa existente com pelo menos duas trocas anteriores pra ter o que resumir
O pulo do gato: compactar com instrução
Essa é a parte que pouca gente usa
O /compact aceita uma instrução junto do comando:
/compact focus on the auth bug fix
Assim o resumo guarda o que VOCÊ escolheu, em vez do que a passada automática acharia importante
É a diferença entre dizer "resume aí" e dizer "resume, mas o que importa é o bug de autenticação"
E a compactação automática?
O Claude Code compacta sozinho quando se aproxima do limite do contexto, e a ordem do processo é essa:
- primeiro ele limpa saídas antigas de ferramentas
- depois, se ainda for necessário, resume a conversa
O que fica preservado: os pedidos do usuário e trechos-chave de código
O que pode se perder: instruções detalhadas dadas lá no começo da conversa
Sacou o risco? Se a regra mais importante do seu trabalho foi dita na primeira mensagem de uma sessão gigante, ela é justamente a candidata a evaporar. Mais um motivo pra regra importante viver no CLAUDE.md, e não só no chat
/rewind: quando o código já foi estragado pela insistência
O estrago passou da conversa:
Às vezes não é só o papo que azedou
Depois de quatro tentativas, os arquivos ficaram inconsistentes: metade do refactor aplicado, um import órfão, uma função que voltou pra versão antiga
Aqui /clear não resolve nada, porque limpar a conversa não desfaz o que já foi escrito no disco
O mecanismo por trás:
Todo prompt que você envia gera um checkpoint
E os arquivos recebem um snapshot automático antes de cada mudança, justamente pra conseguirem ser restaurados depois
Ou seja, a rede de segurança já estava sendo montada enquanto você tentava
Com uma ressalva que vale guardar desde já: essa cobertura vale pras mudanças feitas pelas ferramentas de edição de arquivo do Claude, e não pra tudo que acontece no projeto. Já já eu detalho o que fica de fora
Como usar, passo a passo:
- abra o menu de rewind, por um dos dois caminhos:
/rewind
ou apertando Esc duas vezes com o campo de prompt VAZIO
O erro comum deste passo: apertar Esc Esc com texto digitado no input. Limpa o campo antes
- escolha o que volta atrás. As opções são: restaurar a conversa, restaurar o código, restaurar ambos, ou resumir a partir da mensagem selecionada
O erro comum deste passo: mandar restaurar tudo por reflexo. Nem sempre você quer perder a conversa, às vezes só o código precisa voltar
- siga a partir dali com um prompt novo e mais específico, e não com a mesma frase que já falhou três vezes
O limite que evita frustração:
E aqui tem um detalhe que é MUITO importante entender antes de confiar cegamente no rewind
O checkpoint só rastreia mudanças feitas pelas ferramentas de edição de arquivo do Claude
O que NÃO é capturado:
- mudanças feitas via comandos Bash
- mudanças feitas por processos externos
- arquivos com symlink ou hard link, que não são revertidos
Então se o agente rodou um script que reescreveu meio projeto, o rewind não vai te salvar disso. Bom saber ANTES, e não no meio do desespero
Isso dura pra sempre?
Não
Os checkpoints são apagados junto com as sessões depois de um período de retenção, que por padrão é de 30 dias
E esse período é configurável pela configuração cleanupPeriodDays, caso você queira guardar por mais ou por menos tempo
Recomeçou e precisa voltar: como retomar a sessão anterior
O arrependimento clássico:
Você deu /clear, começou bonito, e três prompts depois lembrou daquele trecho de investigação que só existia na conversa antiga
Calma, dá pra voltar lá
Os três caminhos:
Por dentro de uma sessão em andamento:
/resume
Por fora, escolhendo numa lista:
claude --resume
Ou retomando direto a sessão mais recente do diretório atual:
claude --continue
Se não existir sessão nenhuma, o --continue imprime No conversation found to continue e sai. Caso essa mensagem apareça, não é bug, é só ausência de sessão naquele diretório
Detalhe do seletor que economiza tempo:
Por padrão, o seletor mostra as sessões da worktree atual
Se a conversa que você procura não está ali, dá pra ampliar a busca:
Ctrl+Wamplia para todas as worktrees do repositórioCtrl+Aamplia para todos os projetos da máquina
E as sessões de background aparecem marcadas como bg, então dá pra identificar rapidinho o que é o quê
Qual comando usar em cada situação
Guia rápido pra quando você estiver no meio do problema e não quiser reler o post inteiro:
| Situação | Comando | Por quê |
|---|---|---|
| Corrigiu o mesmo ponto mais de 2 vezes e vai começar tarefa nova | /clear |
Contexto poluído por tentativas que falharam |
| Conversa útil, mas inchada, e a tarefa continua | /compact focus on ... |
Resume o antigo preservando o que você escolher |
| Arquivos alterados de forma errada | /rewind |
Restaura conversa, código, os dois, ou resume da mensagem escolhida |
| Dúvida sobre o que está consumindo contexto | /context |
Grade por categoria, memórias carregadas e avisos |
| Percebeu que faltou algo da conversa descartada | /resume ou claude --resume |
A sessão antiga continua salva em disco |
E fica o hábito que amarra tudo: ao recomeçar, leve só o essencial pro prompt novo
O que o Claude precisa saber é a conclusão que vocês chegaram, não o caminho torto que vocês percorreram até ela
Veja também: um recurso que ajuda a economizar contexto
Já que o assunto é gestão de contexto, tem material do canal que entra bem aqui
Pra começar do zero no tema, este vídeo apresenta o /btw, um recurso do Claude Code voltado a economizar tokens, e serve como introdução pra quem está entrando agora nessa conversa de contexto e consumo:
Conclusão
Recapitulando o que importa:
A régua oficial é a das 2 correções. Passou disso no mesmo ponto, para de insistir e recomeça com um prompt mais específico, porque sessão limpa com prompt melhor quase sempre bate sessão longa cheia de correção acumulada
Recomeçar não é perder trabalho. O CLAUDE.md do projeto e a memória automática sobrevivem ao /clear, e a conversa antiga continua salva em disco pra ser retomada pelo ID da sessão
Se o histórico ainda vale, /compact com instrução. Se o estrago foi nos arquivos, /rewind, lembrando do limite dele
O próximo passo prático é esse: da próxima vez que você se pegar corrigindo a mesma coisa pela segunda vez, roda /context, olha o que está pesando, decide entre /compact e /clear, e reescreve o prompt já com tudo que você aprendeu nas tentativas anteriores
É o tipo de hábito que parece bobo e que economiza uma tarde inteira 😀
até o próximo post!
Perguntas frequentes
Como resolver quando o Claude Code está em loop repetindo o mesmo erro?
A documentação dá uma régua objetiva: se você já corrigiu o mesmo problema mais de duas vezes na mesma sessão, o contexto está poluído por tentativas que falharam. Nesse ponto o caminho recomendado é rodar /clear e reescrever o prompt incorporando o que você aprendeu nas tentativas anteriores, em vez de insistir na mesma conversa.
O /clear apaga a conversa antiga do Claude Code para sempre?
Não. O /clear reseta a conversa pra um contexto vazio e os prompts seguintes rodam sem histórico nenhum, mas a conversa antiga continua salva em disco. Dá pra retomar ela depois passando o ID da sessão pra opção de resume.
O que acontece com o CLAUDE.md depois de rodar /clear no Claude Code?
Ele sobrevive numa boa: o CLAUDE.md da raiz do projeto e a memória automática são recarregados direto do disco depois do /clear. O que se perde são as instruções que você deu só dentro da conversa e nunca registrou em arquivo nenhum, então essas precisam voltar pro prompt novo.
Qual a diferença entre /clear e /compact no Claude Code?
O /clear zera o histórico e começa do zero, sem nenhuma mensagem anterior. Já o /compact resume as mensagens antigas preservando o contexto importante, então serve quando a conversa é boa mas ficou pesada, e exige uma conversa com pelo menos duas trocas anteriores pra ter o que resumir.
Como usar o comando /context pra saber se a conversa do Claude Code está poluída?
O /context mostra o uso atual do contexto numa grade colorida, com quebra por categoria, sugestões de otimização e avisos de inchaço de memória. Ele também lista quais arquivos CLAUDE.md e de memória automática foram carregados, então dá pra ver com dado o que está entupindo a sessão antes de escolher entre /clear e /compact.
Qual a diferença entre /rewind e /clear no Claude Code?
São coisas diferentes. O /rewind usa os checkpoints que o Claude Code cria automaticamente a cada prompt enviado (com snapshot dos arquivos antes de cada mudança) pra restaurar a conversa, o código, os dois, ou resumir a partir da mensagem escolhida, enquanto o /clear simplesmente zera o contexto pra frente sem restaurar nada. Vale lembrar que o checkpoint só rastreia mudanças feitas pelas ferramentas de edição de arquivo do Claude, então mudança feita via comando Bash ou processo externo não é capturada.
Formações
Formação Vibe Coding
Do Prompt ao Produto: Crie Software Real com IA
- 474 aulas
- 20 projetos
- 39h 27min
Blog | Mais populares
As diferenças de var, let e const
Como fazer redirecionamento com PHP
Neste artigo você vai aprender a como fazer redirecionamento com PHP, utilizaremos abordagens fáceis de entender e de aplicar Fala programador(a), beleza? Bora aprender mais […]
Checklist de segurança n8n VPS pública: guia essencial para proteger sua instalação
Checklist de segurança n8n VPS pública: guia essencial para proteger sua instalação A popularidade da automação de processos com o n8n está em alta, principalmente […]
