Skip to content

Gestão de Contexto: Não deixe que ele sofra de "amnésia" nem queime seus tokens

📚 Navegação da Série: O artigo anterior 18 Guia do CLAUDE.md ensinou como colocar as regras do projeto naquele "manual de integração". Este artigo vai um nível acima — este manual, juntamente com suas conversas e os arquivos lidos, fica todo espremido em uma bancada de trabalho chamada "janela de contexto". Como gerenciar essa bancada e evitar que ela transborde é o tema de hoje.

Quando você começa a usar o Claude Code, é muito fácil cometer um erro bobo.

Ao assumir um projeto de médio porte desconhecido, pensando "vou fazer ele ler o repositório inteiro primeiro para que ele entenda o quadro geral antes de agir", você joga a seguinte frase: "Leia todos os arquivos deste projeto e depois me diga qual é a arquitetura."

O resultado? Ele realmente lê arquivo por arquivo, a tela do terminal rola sem parar, e depois de ler uns vinte arquivos, ele fica visivelmente mais lento e letárgico. Quando você começa a pedir para ele corrigir um bug de login, ele surpreendentemente pergunta "em qual arquivo está esse módulo de auth que você mencionou" — um arquivo que ele leu há apenas dez minutos. O trabalho não terminou, mas ele já teve "amnésia", e uma montanha de tokens foi queimada.

Depois de entender como funciona, você percebe: a janela de contexto não é melhor quanto mais cheia; quando fica cheia, ela o deixa mais estúpido. Hoje vamos explicar detalhadamente essa "bancada de trabalho" — o que ela é, o que acontece quando enche, como usar /compact e /clear para limpar, como verificar o uso em tempo real e como economizar tokens desde a origem.

Após ler este artigo, você terá:

  • Uma analogia para entender perfeitamente o que é a "janela de contexto" e o que realmente acontece quando ela fica cheia
  • Uma tabela clara sobre quando usar /compact (comprimir), /clear (limpar) ou abrir uma nova sessão
  • Como usar /context e /usage para ficar de olho na ocupação específica das ações + saída esperada
  • Cinco hábitos diários para economizar tokens, cada um vindo de tropeços reais
  • Um entendimento de como a "compressão automática" (auto-compact) funciona nos bastidores, para não se assustar quando for interrompido repentinamente

01 Janela de Contexto: Qual é o tamanho da "bancada" do Claude?

Primeiro, vamos estabelecer o conceito central.

Janela de contexto (context window) — é a capacidade total de todo o conteúdo que o Claude pode "ver" simultaneamente nesta sessão, medido em tokens (a menor unidade de cobrança de processamento de texto do modelo).

O que ela guarda não é apenas o que você digita, mas todo um amontoado de coisas. O documento oficial context-window.md destrincha isso claramente, vou traduzir para humanos:

O que entra na bancadaQuando entraQuanto ocupa
Prompt do sistema (regras de comportamento do Claude)A cada inicialização, você não vêUma parte fixa
Seu CLAUDE.md (global + projeto)Carregado integralmente na inicializaçãoDepende do tamanho do arquivo
Memória automática (auto memory)Carregada na inicialização (tem um limite)Médio
Cada frase que você digitaVocê envia, ela entraGeralmente muito pouco
Cada arquivo que ele lêEle anexa a cada leituraA maior parte, queima mais rápido
Saídas de comandos, resultados de ferramentasAnexado após a chamada da ferramentaLogs / Arquivos grandes são muito rápidos

Entendeu? Você pensa que a conversa é principalmente "o que você fala", mas a maior parte são os arquivos que ele lê e as saídas de comandos. Naquela vez que você mandou ele ler vinte arquivos, foi como se você enchesse a bancada dele de plantas de engenharia, sobrando pouquíssimo espaço vazio para o "trabalho real".

