AP30 · Préfixe instable qui casse le cache

Famille : Contexte et mémoire

Preuve moyenne

Noms d'origine : cache-busting prefix, cache-busting context

Un horodatage ou un JSON réordonné en tête du prompt, et chaque appel repaie tout le contexte au prix fort.

Définition

Le début du contexte change d’un appel à l’autre : horodatage à la seconde dans le prompt système, JSON sérialisé sans ordre de clés stable, outils ajoutés, retirés ou réordonnés, modèle changé en cours de session. Le cache de préfixe est perdu à chaque tour.

Symptômes observables

  • Le taux de succès du cache, lu dans l’usage de l’API ou dans `gen_ai.usage.cache_read.input_tokens`, reste proche de zéro.
  • Le coût par tour ne décroît pas au fil de la session, et `cache_creation_input_tokens` reste élevé à chaque appel.
  • L’empreinte du prompt système change d’un appel à l’autre dans une même session.
  • La latence du premier token ne baisse pas au fil de la session.

Pourquoi c'est nuisible

Le cache ne sert que si le préfixe est identique à l’octet près : un seul token modifié au début invalide tout ce qui suit. Or, dans un agent, le contexte relu pèse bien plus que la sortie produite, environ 100 pour 1 chez Manus.

Un choix défendable quand…

  • Un appel isolé, sans session ni contexte relu, où le cache n’a rien à réutiliser.

Chiffres

  • Sur Claude Sonnet, Manus cite 0,30 $ par million de tokens servis par le cache contre 3 $ sans cache, soit un écart de 10 fois.
  • L’équipe Claude Code d’Anthropic surveille le taux de succès du cache par des alertes et déclare un incident de gravité quand il est trop bas (avril 2026).

Remèdes du catalogue

Mesures hors catalogue

  • Un contexte en ajout seul, une sérialisation déterministe et les informations variables, comme l’heure, en fin de contexte.
  • Une alerte sur le taux de succès du cache, traité comme une métrique de production.

Patterns détournés

Anti-patterns voisins

Sources

Contenu relu le 2026-10-05

Catalogue des anti-patterns