Changer le thème

Pourquoi le Prompt Cache ne réduit pas la facture : diagnostiquer vos agents avec prompt-cache-skills

Easton editorial illustration: central cache vault with stacked prompt blocks, cold request entering the vault, warm request reusing the cached blocks, small timestamp block diverted away from the cache

"Le dépôt prompt-cache-skills classe les correctifs par agent harness et demande de valider chaque diff à partir des champs réels d’utilisation du cache."

Votre facture mensuelle Claude Code ou Cline peut être 30 à 50 % plus élevée que nécessaire. Le problème n’est peut-être pas le volume d’utilisation : le Prompt Cache peut simplement ne pas fonctionner.

De nombreux agents de code IA activent le prompt caching par défaut, mais un petit changement de configuration suffit à invalider tout le préfixe mis en cache : un horodatage dans le system prompt, une cache key mal calculée, une option non activée ou un TTL trop court. Ces problèmes ne provoquent pas forcément d’erreur et la facture n’en précise pas la cause ; le coût de l’API reste simplement élevé.

prompt-cache-skills est une bibliothèque de skills drop-in qui corrige ces échecs silencieux. Pour une charge adaptée, elle peut faire passer le taux de hit de presque zéro à 80 % ou davantage. Voici le principe de facturation, les quatre causes principales, des correctifs typiques et une méthode de validation.

Comment le Prompt Cache réduit les coûts

Le principe est simple : un préfixe stable peut être mis en cache, puis réutilisé à un coût nettement inférieur à celui des tokens d’entrée ordinaires.

Les noms de champs diffèrent selon les API, mais le mécanisme reste le même :

Type de facturationFonctionnementCas adaptéFournisseur représentatif
cache_creation_input_tokensCrée le cache au premier appel et coûte souvent plus cher que les tokens ordinairesPremier appel avec un long préfixeAnthropic
cache_read_input_tokensUn hit coûte beaucoup moins, environ 10 % du tarif d’entrée normalRéutilisation d’un préfixe stableAnthropic
Tokens d’entrée ordinairesFacturés au tarif normalRequêtes courtes ou préfixes souvent modifiésTous les fournisseurs
cached_tokens (OpenAI)Le coût des tokens mis en cache baisse d’environ 50 %Réutilisation d’un préfixe stableOpenAI
cached content (Gemini)Facturé selon la durée de stockage du cacheContextes longsGoogle Gemini

Prenons Anthropic : si votre system prompt contient 2 000 tokens et que le même agent le réutilise 100 fois par jour, un hit facture ces 2 000 tokens en cache_read, soit environ 10 % du coût normal. Cette partie de la facture d’entrée peut donc baisser d’environ 90 %.

Le préfixe doit toutefois rester stable et être réutilisé. Si le system prompt change à chaque appel à cause d’un horodatage ou d’un identifiant aléatoire, le cache est recréé à chaque fois. Des créations répétées peuvent coûter plus cher que l’entrée ordinaire.

Pourquoi le cache de votre agent échoue

Ces échecs ne déclenchent pas forcément d’erreur. Vous voyez la facture, pas la source du gaspillage :

  1. Un message variable détruit le préfixe. Un horodatage, un identifiant aléatoire ou toute valeur qui change à chaque requête invalide l’ensemble du préfixe mis en cache. C’est la cause la plus fréquente.

  2. La cache key est absente ou incorrecte. Certains outils ne marquent pas correctement le contenu ou calculent mal leur clé personnalisée. Le préfixe est stable, mais l’API ne le reconnaît pas comme contenu réutilisable.

  3. Le cache est désactivé par défaut. Certains agents exigent une activation explicite dans le fichier de configuration. Vous pensez que l’outil s’en charge, alors que chaque appel reste facturé comme entrée ordinaire.

  4. Le TTL est trop court. Si le cache expire après une heure alors que vos appels sont plus espacés, il n’existe déjà plus lors de la requête suivante.

Le symptôme précis varie selon l’agent. Le README de prompt-cache-skills les regroupe par outil. Avant toute modification, vérifiez que le SKILL.md correspondant s’applique vraiment à votre configuration.

Qu’est-ce que prompt-cache-skills ?

