Em minhas conversas recentes com usuários do Claude Code, um tema sempre aparece: a janela de contexto de 1 milhão de tokens é uma faca de dois gumes.
Ela permite que o Claude Code opere de forma autônoma por mais tempo e lide com tarefas de forma mais confiável, mas também abre espaço para poluição de contexto se você não for cuidadoso ao gerenciar suas sessões.
O gerenciamento de sessões é mais importante do que nunca e parece haver muitas dúvidas sobre isso. Você mantém uma sessão aberta no terminal ou duas? Começa do zero a cada prompt? Quando usar compactação, retroceder ou subagentes? O que causa uma compactação ruim?
Há uma quantidade surpreendente de detalhes aqui que podem realmente moldar sua experiência com o Claude Code, e quase tudo vem do gerenciamento da sua janela de contexto.
Um Guia Rápido sobre Contexto, Compactação e Deterioração do Contexto

A janela de contexto é tudo o que o modelo pode "ver" de uma só vez ao gerar sua próxima resposta. Ela inclui seu prompt de sistema, a conversa até agora, cada chamada de ferramenta e sua saída, e cada arquivo que foi lido. O Claude Code tem uma janela de contexto de um milhão de tokens.
Infelizmente, usar o contexto tem um pequeno custo, muitas vezes chamado de deterioração do contexto (context rot). A deterioração do contexto é a observação de que o desempenho do modelo degrada à medida que o contexto cresce, porque a atenção se espalha por mais tokens, e conteúdo mais antigo e irrelevante começa a distrair da tarefa atual. Para nosso modelo de 1MM de contexto, vemos algum nível de deterioração do contexto por volta de ~300-400k tokens, mas isso depende muito da tarefa — não é uma regra fixa.
As janelas de contexto são um limite rígido. Portanto, quando você estiver se aproximando do final da janela de contexto, precisará resumir a tarefa em que está trabalhando em uma descrição menor e continuar o trabalho em uma nova janela de contexto. Chamamos isso de compactação. Você também pode acionar a compactação manualmente.

Cada Interação é um Ponto de Ramificação
Digamos que você acabou de pedir para o Claude fazer algo e ele terminou. Agora você tem algumas informações no seu contexto (chamadas de ferramenta, saídas de ferramenta, suas instruções) e tem um número surpreendente de opções sobre o que fazer a seguir:
- Continuar — enviar outra mensagem na mesma sessão
- /rewind (esc esc) — voltar para uma mensagem anterior e tentar novamente a partir dali
- /clear — iniciar uma nova sessão, geralmente com um resumo do que você acabou de aprender
- Compactar — resumir a sessão até agora e continuar em cima do resumo
- Subagentes — delegar a próxima parte do trabalho a um agente com seu próprio contexto limpo e trazer apenas o resultado de volta
Embora o mais natural seja apenas continuar, as outras quatro opções existem para ajudar a gerenciar seu contexto.

Quando Iniciar uma Nova Sessão
As novas janelas de contexto de 1M significam que agora você pode fazer tarefas mais longas de forma mais confiável, por exemplo, construir um aplicativo full-stack do zero. Mas só porque seu modelo não ficou sem contexto não significa que você não deva iniciar uma nova sessão.
Nossa regra geral é: quando você começa uma nova tarefa, também deve iniciar uma nova sessão.
Uma área cinzenta é quando você pode querer fazer tarefas relacionadas onde parte do contexto ainda é necessária, mas não todo ele.
Por exemplo, escrever a documentação para um recurso que você acabou de implementar. Embora você pudesse iniciar uma nova sessão, o Claude teria que reler os arquivos que você acabou de implementar, o que seria mais lento e mais caro. Como a documentação pode não ser uma tarefa que exija alta inteligência, o contexto extra provavelmente vale o ganho de eficiência de não ter que reler os arquivos relevantes novamente.
Retroceder em Vez de Corrigir

