diffox
Blog

Prompt caching : 8 règles pour Claude, OpenAI et Gemini

Le prompt caching relit en cache le préfixe répété d’un prompt. Comment l’activer chez quatre fournisseurs, combien il dure, comment l’améliorer.

PartagerXLinkedIn

En bref. Le prompt caching (mise en cache du prompt) traite une seule fois la partie fixe qui ouvre une requête, le préfixe, puis la relit depuis le cache pour les requêtes suivantes qui commencent par le même préfixe. Le 15 octobre 2026, nous avons lu dans leur propre documentation les règles d’Anthropic, d’OpenAI, de Google et d’Amazon Bedrock, ainsi que la façon dont Claude Code gère son cache.

  • Ce qui est mis en cache, c’est le préfixe, pas la réponse. Le modèle produit chaque fois une nouvelle réponse ; il évite seulement de retraiter le préfixe. Le semantic caching, qui renvoie une ancienne réponse, est une autre technique.
  • Sur la plupart des modèles, la lecture coûte un dixième du prix d’entrée de base. Avec le cache de 5 minutes d’Anthropic, l’écriture coûte 1,25 fois ce prix, et c’est aussi le cas des nouveaux modèles d’OpenAI. Deux requêtes coûtent alors 1,25 + 0,1 = 1,35 fois le prix de base, contre 2 sans cache : le cache est rentabilisé dès la première lecture.
  • Le cache ne sert que tant qu’il est chaud. Sa durée va de quelques minutes à plusieurs heures selon le fournisseur et l’option choisie ; chez Anthropic, OpenAI et Bedrock, chaque succès de cache (cache hit) relance le compte à rebours.
  • Les succès de cache dépendent d’un préfixe qui ne change pas. Mettez le contenu fixe au début et le contenu variable à la fin ; un seul horodatage dans le préfixe oblige chaque requête à réécrire le cache.

Que stocke le prompt caching ?

4fournisseurs : Anthropic, OpenAI, Google, Bedrock
0,1×lecture en cache, sur la plupart des modèles
8règles pour le taux de succès

Un modèle de langage ne se souvient de rien d’une requête à l’autre. Si vous envoyez cent fois les mêmes instructions système, le même document ou le même contexte de code, ils sont traités cent fois et facturés cent fois. Le prompt caching (mise en cache du prompt) change cela : le fournisseur traite une fois la partie fixe qui ouvre la requête et la conserve ; les requêtes suivantes qui commencent de la même façon la relisent depuis le cache.

Ce qui est conservé n’est pas le texte lui-même, mais les états intermédiaires que le modèle calcule en traitant ce texte ; la section suivante l’explique. C’est pourquoi la correspondance doit être exacte : un préfixe qui n’est pas identique octet pour octet ne peut pas être lu depuis le cache.

Trois notions sont souvent confondues :

KV cache, prompt caching et semantic caching : ce qu’ils conservent et leur effet sur la réponse
NotionCe qu’elle conserveOù elle agitRéponse
KV cacheLes états intermédiaires calculés pour les tokens d’une requêteDans le modèle, le temps d’une seule réponseChaque réponse est produite à nouveau
Prompt caching (prefix caching)Les états intermédiaires d’un préfixe commun, d’une requête à l’autreDans l’API du fournisseur ou sur un serveur comme vLLMProduite à nouveau ; le cache ne change pas la sortie
Semantic cachingLes réponses précédentes, classées selon le sens de la questionDans la couche de l’application elle-même, comme GPTCacheL’ancienne réponse revient ; une fausse correspondance est possible

Source : documentation d’OpenAI, d’Anthropic, de vLLM et de GPTCache, 15 octobre 2026.

C’est notre quotidien : quand diffox examine une pull request, de nombreux agents spécialisés lisent le même contexte dans des appels séparés (son fonctionnement fait l’objet d’un article à part).

Comment fonctionne le cache

Avant de commencer à produire une réponse, un modèle de langage lit toute l’entrée ; cette phase s’appelle le préremplissage (prefill). Pendant ce temps, il calcule pour chaque token des états intermédiaires appelés clé (key) et valeur (value). La documentation d’OpenAI les appelle états KV : en produisant la réponse, le modèle s’appuie sur ces états pour revenir aux tokens précédents. C’est cela que le prompt caching conserve : non pas le texte, mais les tenseurs que le modèle a calculés en le traitant.

