Prompt caching

IA / LLM 🟡 Mid

Définition

Réutilisation côté serveur d'un préfixe de prompt déjà traité (outils, system, début des messages) pour réduire coût et latence. Chez Anthropic : cache_control ephemeral, TTL 5 min (écriture 1,25× le prix d'entrée) ou 1 h (2×), lecture à 0,1× (0,025× sur Fable 5.1). Minimum cachable de 512 à 4 096 tokens selon le modèle, 4 points de cache max, et le moindre octet changé dans le préfixe invalide la suite.

Analogie

Un serveur qui garde en mémoire la carte et vos allergies : vous ne redites que votre plat du jour.

Exemple de code

// Contenu stable d'abord (system + docs volumineux), volatile ensuite
const msg = await client.messages.create({
  model: 'claude-sonnet-5', max_tokens: 800,
  system: [
    { type: 'text', text: LONG_POLICY_DOC,                 // ≥ 1024 tokens sur Sonnet 5
      cache_control: { type: 'ephemeral', ttl: '1h' } },   // point de cache
  ],
  messages: [{ role: 'user', content: question }],        // varie : après le cache
});
console.log(msg.usage.cache_creation_input_tokens, // écrit au 1er appel
            msg.usage.cache_read_input_tokens);     // lu ensuite (10 % du prix)
// Piège : un Date.now() dans le system prompt = 0 lecture de cache.

Cas d'usage

Chatbot sur une grosse documentation, agents avec de nombreuses définitions d'outils, conversations longues.

Anti-pattern

Mettre l'horodatage ou l'identifiant de requête en tête du system prompt : le cache ne sert jamais.
#ia#cout#performance#api#interview

En entretien

  1. Explique-moi le prompt caching et comment l'exploiter.

    C'est la réutilisation côté serveur d'un préfixe de prompt déjà traité, outils, system, début des messages, pour réduire coût et latence ; chez Anthropic la lecture d'un cache coûte 0,1× le prix d'entrée. C'est utile pour un chatbot sur une grosse documentation ou des agents avec de nombreuses définitions d'outils.

  2. Quel anti-pattern casse systématiquement le cache ?

    Mettre l'horodatage ou l'identifiant de requête en tête du system prompt invalide tout le cache, car le moindre octet changé dans le préfixe le rend inutilisable. Il faut placer les éléments variables à la fin du prompt, jamais au début du préfixe caché.

Dans l'actu

  • 31/08 GitHub Copilot dans VS Code (versions 1.132 à 1.135) : chats disposables côte à côte pour comparer des sessions d'agents, commande /btw ouvrant une conversation parallèle qui partage le contexte et le cache de prompt, bascule entr… Bilan août 2026 →

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre