Correção de Desperdício de Tokens no Claude Code: Desativar Cabeçalho de Atribuição para Melhores Acertos de Cache

O Claude Code tem desperdiçado tokens em cada nova sessão desde a versão 2.1.69 devido a um cabeçalho de atribuição de cobrança que quebra o cache de prompts. O problema está documentado em várias issues do GitHub (#40652, #34629, #40524) sem resposta oficial da Anthropic até a data de publicação da fonte.
O Que Está Acontecendo
Desde a v2.1.69, o Claude Code insere uma string de atribuição de cobrança no primeiro bloco do seu prompt do sistema: x-anthropic-billing-header: cc_version=2.1.88.a3f; cc_entrypoint=cli; cch=00000;
A parte .a3f é um hash de 3 caracteres calculado a partir da sua primeira mensagem em cada conversa usando esta função:
function computeHash(firstUserMessage, version) {
const chars = [4, 7, 20].map(i => firstUserMessage[i] || "0").join("");
return sha256("59cf53e54c78" + chars + version).slice(0, 3);
}Conversas diferentes com primeiras mensagens diferentes geram hashes diferentes cada vez.
Por Que Isso Quebra o Cache
O cache da Anthropic requer segmentos de prompt 100% idênticos. O cache é compartilhado em toda a sua Organização ou Workspace, não por sessão. O cabeçalho de cobrança fica no início do prompt do sistema de ~23K tokens, e como ele muda por conversa, o prefixo nunca corresponde, causando falhas de cache em cada novo chat.
Resultados do Benchmark
Um teste A/B controlado mostrou:
- Cabeçalho LIGADO (padrão): 48% de taxa de acerto no cache, ~12K tokens reconstruídos por sessão
- Cabeçalho DESLIGADO: 99,98% de taxa de acerto no cache, criação zero de cache em 3 de cada 4 sessões
O resultado é 7x mais barato por sessão no processamento do prompt do sistema.
A Solução
Adicione isto à configuração do seu shell:
export CLAUDE_CODE_ATTRIBUTION_HEADER=falsePara usuários do zsh:
echo 'export CLAUDE_CODE_ATTRIBUTION_HEADER=false' >> ~/.zshrc
source ~/.zshrcNovas sessões o detectam automaticamente. Sessões existentes não precisam ser reiniciadas—o hash não muda no meio da conversa, e elas não interferem com novas sessões.
Segurança e Contexto
Isto não é uma gambiarra—a variável de ambiente existe no código-fonte como um recurso de alternância adequado. O claude-code-router e o CLIProxyAPI têm sido enviados com isso desativado em produção sem problemas relatados.
A Anthropic provavelmente implementou isto para rastrear qual versão e ponto de entrada (CLI vs SDK vs GitHub Action) fez cada chamada de API, colocando-o no prompt do sistema porque o Bedrock/Vertex não encaminham cabeçalhos personalizados.
📖 Leia a fonte completa: r/ClaudeAI
👀 See Also

Código Claude: Gerenciamento de Contexto em vez de Engenharia de Prompt
Um desenvolvedor compartilha que, após um ano usando o Claude Code, a habilidade fundamental não é a formulação de prompts ou a seleção de modelos, mas sim fornecer o contexto completo do projeto desde o início para obter melhores resultados.

Se o OpenClaw Ainda Precisar do Seu Próximo Prompt, Ele Ainda Não é Autônomo — Um Prompt de Configuração para Fluxos de Trabalho Persistentes
Trate o OpenClaw como um coordenador, não uma superfície de chat. Use o GOALS.md como um roteiro compartilhado, uma meta do Codex de cada vez.

8 Dicas Táticas de Fluxo de Trabalho do Claude Code para Resultados Prontos para Produção
Force perguntas esclarecedoras, auto-verificação em tarefas, Saída Antecipada e aproveite Vision/DevTools para obter código pronto para produção a partir do Claude.

Usuário do Reddit compartilha estrutura de prompt para reduzir desvios na saída de código do Claude em tarefas complexas
Um usuário do Reddit descobriu que usar um layout de prompt estruturado para tarefas mais longas no Claude Code ajuda a evitar a deriva da saída. A abordagem envolve definir elementos específicos como escopo da tarefa, arquivos necessários, critérios de sucesso e parâmetros de evitação antes da execução.