Le cache sert jusqu’au premier changement. Requête 1: instr. + doc + question A. Traité de zéro: Tout. Le préfixe est écrit en cache. Requête 2: instr. + doc + question B. Traité de zéro: Question B seule. Instructions et document lus en cache. Requête 3: date + instr. + doc…. Traité de zéro: Tout. La date en tête casse la correspondance. Exemple : trois requêtes sur le même document.
Exemple ; les noms des blocs sont illustratifs. Règle de correspondance tirée du document de conception de vLLM, 15 octobre 2026.

L’avantage vient de là. Si le préfixe est en cache, le modèle saute le calcul de cette partie et ne traite que les nouveaux tokens. La documentation de vLLM précise aussi où s’arrête le gain : le cache raccourcit le traitement de l’entrée, pas la génération des nouveaux tokens. Un long préfixe suivi d’une réponse courte est donc le cas qui profite le plus du cache. L’article Prompt Cache a mesuré un délai avant le premier token jusqu’à 8 fois plus court sur GPU et 60 fois plus court sur CPU.

Cette structure explique aussi pourquoi le préfixe doit être identique octet pour octet. Le document de conception de vLLM identifie chaque bloc du cache par deux choses : les tokens du bloc lui-même et ceux du préfixe qui le précède. La même phrase, précédée d’un autre texte, est donc un autre bloc. Ajoutez une seule date au début, et tous les blocs qui suivent deviennent de nouveaux blocs ; le cache ne sert que jusqu’à l’endroit du changement.

Ces états sont loin d’être petits. L’article PagedAttention écrit que la mémoire du KV cache de chaque requête est énorme et qu’elle grandit et rétrécit au fil de la requête. C’est pour cela que les fournisseurs limitent le cache à quelques minutes : selon la documentation de Google Cloud, le cache en mémoire est limité et des entrées sont évincées dès que la place manque. Anthropic précise aussi que ces états restent uniquement en mémoire et ne sont pas stockées de façon permanente.

Activation et prix chez quatre fournisseurs

Les quatre fournisseurs prennent en charge le cache, mais pas de la même façon : l’activation, la taille minimale du préfixe et le prix diffèrent. Nous avons tiré le tableau de la documentation de chaque fournisseur, le 15 octobre 2026.

Le prompt caching chez quatre fournisseurs : activation, préfixe minimal, prix d’écriture et de lecture
FournisseurActivationPréfixe minimalÉcritureLecture
Anthropiccache_control : un seul champ dans la requête, ou jusqu’à 4 marqueurs sur les blocs512–4 096 tokens selon le modèle1,25× (5 min), 2× (1 h)0,1× ; 0,05× ou 0,025× sur les nouveaux modèles
OpenAIActivé par défaut ; à partir de GPT-5.6, un marqueur explicite est aussi possible1 024 tokens (GPT-5.6 et suivants)1,25× (GPT-5.6 et suivants) ; sans supplément sur les modèles précédents0,1× sur la plupart des modèles GPT-5.6+
Google GeminiCache implicite activé à partir de 2.5 ; cache explicite avec cachedContents2 048–4 096 tokens selon le modèlePrix d’entrée standard ; frais de stockage horaires pour le cache expliciteSelon le modèle ; 90 % de réduction sur Google Cloud
Amazon BedrockCache implicite (sans garantie) et marqueur cachePoint512–4 096 tokens selon le modèleSelon le modèle ; peut dépasser le prix d’entrée standardPrix de lecture en cache du modèle

Source : documentation des fournisseurs, 15 octobre 2026. Les multiplicateurs se rapportent au prix de l’entrée sans cache. La ligne Google Cloud vaut pour Gemini 2.5 et les modèles suivants.

Chez Anthropic et sur les modèles d’OpenAI à partir de GPT-5.6, écrire dans le cache coûte plus cher qu’envoyer le même token sans cache, et lire coûte beaucoup moins. Un cache qui écrit à 1,25× est donc rentabilisé dès la première lecture, et le cache d’une heure d’Anthropic, qui écrit à 2×, à la deuxième. Dans le cache explicite de Gemini, l’écriture est au prix standard, mais des frais de stockage sont facturés pour chaque heure où le cache existe ; la rentabilité dépend alors du nombre de lectures et de la durée de conservation.

Avec l’API Claude, quand de nombreux appels lisent le même contexte, placez le marqueur sur le bloc commun et l’instruction propre à chaque appel après lui. ephemeral est aujourd’hui le seul type de cache pris en charge ; le nom du modèle est celui de l’exemple de la documentation :

{
  "model": "claude-opus-5-5",
  "max_tokens": 1024,
  "system": [
    {
      "type": "text",
      "text": "<contexte commun, le même texte à chaque appel>",
      "cache_control": {"type": "ephemeral"}
    },
    {
      "type": "text",
      "text": "<instruction propre à cet appel>"
    }
  ],
  "messages": [
    {"role": "user", "content": "<la question de cet appel>"}
  ]
}

Combien de temps le cache reste-t-il chaud ?

Une entrée du cache ne reste pas indéfiniment. La documentation de Claude Code résume la situation en deux mots : tant que l’entrée est dans sa durée de vie (TTL), le cache est chaud (warm) ; une fois celle-ci écoulée, il est froid (cold). Avec un cache chaud, la requête suivante lit le préfixe à bas prix ; avec un cache froid, elle le retraite entièrement et paie l’écriture.

Durée pendant laquelle le cache reste chaud, et si un succès de cache la renouvelle, par fournisseur
FournisseurDurée par défautOption longueUn succès renouvelle-t-il la durée ?
Anthropic5 minutes1 heure ("ttl": "1h", écriture 2×)Oui, gratuitement
OpenAI, GPT-5.6 et suivantsAu moins 30 minutesAucune ; seule valeur 30mOui, sans nouveaux frais d’écriture
OpenAI, modèles précédents24h ; dans les organisations où la conservation zéro des données (ZDR) est activée, in_memory : 5 à 10 minutes en général, 1 heure au plus24h : 30 minutes en général, 24 heures au plusNon précisé dans la documentation
Google Gemini1 heure pour le cache expliciteLa durée de votre choix, avec ttl ou expire_timeNon précisé dans la documentation ; la durée se prolonge à la main
Amazon Bedrock5 minutes1 heure, sur les modèles qui la prennent en chargeOui

Source : documentation des fournisseurs, 15 octobre 2026. La durée du cache implicite de Gemini n’est pas précisée dans la documentation ; sur Google Cloud, elle est de 24 heures au plus et la plupart des entrées disparaissent avant.

Cette durée fonctionne comme un compte à rebours, avec deux subtilités. Chez Anthropic, il part du début de la requête, pas de la fin de la réponse : si le streaming de la réponse a duré 4 minutes, la requête suivante sur le même préfixe doit partir dans un délai d’environ 1 minute. Chez Anthropic, OpenAI et Bedrock, chaque succès de cache relance le compte à rebours ; un trafic régulier garde donc le cache chaud de lui-même.

La plupart des fournisseurs n’ont pas d’endpoint qui dise si le cache est encore chaud. L’exception est le cache explicite de Gemini : cachedContents.get renvoie toujours l’heure d’expiration (expireTime), jamais le contenu. Chez Anthropic, OpenAI et Bedrock, seule la réponse suivante vous renseigne : si le nombre de tokens lus depuis le cache tombe à zéro, soit le préfixe a changé, soit l’entrée a refroidi. L’outil cache diagnostics d’Anthropic distingue les deux : si les requêtes sont identiques et que la lecture vaut zéro, l’entrée a expiré.

Dans Claude Code, la durée dépend de la façon dont vous payez. Selon la documentation, avec un abonnement Claude, la conversation principale utilise un cache d’une heure tant que vous restez dans l’usage inclus dans votre forfait. Avec des crédits d’utilisation, une clé d’API ou un fournisseur cloud, elle passe à un cache de 5 minutes. Les subagents ont 5 minutes, même avec un abonnement. Vous pouvez changer la durée avec le paramètre promptCacheTtl ou la variable CLAUDE_CODE_PROMPT_CACHE_TTL.

L’état du cache s’affiche à trois endroits. /usage indique si le cache est chaud ou froid, avec la durée en vigueur. Dans le JSON transmis à la ligne d’état (status line), l’objet prompt_cache contient les champs warm, ttl et expires_at ; ce dernier donne le moment où le cache refroidira. L’horloge du cache dans l’extension VS Code décompte enfin une durée de vie de 5 minutes ou d’une heure et affiche les minutes restantes ; avec un cache d’une heure, elle part de 60 minutes.

Trois points à surveiller :

  • L’écart entre deux requêtes doit rester inférieur à la durée. Chaque requête qui arrive plus de 5 minutes après la précédente réécrit le préfixe. Anthropic conseille de rester sur le cache de 5 minutes si le préfixe est réutilisé plus souvent que toutes les 5 minutes, car son renouvellement est gratuit.
  • Une durée longue n’est pas gratuite. Chez Anthropic, écrire dans le cache d’une heure coûte 2 fois le prix de base, et ce n’est rentable qu’à partir de deux lectures du préfixe ; dans le cache explicite de Gemini, des frais de stockage sont payés pour chaque heure.
  • La première requête après une longue pause coûte cher. Avec un cache refroidi, la première requête écrit tout le préfixe. Vous pouvez préchauffer le cache avant l’arrivée de la vraie requête : chez Anthropic avec max_tokens: 0, sur les modèles d’OpenAI à partir de GPT-5.6 avec prompt_cache_options.prewarm.

Dans un exemple à dix appels, le préfixe coûte 78,5 % de moins

Les chiffres sont ronds et hypothétiques ; ils servent seulement à illustrer les multiplicateurs de la documentation. Prenons dix appels qui lisent un préfixe commun de 50 000 tokens. L’unité est un token facturé au prix d’entrée de base ; l’écriture est comptée à 1,25×, la lecture à 0,1×. Le cache de 5 minutes d’Anthropic et la plupart des modèles d’OpenAI à partir de GPT-5.6 appliquent ces multiplicateurs.

sans cache     10 × 50 000 × 1      = 500 000

avec cache      1 × 50 000 × 1,25   =  62 500   le premier appel écrit
              + 9 × 50 000 × 0,1    =  45 000   neuf appels lisent
                                    = 107 500
Exemple : préfixe commun de 50 000 tokens, 10 appels. Unité : un token facturé au prix d’entrée de base. Sans cache (10 appels, tous au prix plein): 500 000 tokens; Un d’abord, puis les neuf (1 écriture + 9 lectures): 107 500 tokens; Tous en même temps (pire cas : 10 écritures): 625 000 tokens.
Exemple de calcul, pas une mesure : ce que 10 appels lisant un préfixe commun de 50 000 tokens paient pour ce préfixe, avec les multiplicateurs de la documentation (15 octobre 2026). La partie propre à chaque appel et les tokens de sortie ne sont pas comptés.

Lancés l’un après l’autre, les dix appels paient pour le préfixe l’équivalent de 107 500 tokens, soit 78,5 % de moins que les 500 000 sans cache. Sur un modèle dont la lecture coûte 0,05×, le total descend à 85 000. Avec le cache d’une heure, l’écriture monte à 100 000 et le total atteint 145 000.

La troisième barre montre le pire cas : les dix mêmes appels partent en même temps. Aucun ne peut lire ce qu’un autre a écrit, et si chacun écrit lui-même le préfixe, le total atteint 625 000. C’est 25 % plus cher que de ne pas activer le cache du tout. La raison est expliquée plus bas, dans la section sur les appels parallèles.

Les 8 règles pour un bon taux de succès du cache

Les documentations des quatre fournisseurs disent la même chose sur les succès de cache. Chacune des règles ci-dessous figure dans la documentation d’au moins deux fournisseurs.

8 règles pour un meilleur taux de succès. Chacune figure dans la documentation d’au moins deux fournisseurs. Le fixe au début, le variable à la fin: Le marqueur va sur le dernier bloc fixe. Pas d’horodatage dans le préfixe: Ni date, ni identifiant de requête, ni donnée d’un utilisateur. Gardez les outils stables: Mêmes nom, schéma et ordre ; désactivez au lieu de supprimer. Ne changez ni de modèle ni de paramètres: Choisissez-les au début, pas en pleine conversation. Ne réécrivez pas l’historique: Ajoutez à la fin ; un résumé remet le cache à zéro. Gardez le cache chaud: Envoyez le même préfixe régulièrement, avant l’expiration. Atteignez la longueur minimale: En dessous, le préfixe n’entre pas en cache, sans erreur. Mesurez les succès: Lu depuis le cache / entrée totale.
Source : documentation d’Anthropic, d’OpenAI, de Google et d’Amazon Bedrock, ainsi que documentation et notes de version de Claude Code, 15 octobre 2026.