Analogia: O tamanho de uma bancada de trabalho. Pense no Claude como um carpinteiro trabalhando em uma bancada. A bancada tem um tamanho fixo, as plantas, as ferramentas, as peças semi-acabadas, os post-its que você passa para ele, tudo tem que ser espalhado ali. Uma bancada grande permite que ele cuide de muitas coisas simultaneamente; mas, se a bancada ficar lotada, ele terá que empurrar as plantas mais antigas para o lado — as informações naquelas plantas, ele "esquece".

Qual o tamanho dessa bancada? Depende do modelo que você usa. A maioria dos modelos está na faixa de 200 mil tokens, enquanto alguns modelos (como aqueles com o identificador [1m]) chegam a 1 milhão. Mas lembrar-se desta frase é mais útil do que números:

A bancada, por maior que seja, tem limites; quanto mais cheia, mais bobo ele fica.

💡 Resumo em uma frase: A janela de contexto é a bancada de trabalho do Claude, o volume maior consiste nos arquivos que ele lê e não no que você fala; a bancada tem limites, e quando enche, ele começa a "deixar cair" as informações anteriores.


02 O que acontece quando a bancada enche: Ele fica mais lento, mais burro, e até tem "amnésia"

Este é o julgamento mais importante deste artigo: O contexto não é melhor quando está cheio; quando chega a um certo nível, o desempenho do Claude cai de forma perceptível a olho nu.

Por quê? Quanto mais coisas na bancada, mais fina a "atenção" do modelo se torna, e conteúdos irrelevantes anteriores começam a interferir na tarefa atual. A indústria chama esse fenômeno de "degradação do contexto" (context rot).

Como saber se está "degradando"? Resumi alguns sintomas da linha de frente, se acertar qualquer um, fique alerta:

  • Ele começa a se contradizer, esquecendo a solução que vocês já tinham concordado
  • As respostas ficam vagas e genéricas, com cada vez menos detalhes e muita conversa mole correta
  • Ele repete perguntas que você já respondeu (como no início: "onde está o arquivo de auth?")
  • Sobre a mesma pergunta, você o corrige duas vezes e ele continua girando em círculos

Por exemplo, ao escrever um script de migração de dados, após mais de uma hora de depuração, mais tarde ele lhe oferece novamente a solução incorreta que vocês rejeitaram na primeira meia hora. Não foi a capacidade dele que diminuiu, é que o contexto foi poluído por uma hora de lixo de depuração.

E o que o Claude faz se a bancada realmente ficar cheia? Ele irá comprimir automaticamente (auto-compact) — abordaremos em detalhes na Seção 05. Por agora apenas saiba: é uma ação defensiva passiva, o momento não depende de você, e ele pode interrompê-lo repentinamente no meio de uma tarefa crítica.

Então a postura correta é: não espere a compressão automática, gerencie de forma proativa. Como gerenciar? Continue lendo.

💡 Resumo em uma frase: Encher o contexto desencadeia a "degradação do contexto" — contradições, generalizações, perguntas repetidas; em vez de ficar corrigindo numa bancada poluída, é melhor limpar ativamente.


03 Duas Vassouras: /compact (comprimir) vs /clear (limpar)

Para arrumar a bancada, o Claude Code lhe dá duas vassouras, seus propósitos são completamente diferentes, jamais confunda.

/compact: "Empacota e esmaga" as coisas na bancada, mas mantém

A função do /compact (comprimir) é: pegar todo este longo histórico de conversa, resumi-lo numa síntese curta, e depois substituir o registro literal por este resumo, continuando a trabalhar na mesma tarefa.

Analogia: Transformar uma mesa cheia de rascunhos numa página de pontos principais. Você discutiu com um colega por duas horas, a mesa cheia de desenhos falhos. /compact pega toda essa rascunhada e faz uma página dizendo: "Decidimos A, vetamos B, o próximo passo é C". A mesa está limpa, mas a conclusão continua lá.

Ponto chave: ele permite que você dê instruções indicando o que manter como prioridade:

text
/compact Mantenha as decisões de arquitetura do fluxo de autenticação e os formatos de API já confirmados, descarte as tentativas inválidas da depuração

O exemplo em inglês do costs.md oficial é /compact Focus on code samples and API usage (Foque em exemplos de código e uso de API), é a mesma ideia.