prompt-cache-skills est un ensemble de skills drop-in qu’un agent de code IA peut lire et appliquer :

DimensionDétail
PositionnementCorrectifs drop-in qu’un agent de code IA peut lire et appliquer
ObjectifPorter un cache défaillant ou partiel à 80–99 % de hits dans les charges adaptées
Agents concernésClaude Code, Codex, Cline, Cursor, Devin, Gemini CLI, OpenCode, Aider, Continue, Roo Code et autres
Dépôthttps://github.com/OnlyTerp/prompt-cache-skills
UtilisationIndiquer le dépôt → appliquer les skills correspondants → valider les hits, ou appliquer manuellement les patches de skills/
Temps gagnéÉviter de rechercher soi-même tous les détails du caching de chaque fournisseur

Le projet compte actuellement environ 99 stars. La liste et le nom des skills peuvent évoluer ; le README du dépôt reste la référence.

Une recherche manuelle impose de lire la documentation de chaque fournisseur, de comparer les différences entre agents et de deviner quel champ déstabilise le préfixe. Chaque skill isole une panne concrète, fournit le diff et décrit la validation.

Corriger votre agent avec prompt-cache-skills

Deux méthodes sont possibles : laisser l’agent appliquer le correctif ou modifier les fichiers vous-même.

Méthode 1 : laisser l’agent corriger automatiquement (recommandé)

Commencez par lui indiquer le dépôt et envoyez cette consigne :

Lisez https://github.com/OnlyTerp/prompt-cache-skills et appliquez chaque skill de skills/ correspondant au harness que j’utilise : confirmez la cible → appliquez le diff → validez selon SKILL.md

L’agent identifie ensuite l’outil utilisé, par exemple Cline, Continue ou Aider, puis liste les skills correspondants et la panne traitée par chacun.

Examinez le diff. Chaque dossier contient un SKILL.md qui précise la cible et le changement exact. Vérifiez que la modification convient à votre environnement.

Après validation, laissez l’agent appliquer le diff à la configuration locale ou au projet. Sauvegardez le fichier d’origine auparavant.

Enfin, utilisez tools/check_cache.py pour confirmer le hit. La procédure détaillée figure dans « Vérifier qu’un hit de cache a vraiment eu lieu ».

Méthode 2 : corriger manuellement

Si vous ne voulez pas qu’un agent modifie la configuration, appliquez vous-même le correctif.

Ouvrez d’abord le dépôt : https://github.com/OnlyTerp/prompt-cache-skills

Parcourez ensuite skills/ et trouvez celui de votre outil, par exemple cline-fix-volatile-msg ou continue-enable-defaults.

Lisez SKILL.md : cible, symptôme, correctif et validation y sont décrits.

Modifiez le fichier de configuration selon ces indications.

Validez enfin le hit avec tools/check_cache.py.

Précaution de sécurité

L’application automatique d’un diff modifie directement une configuration locale ou de projet. Lisez SKILL.md, comprenez chaque changement et sauvegardez le fichier d’origine avant d’autoriser l’opération.

Correctifs typiques de la bibliothèque

Chaque skill est un correctif complet avec agent cible, symptôme, diff et méthode de validation. Quelques exemples :

SkillAgent cibleSymptômeCorrectif
cline-fix-volatile-msgClineLe préfixe du system prompt contient un horodatage et change à chaque appelSupprimer ou stabiliser le message variable
cline-openai-cache-keyCline + OpenAILa cache key OpenAI est mal calculéeCorriger la génération de la cache key
cline-pin-timestampClineUn horodatage invalide le cacheFixer ou supprimer l’horodatage
continue-fix-volatile-msgContinueLe system prompt contient des champs variablesRetirer le message variable
continue-enable-defaultsContinueLe prompt caching est désactivé par défautActiver le cache dans la configuration initiale
continue-gemini-explicitContinue + GeminiLa configuration de cache Gemini manqueDéfinir explicitement les paramètres
aider-1h-ttlAiderUn TTL d’une heure provoque des expirations fréquentesAllonger le TTL ou rapprocher les requêtes
aider-cache-default-onAiderLe cache est désactivé par défautActiver l’option par défaut
opencode-detect-openai-compatOpenCodeLe cache échoue en mode compatible OpenAIDétecter et traiter correctement l’API compatible
opencode-bedrock-doc-blocksOpenCode + BedrockLes blocs de document Bedrock posent problèmeCorriger leur stratégie de cache

La liste continue de grandir et les noms peuvent changer. Consultez le README et skills/. Si votre agent n’est pas présent, utilisez les SKILL.md et patches existants comme modèles de diagnostic.

Vérifier qu’un hit de cache a vraiment eu lieu

prompt-cache-skills fournit tools/check_cache.py. Il compare un appel froid à un appel chaud et calcule le taux de hit.

Étapes de vérification

Téléchargez check_cache.py ici :
https://github.com/OnlyTerp/prompt-cache-skills/blob/main/tools/check_cache.py

Configurez ensuite les identifiants API comme variables d’environnement :

  • Anthropic: ANTHROPIC_API_KEY
  • OpenAI: OPENAI_API_KEY
  • Google Gemini: GOOGLE_API_KEY

Exécutez l’appel froid :

python check_cache.py --provider anthropic --prompt "votre system prompt" --message "votre message utilisateur"

Observez cache_creation_input_tokens :

  • Une valeur positive indique la création du cache
  • Notez la valeur input_tokens

Attendez une seconde et répétez l’appel avec exactement le même prompt et le même message.

Contrôlez ces champs :

  • cache_read_input_tokens : une valeur supérieure à 0 confirme le hit
  • cache_creation_input_tokens : doit être nul ou absent
  • input_tokens : doit nettement baisser, car la partie cachée n’est plus facturée comme entrée ordinaire

Calculez ensuite le taux de hit :

Taux de hit = cache_read_input_tokens / (cache_read_input_tokens + input_tokens)

Exemple :

  • Appel froid : input_tokens=2000, cache_creation_input_tokens=1800
  • Appel chaud : cache_read_input_tokens=1800, input_tokens=200
  • Taux de hit = 1800 / (1800 + 200) = 90%

Interprétez enfin le résultat :

  • Cache actif : cache_read_input_tokens de l’appel chaud > 0
  • Cache inactif : cache_read_input_tokens = 0 ou champ absent

Signification des métriques

  • cache_creation_input_tokens : tokens utilisés par Anthropic pour créer le cache
  • cache_read_input_tokens : tokens lus dans le cache Anthropic
  • cached_tokens : tokens d’entrée mis en cache par OpenAI
  • input_tokens : tokens d’entrée ordinaires non cachés

Si cache_read_input_tokens reste à 0 sur l’appel chaud, revenez aux quatre causes : message variable, cache key incorrecte, option désactivée ou TTL trop court.

Quand utiliser cette bibliothèque

La bibliothèque corrige des erreurs connues, mais ne convient pas à toutes les charges :

ChargeRecommandationRaison
Long system prompt + nombreuses requêtes similairesRecommandéUn préfixe stable peut être réutilisé
Outils Agent de code comme Claude Code et ClineRecommandéLe projet cible ces outils
Facture mensuelle supérieure à 50 dollarsRecommandéL’économie potentielle justifie l’effort
Configuration existante au résultat incertainRecommandéL’outil de validation confirme le fonctionnement
Prompt court + un seul appelNon recommandéLe coût du cache peut dépasser le gain
System prompt souvent modifié par des données en temps réelNon recommandéLe préfixe instable ne peut pas être réutilisé
Intervalles supérieurs au TTL, par exemple quelques appels par jourÀ évaluerLe cache peut expirer avant sa réutilisation
Agent absent de la listeÀ évaluerAdaptation manuelle ou futur skill communautaire nécessaire

Si votre facture dépasse 50 dollars et que l’agent figure dans la liste, le diagnostic peut être rentable. Si les appels sont rares ou le préfixe change sans cesse, estimez d’abord le nombre de réutilisations.

Risques et précautions