La règle la plus souvent négligée est la deuxième. Une ligne des notes de version de Claude Code le montre : retirer la date du prompt système a amélioré le taux de succès. La date change chaque jour, et si elle se trouve au début du préfixe, la première requête de chaque nouvelle journée réécrit tout le préfixe.

Deux règles sont propres à un seul fournisseur. Sur les modèles d’OpenAI antérieurs à GPT-5.6, on donne une prompt_cache_key fixe aux requêtes qui partagent le même préfixe. Elle aide à les diriger vers le même cache, et la documentation recommande environ 15 requêtes par minute et par clé. Anthropic, de son côté, demande que l’ordre des clés JSON dans les appels d’outils reste stable. Selon sa documentation, certains langages comme Swift et Go mélangent l’ordre des clés, et le même contenu est alors envoyé sous forme d’octets différents.

Ce qui invalide le cache

Chez Anthropic et Bedrock, le cache suit une hiérarchie : tools, system, messages. Un changement à un niveau invalide ce niveau et tous les niveaux suivants. Voici six cas parmi ceux qu’énumère la documentation d’Anthropic :

Ce qui invalide le cache. Plus le changement est en amont, plus on perd. tools Outil modifié: Tout le cache est invalidé. system Recherche web activée: system et messages invalidés. messages tool_choice modifié: Seul messages est invalidé. breakpoint Marqueur mal placé: Chacune écrit, aucune ne lit. ttl Durée écoulée: La requête suivante réécrit. longueur Préfixe trop court: Pas de cache, pas d’erreur.
Source : documentation d’Anthropic sur le prompt caching, 15 octobre 2026. Les trois premières cartes viennent du tableau « What invalidates the cache ».

Activer ou désactiver les citations a le même effet que la recherche web ; ajouter ou retirer une image du prompt, le même effet que tool_choice. Le cas que la documentation présente comme une « erreur courante » est la quatrième carte : si le breakpoint se trouve sur un bloc qui contient un horodatage ou le message de l’utilisateur, chaque requête écrit une nouvelle entrée et aucune ne peut la lire. Le système remonte au plus 20 blocs en arrière ; mais ce qu’il cherche n’est pas du contenu inchangé, c’est une entrée écrite par une requête précédente. L’écriture n’a lieu qu’au breakpoint. C’est pourquoi le marqueur se place sur le dernier bloc qui reste identique d’une requête à l’autre.

Appels parallèles et cache

Lancer en même temps des appels qui lisent le même préfixe paraît naturel. La documentation d’Anthropic est claire sur ce point : pour des requêtes simultanées, une entrée du cache n’est utilisable qu’une fois la première réponse commencée ; si vous voulez que des requêtes parallèles lisent le cache, attendez la première réponse avant d’envoyer les suivantes. OpenAI écrit aussi que le cache se trouve sur des machines individuelles et qu’au-delà de 15 requêtes par minute, le trafic peut partir vers d’autres machines.

Sur dix appels, combien lisent le cache ?. Lancement: 10 appels d’un coup. Lisent le cache: 0 appel. Sans entrée en cache, chaque appel traite tout le préfixe. Lancement: 1 appel, puis 9. Lisent le cache: 9 appels. Dès que la première réponse commence, les neuf partent. Lancement: max_tokens: 0, puis 10. Lisent le cache: 10 appels. La requête de préchauffage écrit et revient sans sortie. Exemple : 10 appels qui lisent le même préfixe. La première carte est le pire cas.
Source : documentation d’Anthropic, sections « Cache limitations » et « Pre-warming the cache », 15 octobre 2026. Les nombres d’appels sont des exemples ; la première carte montre le pire cas.

