Cache des prompts des agents de code : coûts et limites

Un agent renvoie tout son contexte à chaque requête ; le cache évite de facturer ce contenu au plein tarif à chaque fois. Mais un caractère changé près du début peut obliger à tout retraiter.

Chaque étape d'une session d'agent est une nouvelle requête API : vos messages comme les résultats d'outils que l'agent renvoie. Le modèle ne garde rien entre deux requêtes. L'agent retransmet donc le prompt système, les outils, les instructions du projet, toute la conversation et les nouveaux éléments. Presque tout correspond à la requête précédente. Le cache permet au fournisseur de ne pas le retraiter entièrement.

Claude Code gère le cache pour vous. Sur l'API, un champ cache_control de premier niveau active le cache automatique. Les modèles OpenAI utilisés par Codex CLI suivent eux aussi une règle de préfixe, mais avec leurs tarifs et leurs durées. Les chiffres ci-dessous concernent Claude.

Un préfixe exact, dans un ordre fixe

Le cache compare le début de chaque requête, son préfixe, à ce qu'il a traité récemment. La correspondance doit être exacte : un seul caractère modifié invalide tout ce qui suit. Il n'y a pas de cache indépendant pour chaque fichier ou section.

L'ordre est fixe : définitions d'outils, prompt système, puis messages. Un changement à un niveau invalide ce niveau et tous les suivants. Modifier un message laisse les outils et le prompt système en cache ; modifier un outil invalide tout.

Claude Code place les éléments les plus stables en tête : ses instructions et outils, puis votre contexte de projet (CLAUDE.md, mémoire, règles), enfin la conversation. Sur un tour ordinaire, la requête précédente entière constitue le préfixe et seul le dernier échange est nouveau.

Prix des écritures et lectures du cache

Le cache modifie le prix de l'entrée, pas celui de la réponse. En septembre 2026, Anthropic facture l'écriture à 1,25 fois le prix de base pour cinq minutes et à deux fois pour une heure. Une lecture coûte un dixième, sauf sur Claude Fable 5.1 (0,025 fois) et Claude Opus 5.5 (0,05 fois). Ce qui suit le dernier point de cache est facturé comme entrée ordinaire.

ModèleEntréeSortieLecture du cacheÉcriture cache 5 minÉcriture cache 1 hContexte
Claude Haiku 4.51,005,000,101,252,00200 000
Claude Sonnet 52,0010,000,202,504,001 000 000
Claude Sonnet 4.63,0015,000,303,756,001 000 000
Claude Opus 4.65,0025,000,506,2510,001 000 000
Claude Opus 4.75,0025,000,506,2510,001 000 000
Claude Opus 4.85,0025,000,506,2510,001 000 000
Claude Opus 55,0025,000,506,2510,001 000 000
Claude Opus 5.54,0020,000,205,008,001 000 000
Claude Fable 510,0050,001,0012,5020,001 000 000
Claude Fable 5.110,0050,000,2512,5020,001 000 000
Tarifs publics de l'API Claude Anthropic, en dollars US par million de tokens, vérifiés le 23 septembre 2026.

Prenons 100 000 tokens de contexte sur Claude Sonnet 5, au prix public de 2 $ par million de tokens d'entrée en septembre 2026. Une lecture du cache coûte 0,02 $ par requête, contre 0,20 $ sans cache. Après un raté, une nouvelle écriture coûte 0,25 $ pour cinq minutes ou 0,40 $ pour une heure. Un raté coûte davantage qu'une requête sans cache, puisque l'écriture est majorée.

Au tarif de cinq minutes, réécrire coûte 12,5 fois une lecture sur la plupart des modèles, 25 fois sur Opus 5.5 et 50 fois sur Fable 5.1. Plus la lecture est bon marché, plus l'écart est grand. Une écriture de cinq minutes est rentabilisée dès la première lecture ; il en faut deux avec une heure.

Cinq minutes ou une heure

La durée de vie, ou TTL, est le temps pendant lequel le préfixe survit sans être utilisé. Chaque lecture relance gratuitement le délai. Celui-ci commence au début de la requête, pas à la fin de la réponse : si une réponse met quatre minutes à arriver, il reste environ une minute pour réutiliser un cache de cinq minutes.

