Domaines
D5 · Context Management and Reliability
Économie de la fenêtre de contexte, édition de contexte vs compaction, mémoire et état externe, isolation des sous-agents, prompt caching, historique append-only de Fable 5.1, réessais et backoff, dégradation gracieuse et modèles de repli, provenance, barrières d’escalade, supervision, rate limits et timeouts.
Ce domaine vaut environ 9 des 60 items et sous-tend chaque scénario : un système qui marche en démo mais se dégrade à mesure que la fenêtre de contexte se remplit, ou s’effondre quand l’API renvoie 429, n’est pas prêt pour la production. Il évalue l’économie de la fenêtre de contexte, les deux façons de la récupérer (édition de contexte vs compaction), ce qui doit vivre dans un état durable, et les patrons de fiabilité — caching, réessais, repli, supervision — qui maintiennent un système agentique en fonctionnement.
Objectifs d’apprentissage
À la fin de cette page, vous devriez savoir :
- Raisonner sur l’économie de la fenêtre de contexte et ce qui consomme le contexte.
- Choisir entre l’édition de contexte (effacer les résultats d’outils) et la compaction (résumer en préservant la trame narrative).
- Utiliser le memory tool et l’état externe pour tout ce qui doit survivre à la compaction, et l’isolation des sous-agents pour protéger le contexte principal.
- Utiliser le prompt caching comme levier de fiabilité et de coût, et honorer la contrainte append-only de Fable 5.1.
- Concevoir des réessais/backoff/idempotence, une dégradation gracieuse et des modèles de repli — et savoir ce qui casse lors d’un repli depuis Fable 5.1.
- Maintenir la provenance et les citations, et concevoir des barrières d’escalade / human-in-the-loop.
- Mettre en place une supervision (latence p95, taux d’erreur, taux de succès du cache, coût par tâche) et concevoir pour les rate limits, timeouts et résultats partiels.
5.1 Économie de la fenêtre de contexte
| Modèle | Fenêtre de contexte | Sortie max |
|---|---|---|
| Claude Fable 5.1 | 1M | 128k |
| Claude Opus 5 | 1M | 128k |
| Claude Sonnet 5 | 1M | 128k |
| Claude Haiku 4.5 | 200k | 64k |
La fenêtre est un budget, non un espace gratuit. Tout la partage :
┌───────── context window budget ─────────┐│ system prompt │ stable│ tool definitions │ stable│ conversation history (turns) │ grows every turn│ tool results (can be huge) │ grows fast│ thinking tokens │ grows with reasoning└──────────────────────────────────────────┘À mesure que la fenêtre se remplit, la latence et le coût montent et la qualité peut se dégrader (« context rot »). Le rôle de l’architecte est de garder l’ensemble de travail petit : mettre en cache les parties stables, évincer ce qui n’est plus nécessaire, et pousser les faits durables vers un état externe.
Signal d’examen
« Agent de longue durée dont la qualité se dégrade avec le temps » ou « le contexte se remplit » pointe vers l’édition de contexte / compaction / isolation des sous-agents / mémoire, non un modèle plus gros. La fenêtre de Haiku 4.5 est de 200k, non 1M — un distracteur fréquent.
5.2 Édition de contexte vs compaction
Deux mécanismes distincts récupèrent du contexte. Bien choisir est testé.
| Mécanisme | Ce qu’il fait | Préserve | À utiliser quand |
|---|---|---|---|
| Édition de contexte | Efface les anciens résultats d’outils (et blocs volumineux similaires) de la fenêtre | La trame narrative de la conversation ; abandonne la sortie d’outil périmée | Les résultats d’outils sont volumineux et plus nécessaires, mais le dialogue compte |
| Compaction | Résume la conversation côté serveur, préservant la trame narrative sous forme condensée | Le sens/la trame de toute la conversation | La conversation elle-même est devenue trop longue |
Context editing: [sys][tools][turn1][BIG tool result ✗ cleared][turn2]… ← keeps dialogue, drops bulkCompaction: [sys][tools][==== summary of turns 1..40 ====][turn41]… ← condenses the narrativeSignal d’examen
« Sorties d’outils volumineuses dont nous n’avons plus besoin » → édition de contexte (effacer les résultats d’outils). « Toute la conversation est trop longue mais nous devons en garder le fil » → compaction (résumer en préservant la trame narrative). Ni l’une ni l’autre ne préserve tout — tout ce qui doit survivre mot pour mot va vers un état externe ou le memory tool.
5.3 Memory tool et état externe
La compaction et l’édition de contexte sont avec perte. Tout ce qui doit survivre — une décision, un fait client, un point de contrôle, des données métier canoniques — appartient à un état durable :
- Memory tool — persistance gérée par le modèle entre sessions.
- Fichiers — artefacts et points de contrôle que vous contrôlez.
- Base de données — état métier canonique et transactionnel (commandes, tickets).
La conversation référence l’état durable ; elle ne le possède pas. C’est la même règle que la table état-vs-conversation du Domaine 1.
5.4 L’isolation des sous-agents protège le contexte principal
Un sous-agent s’exécute dans sa propre fenêtre de contexte. Déléguer une sous-tâche volumineuse (lire 50 fichiers, chercher dans un large corpus) à un sous-agent signifie que la matière brute n’entre jamais dans la fenêtre du coordinateur — seul le résultat distillé revient. C’est l’un des patrons de protection du contexte les plus efficaces, et c’est pourquoi le passage de contexte explicite (Domaine 1) compte : le sous-agent démarre propre.
5.5 Ordonnancement en contexte long et prompt caching
- Ordonnancement. Placez le contenu stable et réutilisable en premier (system, outils, longs documents de référence) ; placez la tâche variable en dernier. Cela active le caching et garde l’attention du modèle sur le bon matériel.
- Prompt caching comme levier de fiabilité + de coût. Les lectures de cache ≈ 0,1× le prix d’entrée de base ; les écritures ≈ 1,25× (TTL 5 min) ou 2× (TTL 1 heure). Marquez le dernier bloc stable avec
cache_control: {"type": "ephemeral"}. Préfixe cachable minimum ~1024 tokens (2048 sur Haiku). Un fort taux de succès du cache abaisse le coût et la latence, améliorant la fiabilité sous charge.
system = [ {"type": "text", "text": SYSTEM_RULES}, {"type": "text", "text": TOOLS_DOC}, {"type": "text", "text": REFERENCE, "cache_control": {"type": "ephemeral"}}, # cache boundary]5.6 Fable 5.1 : historique append-only et liaison des thinking blocks
Fable 5.1 introduit des changements cassants autour desquels un architecte doit concevoir :
- Historique append-only. Éditer, réordonner ou supprimer les tours antérieurs invalide les thinking blocks ultérieurs. Les harnais doivent être append-only : figez
systemettools, placez les changements en cours de session dans des messagesrole: "system", et réduisez côté serveur via l’édition de contexte/la compaction plutôt qu’en réécrivant la transcription. - Liaison des thinking blocks. Les thinking blocks ne sont lisibles que par le modèle qui les produit ou un plus récent. Le repli vers un modèle plus ancien écarte silencieusement ces thinking blocks.
- Contraintes opérationnelles. Requiert une rétention des données de 30 jours ; pas dans le Priority Tier ; thinking toujours actif.
Implication de conception
Sur Fable 5.1 vous ne pouvez pas « nettoyer » la transcription en éditant d’anciens tours. Concevez le harnais pour uniquement ajouter, et récupérez de l’espace avec l’édition de contexte/la compaction — qui opèrent côté serveur sans invalider la chaîne append-only.
5.7 Réessais, backoff, idempotence
Réessayez les erreurs transitoires avec un backoff exponentiel et un jitter, en honorant retry-after :
| Statut | Signification | Réessayer ? |
|---|---|---|
| 400 invalid_request | Requête erronée | Non — corrigez la requête |
| 401 / 403 | Auth / permission | Non |
| 413 request_too_large | Trop volumineux | Non — réduisez la taille |
| 429 rate_limit | Limité en débit | Oui — backoff, respectez retry-after |
| 500 api_error / 529 overloaded | Côté serveur | Oui — backoff + jitter |
Ne réessayez sans danger que les opérations idempotentes ; donnez aux écritures une clé d’idempotence (Domaine 1).
def call_with_backoff(fn, max_attempts=5): for i in range(max_attempts): try: return fn() except (RateLimitError, APIError, OverloadedError) as e: if i == max_attempts - 1: raise delay = min(2 ** i, 30) + random.random() # backoff + jitter time.sleep(getattr(e, "retry_after", delay))5.8 Dégradation gracieuse et modèles de repli
Lorsque le modèle principal est indisponible ou surchargé, dégradez gracieusement : repliez vers un autre modèle, servez un résultat en cache/partiel, ou mettez en file pour plus tard. Le repli a des coûts.
| Repli | Considération |
|---|---|
| Fable 5.1 → modèle plus ancien | Les thinking blocks sont silencieusement écartés ; le comportement change ; les règles de tool choice forcé diffèrent ; validez explicitement le chemin de repli |
| Opus 5 → Sonnet 5 | Moins cher/plus rapide, une certaine perte de capacité ; Sonnet 5 interdit les messages system en cours de conversation et les budgets de tâche |
| N’importe lequel → Haiku 4.5 | Fenêtre de 200k (non 1M) ; utilise encore budget_tokens ; les grandes entrées de contexte peuvent ne pas rentrer |
Repli depuis Fable 5.1
Parce que les thinking blocks ne sont lisibles que par le modèle qui les produit ou un plus récent, un repli vers un modèle plus ancien les écarte et peut changer subtilement le comportement. Testez le chemin dégradé ; ne supposez pas que le repli est un remplacement immédiat.
5.9 Provenance et citations
Pour toute sortie sur laquelle on s’appuiera, préservez d’où elle vient : conservez les citations issues du web search / de la récupération, attachez des identifiants de source aux faits extraits, et faites remonter la provenance pour qu’un humain puisse vérifier. La provenance est à la fois un contrôle de qualité et de gouvernance (et se marie aux métriques par type et à la validation du Domaine 3).
5.10 Escalade et barrières human-in-the-loop
Les actions irréversibles ou à fort enjeu ont besoin d’une barrière humaine — la même logique d’escalade que le Domaine 1 (demande explicite → immédiat ; lacune de capacité → après avoir tenté ; jamais sentiment/auto-déclaration), plus une approbation humaine obligatoire avant les effets irréversibles (paiements, suppressions, envois externes). La barrière est déterministe (une permission/hook), non une requête de prompt.
5.11 Supervision
Instrumentez le système avec les métriques qui prédisent la défaillance :
| Métrique | Pourquoi elle compte |
|---|---|
| Latence p50 / p95 | p95 capte la queue que les utilisateurs ressentent réellement |
| Taux d’erreur par catégorie | Distingue rate-limit, validation et défaillances du modèle |
| Taux de succès du cache | Un faible taux gonfle silencieusement coût et latence |
| Coût par tâche | L’économie unitaire qui décide de la viabilité |
| Nombre de réessais / timeouts | Des réessais en hausse signalent un problème en amont |
Associez aux traces par agent et aux identifiants de corrélation (Domaine 1).
5.12 Rate limits, timeouts et résultats partiels
- Les rate limits sont par palier de modèle (RPM, ITPM, OTPM). Concevez la concurrence et le batching pour rester en dessous ; utilisez le Batch API (réduction de 50 %, sous 24 h) pour le travail tolérant à la latence.
- Timeouts. Fixez-les à chaque frontière (appels d’outils, sous-agents, tâche globale) ; un outil bloqué ne doit pas bloquer l’agent.
- Résultats partiels. En cas de timeout ou de défaillance partielle, renvoyez ce que vous avez avec la provenance de la lacune (gestion des défaillances partielles du Domaine 1), plutôt que rien ou une fausse réponse complète.
5.13 Économie du contexte avec calcul de tokens
Traitez la fenêtre comme un budget contre lequel vous pouvez calculer. Un exemple travaillé pour un agent de longue durée sur Opus 5 (fenêtre 1M, $5/M en entrée, $25/M en sortie) :
Turn budget as the session grows (input tokens carried each turn): system + tools (stable) = 12,000 CLAUDE-style reference docs = 8,000 conversation history @ turn 30 = 60,000 accumulated tool results = 400,000 ← the runaway thinking (this turn) = 10,000 ---------------------------------------------- input this turn = 490,000 tokens cost of THIS input turn = 490,000 × $5 / 1e6 = $2.45 (and rising every turn)Les résultats d’outils accumulés dominent. Trois leviers, avec leur calcul :
- L’édition de contexte efface les 400k de résultats d’outils périmés → l’entrée tombe à ~90k → le coût d’entrée de ce tour passe de $2.45 à ~$0.45.
- Le prompt caching du préfixe stable de 20k (system + outils + docs) → ces tokens se lisent à ~0,1× (
20,000 × $0.5/1e6 = $0.01vs$0.10). - L’isolation des sous-agents : déléguez la sous-tâche gourmande en outils pour que les 400k n’entrent jamais dans la fenêtre principale — seul le résultat distillé revient.
| Symptôme | Mécanisme | Effet approximatif |
|---|---|---|
| Résultats d’outils volumineux et périmés | Édition de contexte | Supprime le plus grand terme |
| Dialogue entier trop long | Compaction | Condense l’historique en un résumé |
| Préfixe stable répété | Prompt caching | Lectures ~10× moins chères sur le préfixe |
| Sous-tâche nécessitant une énorme entrée brute | Isolation des sous-agents | La matière brute n’atteint jamais la fenêtre principale |
Signal d’examen
« Le contexte se remplit / le coût monte à chaque tour » n’est presque jamais résolu par « un modèle plus gros ». Le calcul pointe vers l’édition de contexte (supprimer le plus grand terme), le caching (rendre le terme stable moins cher), ou l’isolation des sous-agents (garder le grand terme dehors). La fenêtre de Haiku 4.5 est de 200k, donc plus petite, pas un correctif.
5.14 Le harnais Fable 5.1 : contraintes et une conception conforme
Fable 5.1 (claude-fable-5-1, 1M/128k, $10/$50) a les règles de harnais les plus strictes de l’examen. Concevez autour de toutes :
| Contrainte | Conséquence | Conception conforme |
|---|---|---|
| Historique append-only | Éditer/réordonner/supprimer les tours antérieurs invalide les thinking blocks ultérieurs | Ne jamais réécrire la transcription ; uniquement ajouter |
| Liaison des thinking blocks | Thinking lisible seulement par le modèle qui le produit ou plus récent | Un repli vers un modèle plus ancien écarte silencieusement le thinking → testez le chemin dégradé |
Pas de tool_choice forcé | any / {type:"tool"} renvoient 400 | Utilisez auto + instruction, outils strict, ou structured outputs |
| Thinking toujours actif | Impossible de désactiver le thinking | Budgétez les thinking tokens ; pas de budget_tokens (Haiku uniquement) |
| Rétention 30 jours, pas de ZDR | Non zero-data-retention | Exclure pour les charges exigeant le ZDR |
| Pas Priority Tier | Aucune garantie de capacité prioritaire | Planifiez capacité/repli en conséquence |
Compliant Fable 5.1 harness: ┌ freeze system + tools (never edited) ─────────────┐ │ append user/assistant turns only │ │ mid-session change? → append a role:"system" msg │ (NOT edit an old turn) │ window pressure? → server-side context editing │ │ / compaction (append-safe) │ │ need structured out?→ output_config.format / strict │ (never forced tool_choice) └────────────────────────────────────────────────────┘Ne « rangez » pas une transcription Fable 5.1
Réécrire d’anciens tours pour retirer le bruit casse la liaison des thinking blocks et produit des réponses ultérieures incohérentes. Récupérez de l’espace avec l’édition de contexte/la compaction côté serveur, qui n’invalident pas la chaîne append-only.
5.15 Budgets de fiabilité : timeouts, concurrence et calcul de rate-limit
La fiabilité est quantitative. Une vérification rapide de capacité pour une charge temps réel :
Tier limits (example): RPM = 4,000 ITPM = 400,000 input tokens/minPer request: ~10,000 input tokensToken-bound throughput: 400,000 / 10,000 = 40 requests/min ← ITPM binds firstRequest-bound: 4,000 RPM=> Effective ceiling = min(40, 4,000) = 40 rpm; the token limit dominates.Si vous avez besoin de 10 000 tâches tolérantes à la latence, le plafond temps réel (40/min ≈ 4 h et plus, avec un risque de rate-limit) plaide pour le Batch API (50 % de réduction, ≤24 h) à la place. Fixez des timeouts à chaque frontière (outil, sous-agent, tâche globale) pour qu’un appel bloqué ne puisse pas figer le système, et en cas de timeout renvoyez des résultats partiels avec la provenance de la lacune.
| Frontière | Timeout | En cas de dépassement |
|---|---|---|
| Appel d’outil unique | secondes | Erreur timeout structurée, réessayable |
| Sous-agent | dizaines de secondes | Résultat partiel + provenance de la lacune |
| Tâche globale | adapté à la tâche | Escalader ou servir partiel avec une note |
Idées reçues fréquentes
| Idée reçue | Réalité | Pourquoi cela compte à l’examen |
|---|---|---|
| « Un modèle plus gros corrige un contexte qui se remplit. » | Le correctif est édition de contexte/compaction/sous-agents/caching ; un modèle plus gros ne fait que retarder. | Le distracteur majeur de D5. |
| « Haiku 4.5 a une fenêtre de 1M. » | Haiku 4.5 est à 200k ; les grandes entrées peuvent ne pas rentrer. | Items de repli/fenêtre. |
| « Compaction et édition de contexte sont pareilles. » | La compaction résume la trame narrative ; l’édition de contexte efface les résultats d’outils. | Items de choix de mécanisme. |
| « Les faits devant survivre sont en sécurité dans la conversation. » | Compaction/édition sont avec perte ; utilisez le memory tool ou une base de données. | Items état-vs-conversation. |
| « Le repli depuis Fable 5.1 est un remplacement immédiat. » | Les thinking blocks sont écartés sur les replis plus anciens ; le comportement change. | Items de dégradation gracieuse. |
| « Réessayer toute erreur avec backoff. » | Seuls 429/5xx/529 sont réessayables ; 400/401/403/413 doivent être corrigés. | Items de classification des réessais. |
| « La latence moyenne suffit à superviser. » | p95/p99 captent la queue que les utilisateurs ressentent ; les moyennes la masquent. | Items de supervision. |
| « Éditer d’anciens tours range une session Fable 5.1. » | Cela casse la liaison des thinking blocks ; le harnais doit être append-only. | Items de harnais Fable 5.1. |
Étude de scénario — un agent de recherche rapide en démo qui s’effondre en production
Situation. Un agent de recherche multi-agents marche en démo mais en production (1) se dégrade après ~30 tours à mesure que la fenêtre se remplit de grands résultats de recherche dont il n’a plus besoin, alors que le fil du dialogue doit rester intact ; (2) lors d’un événement de capacité chez Anthropic, il bascule de Fable 5.1 vers un modèle plus ancien et se met à se comporter différemment même avec un prompt identique ; (3) un SRE rapporte qu’il est « correct en moyenne » alors que des utilisateurs attendent parfois 9 secondes et que la facture mensuelle est une surprise ; et (4) une exécution nocturne de 10 000 tâches d’extraction bute sans cesse sur les rate limits.
Trace de raisonnement d’expert.
-
Problème 1 — fenêtre qui se remplit, garder le dialogue. Des résultats d’outils volumineux et périmés avec la trame narrative préservée → édition de contexte, non la compaction (qui résumerait le dialogue) ni un modèle plus gros. De plus, déléguez le travail gourmand en recherche à des sous-agents pour que les résultats bruts n’entrent jamais dans la fenêtre principale.
-
Problème 2 — changement de comportement au repli. Les thinking blocks de Fable 5.1 ne sont lisibles que par ce modèle ou un plus récent, donc le repli plus ancien les écarte silencieusement. La conception doit tester le chemin dégradé et ne pas supposer la parité ; la taille de fenêtre et l’expiration de clé sont des fausses pistes.
-
Problème 3 — queue cachée et coût. Ajoutez la latence p95/p99 (la queue de 9 secondes que les moyennes masquent) et le coût par tâche (la facture surprise). Rejetez « nombre total de requêtes » et « nom du modèle » comme non diagnostiques.
-
Problème 4 — rate limits sur la masse. 10 000 tâches tolérantes à la latence appartiennent au Batch API (50 % de réduction, ≤24 h), qui allège la pression de rate-limit. Rejetez la concurrence maximale en temps réel (plein tarif, risque de limite) et une seule requête géante (ne rentrera pas).
Décision correcte à l’examen : édition de contexte + isolation des sous-agents pour la fenêtre ; un chemin dégradé testé pour le repli Fable 5.1 ; supervision p95/p99 et coût-par-tâche ; et le Batch API pour la masse. Chaque option rejetée est un piège nommé (modèle-plus-gros, hypothèse-de-parité, supervision-en-moyenne-seule, masse-en-temps-réel).
Pièges d’examen dans ce domaine
| Piège | Pourquoi c’est faux |
|---|---|
| « Utiliser un modèle plus gros » pour corriger un contexte qui se remplit | Le correctif est édition de contexte/compaction/sous-agents/mémoire |
| Prétendre que Haiku 4.5 a une fenêtre de 1M | Haiku 4.5 est à 200k |
| Garder les faits devant survivre uniquement dans la conversation | Compaction/édition sont avec perte ; utilisez le memory tool ou une BD |
| Utiliser la compaction pour abandonner les résultats d’outils volumineux | C’est le rôle de l’édition de contexte ; la compaction résume la trame narrative |
| Éditer d’anciens tours pour ranger une transcription Fable 5.1 | Invalide les thinking blocks ultérieurs ; le harnais doit être append-only |
| Replier depuis Fable 5.1 en supposant la parité | Les thinking blocks sont écartés ; le comportement change |
| Réessayer un 400/413 avec backoff | Non réessayable ; corrigez la requête/la taille |
Réessayer sans jitter ou en ignorant retry-after | Provoque un effet de meute ; respectez l’en-tête |
| Superviser seulement la latence moyenne | p95 capte la queue ; les moyennes la masquent |
| Ne rien renvoyer sur une défaillance partielle | Renvoyez des résultats partiels avec la provenance de la lacune |
| « Modèle plus gros » pour une session dont le coût monte à chaque tour | L’édition de contexte supprime le plus grand terme ; le caching rend le terme stable moins cher |
| Ignorer l’ITPM/RPM lors du dimensionnement du débit temps réel | La limite de tokens lie souvent en premier ; calculez le plafond effectif |
| Utiliser une forte concurrence temps réel pour 10k tâches nocturnes | Le Batch API (50 % de réduction, ≤24 h) convient et allège la pression de rate-limit |
| Sauter les timeouts aux frontières outil/sous-agent | Un appel bloqué fige tout l’agent ; fixez des timeouts de frontière |
| Utiliser Fable 5.1 pour une charge exigeant le ZDR | Fable 5.1 a une rétention de 30 jours et pas de ZDR ; excluez-le |
Questions d’entraînement
Q1 · Les réponses d’un agent de longue durée se dégradent après de nombreux tours à mesure que le contexte se remplit de grandes sorties d’outils dont l’agent n’a plus besoin. Quel est le MEILLEUR correctif ? (Sélectionnez une réponse)
A. Basculer vers un modèle avec une plus grande fenêtre de contexte. B. Utiliser l’édition de contexte pour effacer les résultats d’outils périmés tout en préservant la trame narrative de la conversation. C. Redémarrer la conversation de zéro à chaque fois. D. Augmenter max_tokens.
Réponse : B. Effacer des résultats d’outils volumineux et plus nécessaires est exactement l’édition de contexte. Une plus grande fenêtre (A) retarde le problème, redémarrer (C) perd l’état, et max_tokens (D) est sans rapport.
Q2 · Une conversation elle-même est devenue très longue mais le fil doit être préservé pour que l’agent reste cohérent. Quel mécanisme convient ? (Sélectionnez une réponse)
A. Édition de contexte (effacer les résultats d’outils). B. Compaction : résumer la conversation côté serveur, préservant la trame narrative sous forme condensée. C. Supprimer les tours les plus anciens et espérer. D. Passer à Haiku 4.5 pour sa plus grande fenêtre.
Réponse : B. La compaction condense la trame narrative quand la conversation est ce qui est trop long. L’édition de contexte (A) cible les résultats d’outils, supprimer des tours (C) perd le fil (et casse l’append-only de Fable 5.1), et Haiku 4.5 (D) a une fenêtre plus petite.
Q3 · Une préférence client doit être disponible dans une session la semaine prochaine. Où devrait-elle vivre ? (Sélectionnez une réponse)
A. L’historique de conversation. B. Le memory tool ou une base de données externe — un état durable qui survit à la compaction et aux nouvelles sessions. C. Un thinking block. D. Le system prompt de la session courante.
Réponse : B. Les faits durables et inter-sessions ont besoin du memory tool ou d’un état externe. L’historique de conversation (A) et les thinking blocks (C) sont avec perte/éphémères, et le system prompt d’une seule session (D) ne persiste pas.
Q4 · Sur Claude Fable 5.1, un harnais édite des tours antérieurs pour retirer le bruit et les réponses ultérieures deviennent incohérentes. Quelle est la cause et le correctif ? (Sélectionnez une réponse)
A. Le modèle est défectueux ; ouvrez un ticket. B. Éditer les tours antérieurs invalide les thinking blocks ultérieurs ; rendez le harnais append-only et récupérez de l’espace avec l’édition de contexte/la compaction à la place. C. Augmenter la fenêtre de contexte. D. Désactiver le thinking.
Réponse : B. Fable 5.1 est append-only ; éditer des tours casse la liaison des thinking blocks. Le correctif est un harnais append-only avec une réduction côté serveur. Ce n’est pas un bug (A), la taille de fenêtre (C) est sans rapport, et le thinking ne peut pas être désactivé sur Fable 5.1 (D).
Q5 · Un système bascule de Fable 5.1 vers un modèle plus ancien lors d’une panne et le comportement change de façon inattendue. Quelle est la raison la PLUS probable ? (Sélectionnez une réponse)
A. Le modèle plus ancien a une plus grande fenêtre. B. Les thinking blocks produits par Fable 5.1 ne sont lisibles que par ce modèle ou un plus récent, donc le repli plus ancien les écarte silencieusement, changeant le comportement. C. La clé API a expiré. D. Le prompt cache était froid.
Réponse : B. La liaison des thinking blocks signifie que les replis plus anciens écartent le thinking, altérant le comportement. La taille de fenêtre (A) ne cause pas cela, l’expiration de clé (C) provoquerait une erreur non un changement de comportement, et un cache froid (D) affecte coût/latence non la justesse.
Q6 · Quelles DEUX erreurs devraient être réessayées avec un backoff exponentiel et un jitter ? (Sélectionnez deux réponses)
A. 429 rate_limit. B. 400 invalid_request. C. 529 overloaded. D. 401 authentication. E. 413 request_too_large.
Réponse : A et C. 429 et 529 sont transitoires et réessayables avec backoff (respectez retry-after). 400 (B), 401 (D) et 413 (E) sont côté client et doivent être corrigés, non réessayés.
Q7 · Une partie prenante dit « utilisez simplement Haiku 4.5 comme repli ; il a la même fenêtre de 1M ». Quelle est la correction correcte ? (Sélectionnez une réponse)
A. Elle a raison. B. La fenêtre de contexte de Haiku 4.5 est de 200k, non 1M, donc les grandes entrées peuvent ne pas rentrer ; le chemin de repli doit être validé. C. Haiku 4.5 a une fenêtre de 2M. D. Haiku 4.5 ne peut pas du tout être utilisé comme repli.
Réponse : B. Haiku 4.5 est à 200k. Les requêtes à grand contexte qui rentrent dans le 1M de Fable/Opus/Sonnet peuvent déborder Haiku. Ce n’est pas 1M (A), ni 2M (C), et il peut être un repli si les entrées rentrent (D est trop absolu).
Q8 · Pour améliorer la fiabilité et le coût sous charge, un architecte veut un fort taux de succès du cache. Quel agencement y parvient ? (Sélectionnez une réponse)
A. Mettre l’entrée utilisateur variable en premier et le system prompt stable en dernier.
B. Mettre le system prompt stable, les outils et les documents de référence en premier avec cache_control sur le dernier bloc stable ; garder la tâche variable après.
C. Désactiver le caching pour éviter les lectures périmées.
D. Randomiser l’ordre du prompt à chaque appel.
Réponse : B. Le caching a besoin du contenu stable en premier avec une frontière de cache ; la tâche variable suit. L’ordre inversé (A) empêche les succès, désactiver le caching (C) augmente le coût, et randomiser (D) détruit le préfixe cachable.
Q9 · Un lot de 10 000 tâches d’extraction tolérant à la latence doit être traité à moindre coût. Quel est le MEILLEUR choix ? (Sélectionnez une réponse)
A. Des appels temps réel de la Messages API avec une forte concurrence. B. La Message Batches API (réduction de 50 %, résultats sous 24 h) pour les charges tolérantes à la latence. C. Une seule requête géante. D. Haiku 4.5 dans une boucle synchrone serrée.
Réponse : B. Le Batch API est conçu pour le travail de masse tolérant à la latence à 50 % de réduction. La forte concurrence temps réel (A) risque les rate limits et coûte plus, une seule requête (C) ne rentrera pas, et une boucle synchrone (D) est lente et limitée en débit.
Q10 · Un sous-agent doit lire 50 gros fichiers pour répondre à une sous-question. En quoi déléguer cela protège-t-il la fiabilité ? (Sélectionnez une réponse)
A. Cela ne le fait pas ; mettez les 50 fichiers dans le contexte du coordinateur. B. Le contexte isolé du sous-agent détient les fichiers bruts ; seul le résultat distillé revient au coordinateur, gardant la fenêtre principale petite. C. Cela double le coût sans bénéfice. D. Cela supprime le besoin de gestion d’erreurs.
Réponse : B. L’isolation des sous-agents garde la matière brute volumineuse hors de la fenêtre principale et ne renvoie que le résultat. Charger tous les fichiers dans le coordinateur (A) gonfle le contexte, et B est un bénéfice réel non un pur coût (C) ; la gestion d’erreurs compte toujours (D).
Q11 · Un SRE ne supervise que la latence moyenne et manque le fait que certains utilisateurs voient des réponses de 8 secondes. Quelle métrique faut-il ajouter ? (Sélectionnez une réponse)
A. Le nombre total de requêtes. B. La latence p95 (et p99), qui capte la queue que les moyennes masquent. C. Le nombre d’outils. D. Le nom du modèle.
Réponse : B. p95/p99 exposent l’expérience de la queue que les moyennes masquent. Le nombre de requêtes (A), le nombre d’outils (C) et le nom du modèle (D) ne révèlent pas la latence de queue.
Q13 · Au tour 30 un agent porte 20k tokens stables, 60k d’historique, 400k de résultats d’outils accumulés et 10k de thinking, et le coût d’entrée par tour monte. Quel changement réduit le PLUS directement le coût tout en gardant le dialogue ? (Sélectionnez une réponse)
A. Basculer vers Haiku 4.5 pour une plus grande fenêtre. B. Utiliser l’édition de contexte pour effacer les 400k de résultats d’outils périmés (le terme dominant), faisant tomber l’entrée de ce tour de ~490k à ~90k, tout en préservant la trame narrative. C. Augmenter max_tokens. D. Désactiver le prompt caching.
Réponse : B. Le terme des résultats d’outils domine ; l’effacer via l’édition de contexte supprime l’essentiel du coût tout en gardant le dialogue. Haiku 4.5 (A) a une fenêtre plus petite de 200k, max_tokens (C) est la sortie non l’entrée, et désactiver le caching (D) augmente le coût.
Q14 · Une exigence de ZDR (zero-data-retention) s’applique à une charge, et un architecte propose Fable 5.1 pour son raisonnement. Quelle est la critique correcte ? (Sélectionnez une réponse)
A. Fable 5.1 convient ; tous les modèles supportent le ZDR.
B. Fable 5.1 requiert une rétention de 30 jours et n’est pas ZDR, donc il doit être exclu pour une charge exigeant le ZDR ; choisissez un modèle/une configuration conforme.
C. Activer budget_tokens pour activer le ZDR.
D. Le ZDR ne concerne que la taille de la fenêtre de contexte.
Réponse : B. Fable 5.1 a une rétention de 30 jours et pas de ZDR, ce qui le disqualifie là où le ZDR est requis. Tous les modèles ne supportent pas le ZDR (A), budget_tokens est sans rapport (C), et le ZDR est une propriété de rétention de données, non de taille de fenêtre (D).
Q15 · Un palier autorise 4 000 RPM et 400 000 tokens d’entrée/min ; chaque requête utilise ~10 000 tokens d’entrée. Quel est le plafond effectif de débit temps réel et l’implication pour 10 000 tâches tolérantes à la latence ? (Sélectionnez une réponse)
A. 4 000 rpm ; exécutez-les toutes en temps réel. B. ~40 rpm (la limite de tokens lie en premier : 400 000 / 10 000), donc le temps réel serait lent et sujet aux limites ; utilisez le Batch API (50 % de réduction, ≤24 h) pour l’exécution de masse. C. Illimité, car les tokens ne comptent pas. D. 400 000 rpm.
Réponse : B. L’ITPM lie en premier à ~40 rpm, rendant la masse temps réel lente et risquée ; le Batch API convient. Le RPM seul (A) ignore la limite de tokens, les tokens comptent toujours (C), et D confond tokens et requêtes.
Q16 · Sur Fable 5.1, un architecte veut récupérer de l’espace de fenêtre en réécrivant plusieurs tours antérieurs en un résumé plus court sur place. Pourquoi est-ce faux et qu’est-ce qui est correct ? (Sélectionnez une réponse)
A. C’est correct et l’option la moins chère. B. Réécrire les tours casse l’historique append-only de Fable 5.1 et invalide les thinking blocks ultérieurs ; récupérez plutôt de l’espace avec l’édition de contexte/la compaction côté serveur et gardez le harnais append-only. C. C’est bien si vous baissez aussi max_tokens. D. Désactiver le thinking pour permettre la réécriture.
Réponse : B. Fable 5.1 est append-only ; éditer des tours invalide les thinking blocks. L’édition/la compaction côté serveur récupèrent de l’espace sans casser la chaîne. Ce n’est pas correct (A, C), et le thinking ne peut pas être désactivé sur Fable 5.1 (D).
Q17 · Un sous-agent qui rassemble des données expire à mi-parcours. Que devrait renvoyer le système au coordinateur ? (Sélectionnez une réponse)
A. Rien, par prudence. B. Un résultat partiel structuré avec la provenance de ce qui manque (et une erreur de timeout réessayable), pour que le coordinateur puisse réessayer, continuer avec un quorum en notant la lacune, ou escalader. C. Une fausse réponse « complète » utilisant seulement ce qui est arrivé. D. Une simple chaîne « error ».
Réponse : B. Des résultats partiels plus la provenance de la lacune permettent une décision explicite. Ne rien renvoyer (A) gâche le travail, une fausse complétude silencieuse (C) est le #7, et une simple chaîne d’erreur (D) est le #6.
Q18 · Un dashboard SRE n’affiche que la latence moyenne et le nombre total de requêtes, et l’équipe est surprise à la fois par les réponses lentes en queue et par le coût. Quelles DEUX métriques faut-il ajouter en PREMIER ? (Sélectionnez deux réponses)
A. La latence p95/p99 pour capter la queue que les moyennes masquent. B. Le coût par tâche, l’économie unitaire qui décide de la viabilité. C. Le nombre d’outils par agent. D. Le nom du modèle. E. Le nombre total de caractères du prompt.
Réponse : A et B. p95/p99 expose la queue et le coût-par-tâche fait remonter l’économie qui manque à l’équipe. Le nombre d’outils (C), le nom du modèle (D) et le total de caractères (E) ne révèlent ni la latence de queue ni le coût.
Points clés à retenir
- La fenêtre de contexte est un budget partagé consommé par le system, les outils, l’historique, les résultats d’outils et le thinking ; gardez l’ensemble de travail petit.
- L’édition de contexte efface les résultats d’outils périmés ; la compaction résume la trame narrative — ni l’une ni l’autre ne préserve tout, donc les faits durables vont au memory tool ou à une base de données.
- L’isolation des sous-agents garde la matière brute volumineuse hors de la fenêtre principale ; mettez le contenu stable en premier et cachez-le pour des lectures ~10× moins chères et une latence plus basse.
- Faites le calcul : le terme des résultats d’outils accumulés domine généralement une fenêtre qui se remplit, donc l’édition de contexte (ou l’isolation des sous-agents) — non un modèle plus gros — est le correctif économique.
- Fable 5.1 est append-only (n’éditez jamais d’anciens tours), le thinking est toujours actif, un
tool_choiceforcé est un 400, il a une rétention de 30 jours/pas de ZDR, et il n’est pas Priority Tier — concevez autour de tout cela. - Ne réessayez que les erreurs transitoires (429/5xx/529) avec backoff, jitter et
retry-after; ne réessayez que les écritures idempotentes. - Le repli n’est pas gratuit — depuis Fable 5.1 les thinking blocks sont écartés ; Haiku 4.5 est à 200k, non 1M ; validez le chemin dégradé.
- Dimensionnez le débit temps réel au regard de l’ITPM/RPM (la limite de tokens lie souvent en premier) ; utilisez le Batch API pour la masse tolérante à la latence ; fixez des timeouts de frontière et renvoyez des résultats partiels avec provenance.
- Supervisez la latence p95/p99, le taux d’erreur par catégorie, le taux de succès du cache et le coût par tâche ; barrez les actions irréversibles sur des humains.
Dernière mise à jour le 18 sept. 2026