La première réponse n’a pas besoin d’être terminée : il suffit qu’elle ait commencé. Les documentations proposent trois façons de faire :

  • Envoyez le premier appel seul. Claude Code le fait lui-même quand un workflow lance ensemble des agents qui partagent le même préfixe : il retient tous les agents sauf le premier jusqu’à ce que la réponse du premier commence ; l’attente est par défaut de 5 000 millisecondes au plus.
  • Préchauffez le cache. Une requête envoyée avec max_tokens: 0 écrit dans le cache au breakpoint et revient sans produire de sortie ; aucun token de sortie n’est facturé. Le marqueur doit être sur le bloc commun, et le paramètre de réflexion (thinking) comme la valeur output_config.effort doivent être ceux des vrais appels. La requête est refusée si elle est combinée à une option qui exige une sortie (par exemple stream: true).
  • En traitement par lots, utilisez le cache d’une heure. Dans la Batch API, les requêtes sont traitées dans n’importe quel ordre et la lecture n’est pas garantie. La documentation conseille d’envoyer d’abord, avec le cache d’une heure, une seule requête qui porte le préfixe commun, puis le reste une fois celle-ci terminée.

Comment mesurer le taux de succès

Ne supposez pas que le cache fonctionne : vérifiez-le dans la réponse. Les quatre fournisseurs indiquent les tokens lus depuis le cache dans un champ à part des informations d’usage de la réponse :

Champ de la réponse pour les tokens lus depuis le cache et écrits dans le cache, par fournisseur
FournisseurLu depuis le cacheÉcrit dans le cache
Anthropiccache_read_input_tokenscache_creation_input_tokens
OpenAIinput_tokens_details.cached_tokens (dans Chat Completions, prompt_tokens_details)input_tokens_details.cache_write_tokens
Google GeminiusageMetadata.cachedContentTokenCountPas de champ à part
Amazon BedrockcacheReadInputTokenscacheWriteInputTokens

Source : documentation des fournisseurs, 15 octobre 2026.

Le taux de succès est la part des tokens lus depuis le cache dans l’entrée totale ; OpenAI le définit ainsi et conseille de l’agréger par utilisateur, par espace de travail ou par jour. Encore faut-il calculer correctement l’entrée totale : chez Anthropic et Bedrock, le champ d’entrée ne compte pas les tokens qui passent par le cache, et le total est la somme des trois champs ; chez Gemini, promptTokenCount inclut déjà les tokens lus depuis le cache.

EXEMPLE. Additionnez les 3. usage: "usage": { /   "input_tokens": 50, /   "cache_creation_input_tokens": 0, /   "cache_read_input_tokens": 100000 / }. Entrée: Ce qui suit le dernier breakpoint. Écriture: Ce que la requête écrit en cache. Lecture: Le préfixe lu depuis le cache.
Valeurs tirées de l’exemple de la documentation elle-même : 100 000 tokens lus depuis le cache, 50 tokens après le breakpoint ; entrée totale de 100 050 tokens.

L’entrée totale est la somme des trois champs. input_tokens seul ne montre pas toute l’entrée ; il ne compte que ce qui suit le dernier breakpoint. Quand tout fonctionne, le champ d’écriture vaut la taille du préfixe au premier appel, puis ce même nombre passe dans le champ de lecture aux appels suivants. Si les deux champs valent zéro, le prompt n’a pas été mis en cache ; la cause la plus probable est un préfixe sous la longueur minimale. Si le champ d’écriture reste haut à chaque appel, quelque chose change dans le préfixe.

Nous enregistrons séparément les trois champs de chaque appel. Un appel sans informations d’usage est compté comme non mesuré, pas comme zéro : un vide noté zéro se lit comme un appel gratuit.

Quand le cache n’est pas rentable

Le cache ne convient pas à toutes les charges de travail. Avant de l’activer, vérifiez ces quatre cas :

  • Le préfixe n’est lu qu’une fois. Si l’écriture coûte 1,25 fois le prix et qu’aucun deuxième appel ne le lit, vous payez 25 % de plus.
  • L’écart entre les appels dépasse la durée. Le cache est froid à chaque fois et le préfixe est réécrit.
  • Le préfixe est sous la longueur minimale. La requête fonctionne, le cache non ; et aucune erreur n’est renvoyée.
  • Le préfixe change à chaque requête. Une date au début oblige chaque requête à réécrire le cache.