En septembre 2026, Claude Code donne une heure à la conversation principale sur un abonnement Claude dans l'usage inclus, et cinq minutes avec une clé API, un fournisseur cloud ou des crédits d'usage. Les sous-agents reçoivent cinq minutes par défaut dans tous les cas.

Pour choisir la durée du fil principal, définissez promptCacheTtl dans les réglages ou CLAUDE_CODE_PROMPT_CACHE_TTL dans l'environnement à 5m ou 1h (Claude Code v2.1.242 ou plus). L'heure est utile pour des pauses de cinq à soixante minutes, par exemple une réunion, une revue ou une longue compilation. Si vos requêtes sont toujours espacées de moins de cinq minutes, elle ne fait qu'augmenter le prix de chaque écriture.

claude -p "hello" --output-format json

usage.cache_creation sépare les écritures d'une heure (ephemeral_1h_input_tokens) et de cinq minutes (ephemeral_5m_input_tokens).

Ce qui casse le cache sans avertissement

Un raté ne produit pas d'erreur : le tour ralentit et le rapport d'usage affiche une grosse écriture à la place d'une lecture. Causes fréquentes dans un agent de code :

  • Changer de modèle. Chacun possède son cache : /model pendant la tâche relit l'historique sans remise. Il en va de même pour un skill qui impose un autre modèle ou le mode plan opusplan, qui alterne Opus et Sonnet.
  • Changer l'effort. Sur la plupart des modèles, chaque niveau dispose de son cache. En septembre 2026, Opus 5.5 et Fable 5.1 le conservent lors du changement, avec une clé API ou un abonnement Claude.
  • Modifier les outils. Leurs définitions viennent en premier, donc toute modification peut invalider le préfixe. Claude Code diffère les outils MCP par défaut, ce qui laisse les changements de serveurs hors de cette partie. Avec un chargement immédiat, par exemple derrière une passerelle ANTHROPIC_BASE_URL, un serveur qui s'arrête puis se reconnecte casse le cache.
  • Faire varier le début du prompt. Un horodatage dans le prompt système réécrit tout ce qui suit à chaque requête. Une mise à jour de Claude Code change souvent ce prompt ; la première session après mise à jour démarre donc à froid.
  • Dépasser la durée de vie : cinq minutes par défaut avec une clé API, une heure avec un abonnement.

Pourquoi le premier tour après une pause coûte plus

Un raté se paie une fois, à la requête suivante : tout le préfixe est retraité et réécrit au tarif majoré. Les requêtes suivantes le relisent de nouveau à prix réduit. C'est pourquoi le premier message après une pause peut être lent et cher, même s'il ne contient qu'une ligne.

Le compactage crée volontairement un nouveau préfixe. Tant que le cache est actif, la requête de résumé relit l'historique à tarif réduit. Après une longue pause, elle retraite toute la conversation sans cache : une session que vous venez de reprendre est le moment le plus coûteux pour compacter.

Les habitudes qui suivent : choisissez modèle et effort au début, terminez une tâche avant une pause, et utilisez /clear quand le sujet change plutôt que ressusciter un long fil froid. Pour abandonner une fausse piste, /rewind revient à un préfixe déjà en cache. Sur Pro et Max, Claude Code propose de reprendre une grande session à partir d'un résumé après une longue pause.

Lire le taux de réussite du cache

L'API rapporte trois comptes d'entrée par réponse : cache_read_input_tokens pour les lectures, cache_creation_input_tokens pour les écritures, et input_tokens pour ce qui suit le dernier point de cache. Ce dernier paraît donc faible quand une session utilise bien le cache. Le total est la somme des trois.

Le taux de réussite est le nombre de lectures divisé par ce total. Dans une longue session encore active, la majeure partie de chaque requête devrait être relue. Un faible taux est normal dans une session courte, où la première écriture pèse lourd. Dans une session longue, de grosses écritures à chaque tour signalent une cause de la liste précédente.

/usage

Depuis Claude Code v2.1.251, Prompt cache (main) montre la part relue, les ratés et si le cache est encore actif.

