Le coût caché du contexte : 6 milliards de tokens re-payés en 14 jours

Rapport Chaser — 23 juillet 2026 · données réelles d'une machine de développement · chiffres journalisés et recalculables
6 212 489 275 tokens
d'historique re-lus par le cache en 14 jours — 45 sessions Claude Code, zéro compaction spontanée observée. 96 % du volume total n'est pas du travail neuf : c'est la même conversation, re-lue à chaque appel. (Run de référence du 23/07/2026, artefact local compaction_rejeu.json, recalculable.)

Le phénomène

Une session d'agent de code re-envoie tout son historique à chaque message (API sans état). Le cache d'Anthropic rend cette relecture ~10× moins chère, mais elle domine quand même la facture : sur nos données réelles, 96 % des tokens comptés sont du cache_read. Personne ne compacte : sur 14 jours et 45 sessions, aucune compaction spontanée. Le seul mécanisme sanctionné qui réduit un historique déjà payé est /compact — encore faut-il savoir quand il rapporte.

Le rejeu contrefactuel

Nous avons rejoué les 45 sessions avec une politique simple : « compacter dès que le poids d'historique dépasse θ » (simulation au 1er ordre : coût de compaction = relecture + résumé ; contexte post-compaction S0 = 12k, annoncé comme estimation).

Seuil θÉcart vs réel (tokens d'historique)
400 000−36,0 %
200 000−65,2 %
120 000−78,4 %

Résultat négatif assumé : un seuil « appris » par session ne bat PAS le meilleur seuil fixe au coût-tokens pur (oracle par-session : +0,0 % sur 45/45 sessions) — l'optimum réel est borné par la qualité, pas par l'arithmétique. Nous publions aussi ce qui ne marche pas.

Ce que Chaser en a fait (livré, mesuré)

Antériorité et limites

Art antérieur identifié au 23/07/2026 : compression de prompt avant envoi, heuristiques manuelles de compaction publiées en blog. Aucun équivalent public identifié des mécanismes ci-dessus à cette date. Limites annoncées : le rejeu est une simulation au 1er ordre (perte de qualité non modélisée) ; la pondération de la relecture de cache dans les limites d'abonnement est propriétaire ; toute conversion tokens↔caractères utilise un ratio calibré sur le compteur officiel count_tokens.

Chaque chiffre de ce rapport provient d'un journal local auditable (JSONL horodaté) et se recalcule avec le script de rejeu fourni avec Chaser (experiments/compaction_optimale/mesurer.py). Chaser est 100 % local : vos transcripts ne quittent jamais votre machine.

← chaser-orchestrator.com