Quando usar /compact: Quando a tarefa não terminou, mas o contexto está quase cheio e o que foi conversado antes será necessário depois. Por exemplo, no meio de uma funcionalidade, as decisões de arquitetura iniciais não podem ser perdidas, mas as saídas de comandos das tentativas e erros no meio do caminho podem ser jogadas fora.

/clear: Limpa tudo, começa do zero

O /clear (limpar) é mais drástico: apaga o histórico da conversa inteira, como se iniciasse uma sessão completamente nova.

Mas não se preocupe — o /clear não mexe no seu CLAUDE.md nem na memória automática, os dois carregarão automaticamente na nova sessão. O que você perde é apenas "o que foi falado nesta sessão"; as regras do projeto e as memórias de longo prazo permanecem intactas.

Analogia: Ao mudar para uma tarefa totalmente nova, é melhor limpar a mesa antes de começar a trabalhar. A tarefa anterior terminou, a próxima não tem relação alguma com a anterior, então limpar a mesa é mais limpo do que manter a interferência da tarefa passada.

O próprio costs.md oficial aconselha: Quando mudar para um trabalho não relacionado, use /clear para recomeçar, pois "o contexto obsoleto gasta tokens em cada mensagem subsequente".

Aqui tem uma regra de ouro que vale a pena estabelecer: Se você corrigiu o mesmo problema duas vezes e ele ainda não acertou, não perca mais tempo nesta sessão, use logo o /clear, e, com as lições dessas duas tentativas, reescreva um prompt mais preciso e pergunte do zero. Uma bancada limpa + um prompt melhor, quase sempre superam a insistência num contexto poluído — esta é a dica mais valiosa dos testes práticos.

💡 Resumo em uma frase: /compact é "empacotar e esmagar para continuar usando", /clear é "limpar tudo e recomeçar numa nova tarefa"; corrigiu duas vezes e ainda errou, não hesite: /clear.


04 Monitorando o uso: Use /context e /usage para ver quanto resta da bancada

Julgar por instinto "se está quase cheio" é muito abstrato. O Claude Code fornece dois comandos para você ver os números reais; não misture os nomes.

/context: Veja o que está enchendo a bancada

text
/context

/context vai visualizar a ocupação em tempo real do contexto atual através de um gráfico de grade colorido, e listá-la por categoria — quanto o prompt do sistema ocupa, quanto o CLAUDE.md ocupa, quanto cada serviço MCP ocupa, quanto o histórico da conversa ocupa, e ainda fornecerá sugestões de otimização. A documentação oficial context-window.md é clara: Se quiser saber o uso real do seu contexto a qualquer momento, execute /context.

Um hábito válido a se criar: Dê uma olhada no /context para conferir a base antes de iniciar uma grande tarefa. Se você descobrir que um serviço MCP está ocupando um grande espaço à toa, ou que o CLAUDE.md está bizarramente inchado, limpe isso antes de trabalhar.

Tem também um comando complementar /memory, usado para verificar exatamente quais arquivos CLAUDE.md e de memória automática foram carregados na inicialização — use-o quando suspeitar que ele "lembrou errado" de algo.

/usage: Veja quantos tokens / dólares essa sessão queimou

text
/usage

O bloco Session no topo do /usage fornece as estatísticas de uso de token da sessão atual, convertidas em dólares segundo uma estimativa local. A aparência mostrada no costs.md oficial é mais ou menos assim:

text
Total cost:            $0.55
Total duration (API):  6m 19.7s
Total duration (wall): 6h 33m 10.2s
Total code changes:    0 lines added, 0 lines removed

Explicação da saída esperada: Total cost é o custo estimado desta sessão (calculado localmente, podendo divergir da fatura real; o número autoritativo é no Claude Console); Total duration (API) é o tempo gasto na invocação do modelo; Total duration (wall) é o tempo total em que a sessão esteve aberta.

⚠️ Aviso: O custo da sessão para usuários Pro / Max está incluído na assinatura, esse valor em dólares não tem relação direta com sua fatura, olhe só para ter noção da magnitude relativa. Abordamos planos e cobranças específicos no Artigo 06; este foca no token da perspectiva do "contexto".

