Sessão longa no Claude Code: vale continuar com /compact ou começar outra com /clear?

Uma sessão longa no Claude Code vira problema quando o agente reabre decisões já fechadas ou mistura tarefa antiga com a atual. A regra publicada pela Anthropic é simples: tarefa nova, sessão nova com /clear; tarefa encadeada, /compact proativo já descrevendo o próximo objetivo. Antes de decidir, rode /context pra ver o que ocupa a janela. Se o rumo errou há alguns prompts, o /rewind deixa resumir a partir daquele ponto. E o que não pode sumir no resumo você fixa na seção Compact Instructions do CLAUDE.md 🙂
Fala aí, beleza? Chega uma hora que a conversa vira um novelo: você pede um ajuste pequeno e o agente volta a mexer numa decisão que já estava fechada meia hora atrás
Aí bate a dúvida clássica: continuo nessa mesma conversa e só resumo o histórico, ou corto tudo e recomeço com um resumo curto do que importa?
Uma sessão longa no Claude Code não é um problema por si só, o problema é quando o histórico começa a trabalhar contra você
E a parte boa: dá pra decidir isso por sinais objetivos, não por achismo
Sinais de que o histórico já está atrapalhando
Se liga nos sintomas que aparecem antes de tudo desandar:
- o agente reabre uma decisão que já tinha sido tomada, tipo trocar de novo a abordagem de autenticação que vocês já discutiram
- ele mistura tarefa antiga com a atual, puxando arquivo ou requisito de um trabalho que já foi encerrado
- as instruções que você deu lá no começo (padrão de commit, estilo, restrições do projeto) simplesmente somem do comportamento dele
- a auto-compactação para e mostra um erro: quando um único arquivo ou saída de ferramenta é grande a ponto de reencher o contexto logo depois de cada resumo, o Claude Code interrompe a auto-compactação após algumas tentativas em vez de entrar em loop
Por que isso acontece:
A compactação é perdiva
Os seus pedidos e os trechos de código chave são preservados no resumo, mas instruções detalhadas dadas no começo da conversa podem se perder
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!
Ou seja: o que você combinou no prompt inicial é justamente o tipo de coisa mais frágil num histórico comprido
Tem outro detalhe que explica muita coisa: ao se aproximar do limite, o Claude Code primeiro limpa saídas antigas de ferramentas e só depois resume a conversa, se ainda for necessário
Então antes do resumo você já perdeu o conteúdo bruto daquele cat gigante, daquele log, daquele resultado de busca. Se a conclusão importante estava só ali e nunca virou texto na conversa, ela evapora
Esse é o mesmo terreno que eu já discuti quando falei de contexto cheio piorando as respostas, vale a leitura se o seu caso é mais degradação de qualidade do que confusão de tarefa
O que fazer em cada sintoma:
- Reabriu decisão fechada: o resumo perdeu a regra. Recoloque a decisão explicitamente e fixe ela na seção Compact Instructions do CLAUDE.md
- Misturou tarefa antiga: é caso de
/clear, a conversa velha está só atrapalhando - Perdeu instrução do início: mesma coisa, Compact Instructions, pra não repetir a instrução a cada
/compact - Auto-compact travou com erro: tem um arquivo ou saída gigante reenchendo o contexto. Corte a fonte do volume (ou delegue essa leitura a um subagente) antes de tentar resumir de novo
Como prevenir antes de virar bagunça:
Três coisas, e nenhuma delas é fórmula mágica, é só higiene mesmo:
- rodar
/contextde vez em quando pra ver o que está ocupando espaço - escrever a seção Compact Instructions no
CLAUDE.mddo projeto, dizendo o que precisa sobreviver a qualquer resumo - ajustar o
/autocompactpra que o passe automático não te pegue no meio de uma tarefa delicada
/compact, /clear, /rewind ou retomar depois: qual usar em cada caso
São quatro saídas diferentes, e a galera costuma usar só uma delas pra tudo 😀
| Saída | O que preserva | O que perde | Quando usar |
|---|---|---|---|
/compact |
O histórico resumido, com pedidos e trechos de código chave; aceita instrução de foco, no formato /compact focus on the auth bug fix |
Instruções detalhadas dadas no começo da conversa | Tarefa encadeada: você ainda precisa do contexto, só não do volume todo |
/clear |
Nada da conversa (reseta pra contexto vazio); CLAUDE.md e os arquivos do projeto seguem disponíveis | Todo o histórico da conversa atual | Tarefa nova sem relação com a anterior; aceita um nome opcional pra identificar a conversa no /resume |
/rewind |
O ponto da sessão que você escolher: dá pra restaurar código e conversa, só a conversa, só o código, ou resumir a partir dali pra liberar espaço | O que veio depois do ponto escolhido, conforme a ação | O rumo errou há alguns prompts e você quer voltar pro ponto certo |
claude --continue / claude --resume |
O histórico completo, incluindo chamadas e resultados de ferramentas, mais o modelo que a sessão usava | Nada da sessão, mas sessões e checkpoints são apagados depois de 30 dias | Você parou no meio e vai voltar depois, ou precisa de uma sessão específica pelo ID |
Detalhe do /rewind: ele abre pelo comando ou apertando Esc duas vezes com o campo de input vazio, e lista cada prompt que você enviou na sessão
Antes de cortar: veja o que está ocupando a sua janela de contexto
Cortar no escuro é chute. Roda primeiro:
/context
Ele mostra um panorama ao vivo do tamanho do contexto, com breakdown por categoria do que está ocupando espaço, mais sugestões de otimização
E mostra também quais arquivos CLAUDE.md e de memória foram carregados, o que já mata metade das surpresas: às vezes o peso não é a conversa, é memória que entrou junto
E se eu quiser mandar quando a auto-compactação dispara?
Dá. O /autocompact aceita uma contagem de tokens pra definir quão cheia a janela fica antes do passe automático:
/autocompact 500k
Tem também a opção auto, que escolhe uma janela ajustada ao modelo
No mesmo terreno vive a variável CLAUDE_CODE_AUTO_COMPACT_WINDOW, que define a capacidade usada no cálculo da auto-compactação. O padrão dela é igual à janela de contexto do modelo, com exceção do Sonnet 5, que auto-compacta em torno de 967 mil tokens por padrão
Tome cuidado com uma coisa: sessão e checkpoint não são eternos, o Claude Code apaga os checkpoints junto com as sessões depois de 30 dias. Se você conta com o /resume pra achar uma conversa de meses atrás, esquece
Como fazer o corte sem perder o contexto que importa
Bora pro passo a passo. A ordem aqui importa mais que a velocidade
- Rode
/contexte identifique o peso. Olhe o breakdown por categoria e veja se o problema é conversa acumulada, saída de ferramenta ou arquivo de memória carregado. O erro comum deste passo é pular ele e sair compactando por reflexo, sem saber se o vilão era a conversa
- Decida pelo critério tarefa nova versus tarefa encadeada. A regra geral publicada pela Anthropic é que, ao começar uma tarefa nova, você começa uma sessão nova. A exceção são tarefas relacionadas em que parte do contexto ainda é necessária, como escrever a documentação de uma feature que você acabou de implementar. O erro comum aqui é achar que "mesmo projeto" significa "mesma tarefa", e isso é o que faz o agente misturar assunto antigo
- Compacte de forma proativa, dizendo o que vem a seguir. Com janelas maiores, a orientação é usar o
/compactantes de estourar, passando junto a descrição do próximo objetivo:
/compact focus on the auth bug fix
O erro comum deste passo é compactar sem instrução nenhuma e no susto, já com o contexto no talo: aí o resumo é genérico e some justo o que você ia usar agora
- Se o rumo errou lá atrás, use o
/rewind. Abra com o comando ou com Esc duas vezes no input vazio, ache o prompt onde a coisa ainda estava certa e escolha resumir a partir dali pra liberar espaço na janela. Um marcador de conversa resumida aparece no lugar das mensagens comprimidas. O erro comum é escolher a ação errada no menu: restaurar código e conversa é diferente de restaurar só a conversa mantendo o código atual, e você pode jogar fora trabalho bom sem querer
- Se for tarefa nova,
/clearcom nome. O comando reseta a conversa pra um contexto vazio e aceita um nome opcional pra identificar a conversa anterior no/resume. Rodar/clearao trocar de tarefa evita reenviar contexto irrelevante ao modelo e reduz o uso de tokens, e não se assuste: CLAUDE.md e os arquivos do projeto continuam disponíveis, só o histórico de conversa sai. O erro comum é limpar sem nomear e depois não ter ideia de qual conversa era qual na hora de retomar
- Fixe o que precisa sobreviver na seção Compact Instructions do CLAUDE.md. Em vez de repetir a mesma instrução a cada
/compact, você deixa escrito ali o que deve ser preservado na compactação. O erro comum é ficar redigitando a regra toda vez, cansando e um dia esquecendo (e é sempre no dia que a compactação vem)
- Delegue a parte volumosa a um subagente. Quando o Claude dispara um subagente pela ferramenta Agent, esse subagente recebe uma janela de contexto própria e devolve apenas o relatório final pra sessão principal. É a diferença entre despejar um monte de arquivo na sua conversa e receber só a conclusão. O erro comum é fazer a varredura pesada na sessão principal e depois reclamar que compactou cedo demais
Quatro situações comuns e o que fazer em cada uma
Terminou o bug e vai começar uma feature sem relação. Sinal: nada do que foi conversado importa pra próxima tarefa. Ação: /clear, de preferência com um nome pra achar a conversa depois no /resume. Manter o histórico aqui só aumenta a chance do agente puxar arquivo do bug antigo
Acabou de implementar e vai escrever a documentação. Sinal: você ainda precisa do que foi decidido, mas não do caminho todo até lá. Ação: /compact com foco, descrevendo o próximo objetivo. Esse é o caso clássico da exceção: tarefa nova, mas encadeada no mesmo contexto
Percebeu que o rumo errou há alguns prompts. Sinal: as últimas respostas foram construídas em cima de uma escolha errada, e continuar corrigindo por cima só empilha lixo. Ação: /rewind, escolher o prompt certo e, se o objetivo também é aliviar a janela, resumir a partir dali
Vai varrer arquivos grandes ou logs longos só pra extrair uma conclusão. Sinal: você quer a resposta, não o conteúdo bruto morando no seu contexto. Ação: subagente pela ferramenta Agent, que trabalha na janela dele e te devolve o relatório. Serve muito bem pra auditoria, e é o mesmo espírito de quando você quer revisar código gerado no DeepSeek antes de abrir o PR: leitura pesada lá fora, conclusão aqui dentro
O que mudou na prática quando testei um modo de contexto
No vídeo abaixo eu testo o Context Mode, um plugin que ataca esse problema por dois lados: um sandbox que filtra o que não interessa antes de entrar no contexto, e um banco local que guarda o contexto da sessão pra reinjetar depois da compactação
A dor que me levou até ele é exatamente a deste post: na minha experiência, o contexto durava de 10 a 20 minutos até compactar e o Claude Code começar a esquecer o que estava fazendo
Com o plugin, a sessão passou de uma hora
A instalação foi de 2 passos (adicionar o marketplace e depois instalar o plugin a partir dele), e dá pra instalar só no repositório de teste em vez de global, e remover depois se não curtir
Um aviso de quem já se ferrou: os slash commands do plugin podem não aparecer de imediato, aí é reiniciar o Claude Code. E o comando de diagnóstico acusou uma dependência faltando aqui, que eu resolvi antes de seguir. Não dá pra ignorar isso e tocar o trabalho
Eu não quis testar com prompt vazio, então rodei 3 prompts pesados de verdade no mesmo projeto: análise completa do código, correção de vulnerabilidades com refatoração e criação de uma funcionalidade nova com endpoint e frontend
Detalhe honesto: eu só soube formular esses prompts porque antes pedi ao Claude pra gerar um arquivo de contexto do projeto, li e planejei em cima dele
Os números que eu vi ali: no infográfico que eu mostro, um contexto de exemplo de 56 KB entraria como aproximadamente 299 bytes
Na sessão de teste, o comando de status do plugin acusou 84 KB processados, sendo 40 KB parados no sandbox (que nunca entraram no contexto) e 40 KB que entraram, com 50% de redução de tráfego de tokens
E o custo do outro lado, porque não existe almoço grátis: a reinjeção depois da compactação aumenta um pouco o contexto, só que com informação pertinente do projeto
Agora a parte que amarra com o assunto daqui: ganhar mais tempo de sessão adia o corte, não elimina o corte
Mais cedo ou mais tarde você ainda vai olhar pra conversa e decidir entre compactar com foco ou recomeçar limpo
No vídeo você vê a instalação, o diagnóstico dando problema e sendo resolvido, os três prompts pesados rodando e o status no fim mostrando o que ficou de fora do contexto
Ah, e fica a dica que eu repito lá: listar e corrigir vulnerabilidades é etapa obrigatória em qualquer aplicação feita no vibe coding antes do deploy
O critério que vale para a próxima sessão
Recapitulando sem enrolação: tarefa nova, sessão nova
Tarefa encadeada, compactação proativa com o próximo objetivo descrito no comando, e não no susto quando a janela já estourou
Se o rumo errou lá atrás, /rewind. Se a leitura é volumosa, subagente. Se o auto-compact travou com erro, o problema é o arquivo gigante, não o comando
E o próximo passo é bem concreto, dá pra fazer hoje: roda /context na sessão que está aberta agora e olha o breakdown com calma
Depois escreve a seção Compact Instructions no CLAUDE.md do projeto, listando o que não pode sumir num resumo
É o tipo de dez minutos que te devolve várias sessões inteiras depois…
Até o próximo post! =)
Perguntas frequentes
Rodar /compact toda hora numa sessão longa no Claude Code tem algum risco?
Tem, porque a compactação é perdiva: ela preserva os pedidos e os trechos de código chave, mas instruções detalhadas dadas no começo da conversa podem se perder. Pra não depender de lembrar disso a cada resumo, dá pra fixar o que precisa sobreviver numa seção Compact Instructions no CLAUDE.md.
Como ver o que está ocupando a janela de contexto antes de decidir entre /compact e /clear?
Rodando /context. Ele mostra um panorama ao vivo do tamanho do contexto, com breakdown por categoria e sugestões de otimização, além de indicar quais arquivos CLAUDE.md e de memória foram carregados.
O /clear apaga as instruções do CLAUDE.md junto com a conversa?
Não. O /clear reseta a conversa para um contexto vazio, mas o CLAUDE.md e os arquivos do projeto continuam disponíveis, só o histórico de conversa sai. Ele ainda aceita um nome opcional pra identificar essa conversa anterior depois, no /resume.
Dá pra voltar num ponto específico de uma sessão longa sem perder o código já escrito?
Dá, usando /rewind ou apertando Esc duas vezes com o campo de input vazio. O menu lista cada prompt enviado na sessão e oferece quatro ações, incluindo restaurar só a conversa e manter o código atual como está.
Depois de quanto tempo o Claude Code apaga as sessões que dá pra retomar com /resume?
Depois de 30 dias. O Claude Code apaga os checkpoints junto com as sessões nesse prazo, então não dá pra contar com o /resume pra achar uma conversa de meses atrás.
Dá pra controlar quando a auto-compactação do Claude Code dispara numa sessão longa?
Dá, com /autocompact seguido de uma contagem de tokens, tipo /autocompact 500k, ou usando a opção auto, que ajusta a janela ao modelo. Também existe a variável CLAUDE_CODE_AUTO_COMPACT_WINDOW, cujo padrão é a janela de contexto do modelo, com exceção do Sonnet 5, que auto-compacta em torno de 967 mil tokens.
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 […]