Depuis v2.1.260, cette ligne nomme aussi la cause probable du dernier raté lorsqu'elle peut l'établir, par exemple des définitions d'outils modifiées. Elle ne couvre que la conversation principale : un sous-agent possède son propre prompt et ses propres outils. Sur l'API, la page Usage de la Console trace la part d'entrée relue ; les diagnostics de cache, en bêta en septembre 2026, indiquent où deux requêtes successives divergent.

Abonnement ou API : qui paie un raté ?

Avec une clé API, un raté coûte de l'argent aux tarifs du tableau et réduit la marge sous la limite de tokens d'entrée par minute. Sur la plupart des modèles Claude, les lectures du cache ne comptent pas dans cette limite, contrairement aux écritures et à l'entrée non mise en cache.

Sur Pro ou Max, aucun token n'est facturé séparément ; le montant en dollars de /usage est une estimation pour l'API. Le raté consomme plutôt les limites du plan. La documentation de Claude Code cite les ratés du cache parmi les raisons pour lesquelles une longue session consomme plus qu'attendu. Sur Pro, Max, Team et Enterprise, /usage les signale dès qu'ils atteignent un dixième de l'usage récent.

Un token en cache reste un token

Même à un dixième du prix, tout le contexte est relu à chaque requête. Comme le rappelle la documentation, une question d'une ligne dans une session ouverte toute la journée mobilise encore l'usage de la conversation entière. Il faut donc garder le début du prompt stable pour préserver le cache et le contexte court pour réduire chaque lecture et chaque raté.

Si vous ne voulez pas surveiller cette taille manuellement, capsul pilote le CLI d'agent auquel vous êtes déjà connecté et envoie ce que la tâche demande sous le budget choisi. Il s'arrête au plafond et indique ce qu'il a omis ; la page du banc d'essai publie les effets mesurés par modèle, avec les vérifications de réponse.

Questions

Claude Code utilise-t-il le cache des prompts automatiquement ?

Oui. Claude Code le gère et place les éléments stables au début de chaque requête, sauf si DISABLE_PROMPT_CACHING le désactive. En septembre 2026, la conversation principale bénéficie d'une heure de cache sur un abonnement dans l'usage inclus, et de cinq minutes avec une clé API ou un fournisseur cloud.

Le cache Claude dure-t-il 5 minutes ou 1 heure ?

Les deux durées existent. L'API utilise cinq minutes par défaut ; chaque lecture relance gratuitement le délai. Une heure double le prix de base des écritures, contre 1,25 fois pour cinq minutes. En septembre 2026, Claude Code choisit une heure pour le fil principal sur abonnement et cinq minutes avec une clé API, sauf réglage promptCacheTtl. L'heure devient utile pour les pauses dépassant cinq minutes.

Combien coûtent les tokens lus dans le cache Claude ?

En septembre 2026, une lecture coûte un dixième du prix d'entrée du modèle, sauf pour Claude Fable 5.1 (0,025 fois) et Opus 5.5 (0,05 fois). Sur Sonnet 5, cela représente 0,20 $ par million de tokens contre 2 $ en entrée fraîche. Les écritures coûtent plus que l'entrée ordinaire : le cache n'économise de l'argent qu'après relecture.

Pourquoi mon taux de réussite du cache est-il faible ?

Le début du prompt change peut-être régulièrement, ou vos requêtes sont plus espacées que la durée de vie du cache. Les causes courantes sont un changement de modèle ou d'effort, des outils modifiés, un horodatage dans le prompt système et des pauses de plus de cinq minutes avec une clé API. Une courte session a aussi un faible taux par construction. Dans Claude Code, /usage compte les ratés et, depuis v2.1.260, suggère parfois leur cause.

Modifier CLAUDE.md casse-t-il le cache des prompts ?

Pas pendant une session Claude Code pour les fichiers du projet et de l'utilisateur : ils sont lus une fois au départ. Une modification ne prend effet et ne touche le cache qu'après /clear, /compact ou un redémarrage. Un CLAUDE.md imbriqué peut être chargé plus tard, quand Claude lit un fichier de son répertoire.

$ npm i -g @penra/capsul

← Tous les guides