Se eu tivesse que escolher um hábito que indica um bom gerenciamento de contexto, seria o retrocesso.
No Claude Code, apertar Esc duas vezes (ou executar /rewind) permite que você volte para qualquer mensagem anterior e faça um novo prompt a partir dali. As mensagens após esse ponto são removidas do contexto.
Retroceder geralmente é a melhor abordagem para correção. Por exemplo, o Claude lê cinco arquivos, tenta uma abordagem e ela não funciona. Seu instinto pode ser digitar "isso não funcionou, tente X em vez disso." Mas a melhor jogada é retroceder para logo após a leitura dos arquivos e fazer um novo prompt com o que você aprendeu. "Não use a abordagem A, o módulo foo não expõe isso — vá direto para a B."
Você também pode usar "resumir daqui" para fazer o Claude resumir seus aprendizados e criar uma mensagem de transferência, meio que como uma mensagem para a iteração anterior do Claude vinda de seu eu futuro que tentou algo e não funcionou.

Compactação vs. Sessões Novas
Quando uma sessão fica longa, você tem duas maneiras de reduzir o peso: /compact ou /clear (e começar do zero). Elas parecem semelhantes, mas se comportam de forma muito diferente.
Compactar pede ao modelo para resumir a conversa até agora e, em seguida, substitui o histórico por esse resumo. É uma operação com perdas — você está confiando que o Claude decidirá o que foi importante, mas você não precisou escrever nada e o Claude pode ser mais minucioso ao incluir aprendizados ou arquivos importantes. Você também pode direcioná-lo passando instruções (/compact focar na refatoração de autenticação, ignorar a depuração de teste).

Com o /clear, *você* escreve o que importa ("estamos refatorando o middleware de autenticação, a restrição é X, os arquivos que importam são A e B, descartamos a abordagem Y") e começa do zero. Dá mais trabalho, mas o contexto resultante é o que você decidiu que era relevante.
O Que Causa uma Compactação Ruim?

Se você executa muitas sessões longas, pode ter notado momentos em que a compactação é particularmente ruim. Nesse caso, muitas vezes descobrimos que compactações ruins podem acontecer quando o modelo não consegue prever a direção do seu trabalho.
Por exemplo, a compactação automática é acionada após uma longa sessão de depuração e resume a investigação, e sua próxima mensagem é "agora corrija aquele outro aviso que vimos em bar.ts."
Mas como a sessão estava focada em depuração, o outro aviso pode ter sido omitido do resumo.
Isso é particularmente difícil porque, devido à deterioração do contexto, o modelo está em seu ponto menos inteligente ao compactar. Com um milhão de contexto, você tem mais tempo para /compact proativamente com uma descrição do que deseja fazer.
Subagentes e Janelas de Contexto Novas

Subagentes são uma forma de gerenciamento de contexto, útil quando você sabe de antemão que uma parte do trabalho produzirá muita saída intermediária que não será necessária novamente.
Quando o Claude gera um subagente por meio da ferramenta Agente, esse subagente recebe sua própria janela de contexto nova. Ele pode fazer quanto trabalho for necessário e depois sintetizar seus resultados para que apenas o relatório final volte para o agente pai.
O teste mental que usamos: vou precisar desta saída de ferramenta novamente, ou apenas da conclusão?
Embora o Claude Code chame subagentes automaticamente, você pode querer dizer explicitamente para ele fazer isso. Por exemplo, você pode querer dizer:
- "Crie um subagente para verificar o resultado deste trabalho com base no seguinte arquivo de especificações"
- "Crie um subagente para ler esta outra base de código e resumir como ela implementou o fluxo de autenticação, depois implemente você mesmo da mesma forma"
- "Crie um subagente para escrever a documentação deste recurso com base nas minhas alterações do git"
Resumo
Em resumo, quando o Claude terminou uma interação e você está prestes a enviar uma nova mensagem, você tem um ponto de decisão.
Com o tempo, esperamos que o Claude ajude você a lidar com isso sozinho, mas por enquanto, esta é uma das maneiras de orientar a saída do Claude.






