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

sessão longa no Claude Code: quando escolher /compact ou /clear
Resposta rápida

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
Pré-inscrição Formação Claude Code

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 /context de vez em quando pra ver o que está ocupando espaço
  • escrever a seção Compact Instructions no CLAUDE.md do projeto, dizendo o que precisa sobreviver a qualquer resumo
  • ajustar o /autocompact pra 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

  1. Rode /context e 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
  1. 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
  1. Compacte de forma proativa, dizendo o que vem a seguir. Com janelas maiores, a orientação é usar o /compact antes 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

  1. 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
  1. Se for tarefa nova, /clear com nome. O comando reseta a conversa pra um contexto vazio e aceita um nome opcional pra identificar a conversa anterior no /resume. Rodar /clear ao 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
  1. 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)
  1. 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.




Subscribe
Notify of
guest

0 Comentários
Oldest
Newest Most Voted

Formações

Formação Vibe Coding

Formação Vibe Coding

Do Prompt ao Produto: Crie Software Real com IA

  • 474 aulas
  • 20 projetos
  • 39h 27min

Blog | Mais populares