Examinez ces points avant application :

  1. Le projet est récent. Il compte environ 99 stars et sa couverture peut évoluer. Le README actuel reste la référence.

  2. Les changements automatiques exigent un contrôle. Un agent modifie des fichiers locaux ou de projet. Lisez SKILL.md et vérifiez que chaque changement convient.

  3. Les champs de facturation varient. Anthropic utilise cache_creation/cache_read, OpenAI cached_tokens et Gemini cached content. Consultez les documentations à jour.

  4. Le cache n’est pas universel. Les appels courts et uniques ou les préfixes variables gagnent peu et peuvent coûter davantage. Ne l’imposez pas partout.

  5. L’outil de validation a des limites. check_cache.py vise surtout l’API Anthropic. Pour OpenAI et Gemini, consultez aussi la documentation officielle.

  6. Le taux n’est pas garanti. Les 80–99 % sont l’objectif annoncé du projet. Le résultat dépend du préfixe, de la fréquence, du TTL et du contexte.

Étapes suivantes et lectures associées

Pour réduire davantage les coûts du code avec l’IA :

Ressources officielles :

Diagnostiquer et valider le Prompt Cache avec prompt-cache-skills

Identifiez l’agent harness, examinez le correctif et comparez des requêtes froide et chaude pour confirmer l’utilisation réelle du cache.

  1. 1

    Step 1: Vérifier que la charge se prête au cache

    Confirmez que les requêtes contiennent un préfixe long, stable et réutilisé. Les prompts courts, les appels uniques et les system prompts souvent modifiés conviennent mal.
  2. 2

    Step 2: Trouver le skill correspondant

    Dans le dossier skills de prompt-cache-skills, sélectionnez celui qui correspond à votre agent harness et à votre fournisseur de modèle.
  3. 3

    Step 3: Examiner la cible et le diff

    Lisez le fichier SKILL.md, vérifiez le fichier ciblé, la portée, les risques et la méthode de validation, puis sauvegardez la configuration d’origine.
  4. 4

    Step 4: Appliquer le correctif minimal

    Corrigez uniquement le message variable, la cache key, l’option de cache ou le TTL décrit par le skill, sans modifier les réglages sans rapport.
  5. 5

    Step 5: Exécuter la requête froide

    Utilisez check_cache.py ou les champs d’usage du fournisseur pour le premier appel et notez les tokens d’entrée ordinaires et de création du cache.
  6. 6

    Step 6: Comparer la requête chaude

    Renvoyez exactement le même prompt et le même message, vérifiez que les tokens lus dans le cache sont supérieurs à zéro et calculez le taux réel.

FAQ

Quels outils de code IA sont pris en charge par prompt-cache-skills ?
Le dépôt vise notamment Claude Code, Codex, Cline, Cursor, Devin, Gemini CLI, OpenCode, Aider, Continue et Roo Code. Les correctifs applicables dépendent du dossier skills actuel et de votre harness ; consultez donc le README le plus récent.
Le taux de cache dépassera-t-il toujours 80 % après correction ?
Non. La plage de 80 à 99 % est l’objectif annoncé par le projet pour des charges adaptées. Le résultat dépend de la longueur et de la stabilité du préfixe, de la fréquence, du fournisseur et du TTL ; vérifiez-le dans les données d’usage.
Combien un hit de cache permet-il d’économiser ?
Cela dépend du fournisseur, du modèle, du coût de création ou de stockage et du nombre de réutilisations. Un préfixe long et stable répété souvent apporte généralement le meilleur gain ; les appels courts ou rares peuvent ne pas être rentables.
Est-il sûr de laisser un agent modifier automatiquement la configuration ?
L’application automatique d’un diff modifie la configuration locale ou celle du projet. Lisez SKILL.md, confirmez cible et portée, sauvegardez l’original et exécutez la validation. Revenez en arrière si elle échoue.
Que faire si aucun skill ne correspond à mon agent ?
Servez-vous des symptômes, diffs et validations existants pour examiner manuellement la stabilité du préfixe, les cache keys, les options par défaut et le TTL, mais n’appliquez pas tel quel un patch destiné à un autre harness.

9 min de lecture · Publié le: 29 juil. 2026 · Mis à jour le: 30 juil. 2026

Commentaires

Connectez-vous avec GitHub pour laisser un commentaire

Easton BlogEaston Blog