Le gain ne se limite pas au prix : sur les longs préfixes, le délai avant le premier token raccourcit aussi. Sur les limites de débit, les fournisseurs divergent : selon Anthropic et Bedrock, les tokens lus depuis le cache ne sont pas décomptés de la limite de débit pour Claude ; chez OpenAI, ils comptent dans la limite de tokens par minute.

Dans diffox, les agents spécialisés d’une review lisent le même contexte commun : le diff du changement et le contexte des fichiers. Ce contexte se trouve dans un seul bloc au début de la requête, et c’est ce bloc qui porte le marqueur de cache ; le premier appel part seul, les autres démarrent ensuite en parallèle. Les tokens écrits et lus par chaque appel sont enregistrés séparément.

Questions fréquentes

Qu’est-ce que le prompt caching ?

C’est une fonction des API de modèles de langage : la partie fixe qui ouvre la requête (le préfixe) est traitée une seule fois et conservée, puis relue par les requêtes suivantes qui commencent par le même préfixe. Ce qui est conservé, ce sont les états intermédiaires du modèle (KV cache), pas la réponse ; le modèle produit chaque fois une nouvelle réponse. Les tokens lus sont facturés à une petite fraction du prix d’entrée de base, et la réponse commence plus vite.

Combien de temps dure le prompt caching ?

Cela dépend du fournisseur. Chez Anthropic, c’est 5 minutes par défaut, et 1 heure en option. Sur les modèles d’OpenAI à partir de GPT-5.6, au moins 30 minutes ; sur les modèles précédents, jusqu’à 24 heures. Dans le cache explicite de Gemini, c’est 1 heure par défaut et vous fixez vous-même la durée. Sur Bedrock, 5 minutes, et 1 heure sur les modèles qui la prennent en charge. Chez Anthropic, OpenAI et Bedrock, chaque succès de cache relance la durée.

Comment fonctionne le prompt caching chez OpenAI ?

Il est activé par défaut sur les modèles pris en charge. À partir de GPT-5.6, le préfixe minimal est de 1 024 tokens, l’écriture coûte 1,25 fois l’entrée sans cache, la lecture 0,1 fois sur la plupart des modèles, et le cache reste au moins 30 minutes. Sur les modèles précédents, l’écriture est sans supplément ; une prompt_cache_key fixe aide à diriger les requêtes qui partagent un préfixe vers le même cache. Les succès apparaissent dans le champ cached_tokens.

Qu’est-ce que le context caching de Gemini ?

Gemini en propose deux sortes. Le cache implicite est activé par défaut sur les modèles 2.5 et suivants ; il ne demande aucune configuration, mais l’économie n’est pas garantie. Avec le cache explicite, vous chargez le contenu une fois avec cachedContents et vous y faites référence dans les requêtes suivantes ; l’économie est garantie, la durée par défaut est d’une heure et le stockage est facturé à l’heure. Les succès apparaissent dans le champ cachedContentTokenCount.

Combien de temps Claude Code garde-t-il le cache ?

Avec un abonnement Claude, dans l’usage inclus dans le forfait, la conversation principale le garde 1 heure et les subagents 5 minutes. Dès que vous passez aux crédits d’utilisation, avec une clé d’API ou via un fournisseur cloud, la conversation principale descend elle aussi à 5 minutes. Vous pouvez changer la durée avec le paramètre promptCacheTtl. /usage indique si le cache est chaud ou froid ; l’horloge de l’extension VS Code décompte les minutes restantes.

Quelle différence entre le prompt caching, le KV cache et le semantic caching ?

Le KV cache conserve les états intermédiaires de l’entrée pendant que le modèle produit une seule réponse. Le prompt caching conserve ces états d’une requête à l’autre, pour un préfixe commun ; la réponse est produite à nouveau à chaque fois. Le semantic caching, lui, conserve les réponses précédentes dans la couche de l’application, selon le sens de la question, et renvoie une ancienne réponse à une question semblable ; une fausse correspondance est possible.

diffox utilise-t-il le prompt caching ?

Oui. Les agents spécialisés de diffox utilisent les modèles d’Anthropic ; la liste complète des fournisseurs figure sur notre page de confidentialité. Dans une review, les agents spécialisés lisent le même contexte commun ; ce contexte se trouve dans un seul bloc au début de la requête, et c’est ce bloc qui porte le marqueur de cache. Le premier appel part seul, les autres démarrent ensuite en parallèle.