Acha incômodo ter que digitar isso manualmente toda vez? A versão oficial permite que o uso do contexto permaneça fixado na barra de status (statusline), mantendo-o constantemente na tela. Veja o método de configuração no documento oficial de statusline, que não será detalhado aqui.

💡 Resumo em uma frase: /context vê "o que está ocupando a bancada", /usage vê "quantos tokens / dinheiro foram queimados nesta vez"; antes de começar grandes tarefas, olhe o /context.


05 Compressão automática (auto-compact): Ele vai se proteger, mas não conte com isso

Mencionamos "compressão automática" várias vezes, vamos esclarecer o que é.

auto-compact (compressão automática) — é o mecanismo de proteção integrado do Claude Code: quando o contexto se aproxima do limite da janela, ele resumirá automaticamente o histórico da conversa, abrindo espaço para continuar trabalhando, evitando que você dê de cara num erro. O documento oficial costs.md coloca-o junto ao prompt caching, como um dos dois meios do Claude Code de "otimizar automaticamente os custos".

Analogia: O descarregamento automático em uma esteira. A esteira está quase cheia, o sistema consolida e compacta o material antigo para evitar o travamento de toda a linha. Você não precisa fazer nada, é acionado automaticamente.

Parece atencioso, mas aconselho a não depender disso, por duas razões:

Primeiro, o momento de acionamento não depende de você. Pode ser que no meio de um passo crítico que você o colocou para fazer, a bancada encha e ele pare de repente para comprimir — seu ritmo é totalmente quebrado.

Segundo, a compressão automática é uma "compressão sem instruções". O momento em que ela é acionada é exatamente quando o contexto está mais cheio e o modelo mais lerdo. Neste momento ele mesmo decide o que descartar e o que guardar, e é bem provável que ele jogue fora algo que você acha importante.

Então, a atitude correta é agir proativamente: quando sentir que a conversa ficou longa, e o /context mostrar que o uso está alto, faça você o /compact primeiro e adicione instruções apontando as prioridades. A compressão ativa tem duas vantagens — o momento é você quem escolhe, o que guardar também é você quem escolhe.

E tem uma tática mais despreocupada ainda: escrever as preferências de compressão direto no CLAUDE.md. O costs.md recomenda adicionar este trecho:

markdown
# Compact instructions

When you are using compact, please focus on test output and code changes

(Instruções de compressão: Quando usar a compressão, por favor foque na saída dos testes e mudanças no código)

Dessa forma em toda compressão (manual ou automática), ele priorizará o conteúdo que você estipulou, é como colocar um seguro na compressão automática. Por exemplo, em um projeto, adicione "Na compressão, mantenha as decisões da solução já aprovada e os contratos de API" no CLAUDE.md, poupando a necessidade de repetir isso toda hora.

💡 Resumo em uma frase: A compressão automática serve para salvar o processo, mas pode lhe interromper, e possivelmente suprimir pontos-chave; em vez de esperar por ela, é melhor intervir proativamente com /compact seguido de instrução, ou definir as diretrizes no CLAUDE.md.


06 Cinco Dicas para Salvar Tokens: Como prevenir que a bancada lote logo de cara

Limpar a bancada é o conserto, evitar que ela encha rapidamente é a melhor estratégia. Estas cinco técnicas são úteis diariamente, e abordam sob a ótica do "contexto", independentemente da fatura.

Dica Um: Não treine com grandes projetos. Como falamos no Artigo 07 — na fase de testes, crie um projetinho de brinquedo com três a cinco arquivos. Poucos arquivos, ele lê menos, a bancada fica limpa, e você consegue enxergar o que ele faz. Aquela história do "ler vinte arquivos e ter amnésia" do começo, a raiz do problema é que de cara foi jogado um projeto médio e desconhecido para ele.

