Correction du Gaspillage de Jetons Claude Code : Désactiver l'En-tête d'Attribution pour de Meilleurs Résultats de Cache

Claude Code gaspille des tokens à chaque nouvelle session depuis la version 2.1.69 à cause d'un en-tête d'attribution de facturation qui casse la mise en cache des invites. Le problème est documenté dans plusieurs issues GitHub (#40652, #34629, #40524) sans réponse officielle d'Anthropic à la date de publication de la source.
Ce qui se passe
Depuis la v2.1.69, Claude Code insère une chaîne d'attribution de facturation dans le premier bloc de votre invite système : x-anthropic-billing-header: cc_version=2.1.88.a3f; cc_entrypoint=cli; cch=00000;
La partie .a3f est un hachage de 3 caractères calculé à partir de votre premier message dans chaque conversation en utilisant cette fonction :
function computeHash(firstUserMessage, version) {
const chars = [4, 7, 20].map(i => firstUserMessage[i] || "0").join("");
return sha256("59cf53e54c78" + chars + version).slice(0, 3);
}Différentes conversations avec des premiers messages différents génèrent des hachages différents à chaque fois.
Pourquoi cela casse la mise en cache
La mise en cache d'Anthropic nécessite des segments d'invite 100% identiques. Le cache est partagé dans toute votre Organisation ou Espace de travail, pas par session. L'en-tête de facturation se trouve au début de l'invite système d'environ 23K tokens, et comme il change par conversation, le préfixe ne correspond jamais, provoquant des échecs de cache à chaque nouveau chat.
Résultats de benchmark
Un test A/B contrôlé a montré :
- En-tête ACTIVÉ (par défaut) : Taux de succès du cache de 48%, ~12K tokens reconstruits par session
- En-tête DÉSACTIVÉ : Taux de succès du cache de 99,98%, aucune création de cache sur 3 sessions sur 4
Le résultat est 7x moins cher par session sur le traitement des invites système.
La solution
Ajoutez ceci à votre configuration shell :
export CLAUDE_CODE_ATTRIBUTION_HEADER=falsePour les utilisateurs de zsh :
echo 'export CLAUDE_CODE_ATTRIBUTION_HEADER=false' >> ~/.zshrc
source ~/.zshrcLes nouvelles sessions le prennent automatiquement en compte. Les sessions existantes n'ont pas besoin d'être redémarrées—le hachage ne change pas en cours de conversation, et elles n'interfèrent pas avec les nouvelles sessions.
Sécurité et contexte
Ce n'est pas un hack—la variable d'environnement existe dans le code source comme une bascule de fonctionnalité appropriée. claude-code-router et CLIProxyAPI ont été livrés avec ceci désactivé en production sans problèmes signalés.
Anthropic a probablement implémenté ceci pour suivre quelle version et point d'entrée (CLI vs SDK vs GitHub Action) a effectué chaque appel API, le plaçant dans l'invite système car Bedrock/Vertex ne transmettent pas les en-têtes personnalisés.
📖 Lire la source complète : r/ClaudeAI
👀 See Also

Comment je sollicite les modèles d'IA en 2026 vs il y a un an : 3 changements clés
Un développeur partage trois changements concrets : passer des templates de prompt aux compétences réutilisables, écrire des objectifs au lieu d'instructions étape par étape, et utiliser les commandes /loop pour les projets longue durée dans Claude Code et Codex.
La réponse d'un sous-agent n'est pas un accusé de réception : liste de vérification de l'orchestrateur
Le sessions_spawn d'OpenClaw est non bloquant : une réponse ne signifie pas que c'est terminé. Utilisez yield et Task Flow, et réconciliez l'état des sous-tâches pour éviter les faux succès.

OpenClaw : Si votre tâche ne survit pas à un redémarrage, c’est encore une session de discussion
Un post sur Reddit affirme que les tâches OpenClaw qui dépendent de l'historique de conversation pour leur état ne sont pas reprises. Stockez l'identité de la tâche, l'étape et l'état d'approbation en dehors de la transcription.
Un utilisateur de r/openclaw demande un script de migration héritée avant les grandes mises à jour
Un utilisateur de Reddit suggère d'ajouter un script de migration aux mises à jour d'OpenClaw pour éviter les problèmes post-mise à jour, réduisant ainsi les corrections manuelles pour les configurations incorrectes.