Dica Dois: Use @ apontando o arquivo exato, não o deixe zanzando à procura na base inteira. Em vez de dizer "corrija um bug no login" fazendo-o revirar arquivos, seja direto @src/api/auth.ts corrija o problema de 401. O documento costs.md afirma de modo explícito: pedidos amplos geram buscas genéricas, os pedidos exatos o levam direto ao ponto com a leitura mínima de arquivos. O @ fixa os olhos do Claude diretamente no arquivo.

Dica Três: Evite solicitar dezenas de tarefas ao mesmo tempo. Jogar cinco demandas de uma só vez não funciona, a vasta leitura de arquivos e geração de output rebentam a janela. Divida em cinco pequenas perguntas, complete-as em turnos, a mesa estará sempre refrescada.

Dica Quatro: Subdivida grandes tarefas e limpe ao finalizar cada etapa. Uma funcionalidade enorme não deve tentar durar de ponta a ponta na mesma sessão. Concluindo um bloco mais segmentado, engula tudo num /compact; partindo para outra área, jogue limpo com /clear.

Dica Cinco: Entregue as manipulações maçantes e enormes para subagentes (subagents). Rodar um bando de testes, esquadrinhar pilhas de logs, ler grandes documentações e retornar uma carga colossal de coisas — largue essas prazerosas atividades pros subagentes — o agente faz a bagunça na mesa dele, só traz os resultados destilados e precisos pra o seu bate-papo. O context-window.md ilustra que um subagente puxa 6100 tokens, e na janela principal só gasta 420. Há uma área própria no artigo dos subagentes pra lidar com isso (link será complementado).

Vamos ver a balança "Conserto" e "Prevenção", e você saberá onde concentrar forças:

O que FazerEssênciaMomento Certo
/compactConserto · Esmiuçar pra continuarTarefa pendente, uso alto de Token, história no meio serve para algo
/clearConserto · Zerar para mudar rumoAssunto totalmente novo, ou poluição pesadíssima
Fechar a sessão (sair e retornar claude)Prevenção · Novo Recomeço LimpoZero rastro passado
@ Foco ExatoPrevenção · Reduz Arquivos GulososA principal prática de qualquer pedido a todo instante
Usar Projeto de BrinquedoPrevenção · Minimizando Custo no InícioFases Iniciais de Domínio e Teste
Delegar aos SubagentesPrevenção · Isola a Imensa Saída SujaTestes, varreduras de logs e leitura intensa de documentos longos

💡 Resumo em uma frase: Limpar o prato é remediação, direcionar bem os arquivos, diminuir escopo de uma pergunta, jogar prum subagente, isso sim é profilático; A melhor memória muscular que você construirá aqui: Usar o @ pra mirar o arquivo-alvo, sem delongas.


07 Passo a Passo: Tres etapas para o controle de contexto

Sem ação, não dá para assimilar nada. Use a linha mestra a seguir, no mais singelo projeto, a fim de observar de pertinho como ele consome token e com o /compact amassa os dados de volta. Numa pasta de sua escolha rode claude. Siga isso:

Passo Um: Examine o quadro inicial

Aberto o Claude, comece com isto:

text
/context

O Esperado: Será despejada no terminal uma avaliação analítica — verás o prompt de sistema e os dados CLAUDE.md pegando algum espacinho (ter algum gasto de token antes de iniciar uma conversa, é totalmente aceitável e rotineiro), mais sugestões no rodapé. Guarde esse montante inicial do Total Use.

Passo Dois: Propositalmente "Encha-o" e verifique a diferença

Mande ele revirar os arquivos e responder a um monte de coisa. Algo do tipo:

text
Dê uma lida atenta aos arquivos centrais deste projeto, e resuma para mim a estrutura

Ao findar toda a leitura e apresentar as respostas, invoque isto de novo:

text
/context

O Esperado: A ocupação da janela explodiu de verdade, histórico do bate-papo e o custo na seção dos arquivos aumentaram imenso. Esse é o tal do "pico", onde ele abarrota o contexto — eis ali os números.

Passo Três: Use o /compact para empurrá-lo de volta

text
/compact Concentre o contexto somente na conclusão geral de como a arquitetura do projeto está desenhada, jogue as análises arquivo-a-arquivo originais pela janela.

O Esperado: Surgirá "Conversation compacted" ou a indicação de comprimido. É executado no plano de fundo de modo silencioso e sem relatórios quilométricos em tela. Depois lance logo em seguida outro /context, e as colunas de histórico do chat despencarão o seu custo. A compreensão da estrutura ele reteve; os textos literais que lhe deu nos arquivos ele torceu de volta.

Controle Empírico: Jogue o /context antes e depois, observe a flutuação. Havendo sucesso, se perguntar por que estrutura ele respondeu previamente, ele te provará que nada esqueceu.

⚠️ Atenção a este ponto: O Compactar é "Losty", perde partes no caminho, há descarte irreversível de conteúdos não demarcados por você (como retornos puros de ferramentas). As peças de mais elevado calibre? Passe tudo lá para o seu CLAUDE.md conforme vimos no Artigo 18, jogando para que ele "junte a diretriz ao CLAUDE.md", ou então com a mão, usando /memory. Muito mais certeiro.

💡 Resumo em uma frase: Jogue um /context → Entregue conteúdo → /compact → Lance /context, vês assim o balão inflando de tokens e se desinflando aos seus comandos.


08 Conclusão

Este tópico abriu a caixa para examinarmos de fora a dentro o "Mundo da Janela de Contexto" da bancada do Claude:

O que você FixouSumário
Janela de Contexto O que éA Mesa-bancada, arquivos carregados nela valem 10x mais pesos que o próprio bate-papo
Carga Lotação ExtremaEleva ao grau de deterioração: Lento, genérico, falha-de-memória das pontas passadas e repetidor assíduo
/compactFio-terra de resumir os pedaços velhos na hora de necessidade com direções focais
/clearZera total e limpa pra mudar percurso, ele guarda os seus setups do CLAUDE.md ilesos
/context e /usageO de cima mira: O Que ocupa espaço
Auto-compact (Automático)Salvaguarda contra esgotamento final; jogue ativamente e crie prioridades. Seu acionamento a esmo apaga pontas vitais.
Cinco dicasMinimiza projetos de treino / Ferramente o @ para evitar buscas vagas / Desfaleça os trabalhos titânicos / Transborda e delega em subagentes!

Tudo o que se necessita saber de antemão agora é teu: Ter um faro visual do que ocupa peso, notar quando ele decai devido a poluição mental da janela, lançar a "compressão e o expurgo" nas melhores brechas com /compact e /clear, varrer os gastos por /usage, mas principalmente; Nunca, e jamais saturar e abarrota as mãos dele sem necessidade e não focar, poupando os canais por prevenção e precisão, para deixar o espaço de tela focado no serviço central.

Numa simples lição resumida, Administrar essa mesa se consagra em algo: Focar e gastar o olhar curto e estreito do Claude em algo que verdadeiramente te dá resposta, sem ser sugado pelas baboseiras laterais e sucatas irrelevantes no passado imediato.

Janela de Contexto e /compact, /clear

Este diagrama representa a Janela de Contexto ilustrativamente como a bancada: Empanturrado aos 92% pelas conversas passadas e aberturas repetidas, ele se livra ao agir de /compact (comprimindo 10 fls numa conclusão folha-única, para rodar) ou pela guilhotina do /clear que desaloja todas as peças e cria área ampla. Um assegura as chaves, o outro a assepsia completa do terreno!


Próximo Capítulo — 20 · Configuração de Permissões — Até aqui mantivemos o foco no nível "A Memória - Seu peso"; Chega de memória e foco cognitivo! A Lição vai incidir e apertar os freios na autonomia da Ação e a sua Periculosidade de Acesso. "Posso alterar isto? Devo ler aquele sistema vital?". Vamos ditar quando e em qual proporção do fluxo, tu irás travar ele exigindo o teu Ok e Permitir. A Grande pergunta antes: Você suportaria confiar o Git Push diretamente ao toque robótico na sua própria Codebase na ausência total da tua concordância?


Leituras Recomendadas