← Aide IA · Le coin des experts
Cours expert · Prompting & scaffolding

Maîtriser Fable 5

Fable 5 est un modèle de classe Mythos conçu pour des tâches qui prennent à un humain des heures, des jours, voire des semaines. Bien le prompter, c'est surtout retirer des consignes devenues inutiles et repenser le harnais autour de lui. Ce cours suit la documentation officielle, section par section.

Modèle : claude-fable-5 · sorti le 9 juin 2026 · source : docs Claude « Prompting Claude Fable 5 » & « Refusals and fallback ».

Écouter cet article (18 min)

Version audio générée localement (Pocket TTS, Kyutai, voix Estelle). Les exemples de code et tableaux sont à retrouver sur cette page.

Le principe directeur

Commencez par le haut de votre gamme de difficulté

Les équipes qui obtiennent les meilleurs résultats confient à Fable 5 leurs problèmes les plus durs et non résolus. Le tester uniquement sur des tâches simples sous-estime sa portée. Donnez-lui une tâche plus difficile que ce que vous donneriez à un modèle antérieur, demandez-lui de la cadrer, poser des questions de clarification, puis exécuter — et rendez la vérification de son propre travail explicite dans les prompts longs.

02

Ce que Fable 5 débloque

Les axes sur lesquels il excelle, et qu'il faut savoir solliciter :

  • Autonomie longue durée — runs multi-jours, dirigés vers un but, avec une forte rétention des instructions.
  • Justesse au premier essai sur des problèmes complexes et bien spécifiés (implémentations « one-shot » qui demandaient des jours d'itération).
  • Vision — images techniques denses, captures, apps web ; utilise bash et un outil de recadrage pour gérer les images inclinées, floues ou bruitées.
  • Workflows d'entreprise — suit les consignes, reste dans le périmètre, sort de l'analyse financière / tableurs / slides / documents de qualité pro.
  • Revue de code & debug — rappel de bugs élevé (hors domaines cyber couverts par les garde-fous), recherche dans le code et l'historique du dépôt.
  • Délégation — très fiable pour lancer et piloter des sous-agents parallèles.
⚠ Hors périmètre Fable 5 n'est pas destiné à la cybersécurité offensive ni au travail en biologie / sciences du vivant. Ces requêtes peuvent renvoyer un stop_reason: "refusal" (voir §9).
03

Les paramètres d'API (et ce qui disparaît)

Côté requête JSON, deux changements structurants : le thinking et l'effort.

L'effort est le levier n°1

Sur Fable 5, effort arbitre intelligence ↔ latence ↔ coût. La doc recommande :

EffortQuand
highDéfaut pour la plupart des tâches.
xhighCharges les plus exigeantes en capacité.
medium / lowTravail de routine ; un effort bas reste très performant.

Baissez l'effort si une tâche réussit mais traîne, ou si vous voulez un style plus interactif.

Le « thinking » adaptatif est toujours actif

L'ancien réflexe de désactiver le thinking ne s'applique plus : il est désormais adaptatif et permanent, restitué uniquement en résumé. Il n'y a plus de budget de thinking étendu à régler — on pilote la profondeur via effort. Si vous avez besoin de visibilité sur le raisonnement, lisez les blocs thinking structurés ; ne demandez pas au modèle de réécrire son raisonnement dans la réponse (voir §9, refus reasoning_extraction).

Les tours sont plus longs par défaut

À effort élevé, une requête sur tâche difficile peut tourner plusieurs minutes ; un run autonome, des heures. C'est l'un des plus gros ajustements à prévoir. Avant de migrer :

  • Augmentez les timeouts client.
  • Passez en streaming et soignez les indicateurs de progression.
  • Restructurez le harnais pour vérifier les runs en asynchrone (jobs planifiés) plutôt qu'en bloquant.
↳ Anti-sur-planification Quand une tâche est ambiguë, Fable peut sur-planifier. Template à ajouter au prompt :
Template — agir plutôt que survolerQuand tu as assez d'informations pour agir, agis. Ne re-dérive pas des faits déjà établis, ne re-débats pas d'une décision déjà prise, et n'énumère pas dans tes messages des options que tu ne suivras pas. Si tu hésites entre des choix, donne une recommandation, pas un panorama exhaustif. (Ne s'applique pas aux blocs de pensée.)
04

Le fichier système : moins, mais mieux

Le suivi d'instructions est assez fort pour qu'une consigne brève pilote la plupart des comportements : inutile d'énumérer chaque cas un par un.

Non-steeré et à effort élevé, Fable a tendance à élaborer : survoler des options, expliquer longuement les causes racines, produire des descriptions de PR sur-structurées, commenter chaque ligne. Une seule consigne de concision suffit :

Template — concision & lisibilitéCommence par le résultat. Ta première phrase une fois terminé doit répondre à « qu'est-il arrivé / qu'as-tu trouvé » — le TL;DR que l'utilisateur demanderait. Le détail et le raisonnement viennent après. Être lisible et être concis sont deux choses différentes : la lisibilité prime. Pour raccourcir, sois sélectif sur ce que tu inclus — ne compresse pas en fragments, abréviations ou chaînes « A → B → échec ».

Définir les bornes (ce qu'il ne doit pas faire)

Fable peut parfois prendre des initiatives non demandées (rédiger un e-mail, créer des branches git « de sauvegarde »). Cadrez explicitement :

Template — périmètreQuand l'utilisateur décrit un problème, pose une question ou réfléchit à voix haute plutôt que de demander une modification, le livrable est ton diagnostic. Rapporte tes constats et arrête-toi. N'applique pas de correctif tant qu'on ne te le demande pas. Avant toute commande qui change l'état du système (redémarrage, suppression, édition de config), vérifie que les preuves soutiennent précisément cette action.
05

La mémoire : un simple memory.md suffit

Fable 5 brille quand il peut noter les leçons d'un run et les relire. Pas besoin d'infra : un fichier Markdown fait l'affaire.

Template — règle d'écriture mémoireStocke une leçon par fichier, avec un résumé d'une ligne en tête. Consigne aussi bien les corrections que les approches confirmées, et pourquoi elles comptent. N'enregistre pas ce que le dépôt ou l'historique de chat consignent déjà ; mets à jour une note existante plutôt que d'en dupliquer une ; supprime les notes qui se révèlent fausses.

Pour amorcer la mémoire à partir de l'historique existant :

Template — bootstrap depuis l'historiqueReviens sur nos sessions précédentes. Utilise des sous-agents pour identifier les thèmes et leçons clés, et stocke-les dans [X]. Assure-toi de savoir te référer à [X] pour la suite.
↳ À distinguer Ce « memory.md » géré dans le harnais est différent de l'outil mémoire côté API. Le principe reste le même : persister des leçons réutilisables entre runs, courtes et dédupliquées.
06

CLAUDE.md, skills, fichiers d'instructions : à élaguer

Le point le plus contre-intuitif du cours, et celui que la doc martèle.

⚠ Règle d'or Les skills et instructions écrits pour des modèles antérieurs sont souvent trop prescriptifs pour Fable 5 et peuvent dégrader la qualité. Relisez-les, et retirez les anciennes consignes si la performance par défaut est meilleure sans elles.

La même logique vaut pour vos fichiers d'instruction projet de type CLAUDE.md (dans Claude Code) ou vos Skills : un empilement de règles pensées pour « tenir la main » d'un modèle plus faible devient du bruit. Fable 5 sait par ailleurs mettre à jour un skill à la volée selon ce qu'il apprend de la tâche.

Le piège à supprimer en priorité

Toute consigne qui demande au modèle d'écho / transcrire / expliquer son raisonnement interne dans le texte de réponse peut déclencher la catégorie de refus reasoning_extraction, et donc faire grimper les fallbacks vers le modèle de repli. Auditez vos system prompts, skills et CLAUDE.md pour retirer les « montre ton raisonnement / pense à voix haute dans la réponse ».

07

RAG natif & récupération de contexte

La doc ne « redéfinit » pas le RAG, mais les capacités de Fable 5 changent la stratégie. Voici les implications, dérivées des comportements documentés.

  • Laissez-le récupérer lui-même. Sa rétention sur de longs contextes et sa capacité à fouiller un dépôt / un historique rendent souvent inutile un pré-découpage agressif. Donnez-lui les outils (recherche, lecture de fichiers, sous-agents) plutôt que de tout pré-mâcher.
  • La mémoire complète le RAG. Le RAG apporte les faits du corpus à l'instant T ; le memory.md (§5) persiste les leçons entre runs. Les deux sont complémentaires, pas concurrents.
  • RAG visuel. Fable lit nativement figures, tableaux et graphes imbriqués dans des PDF. Pour des corpus « document-lourds » (finance, juridique, archi), passez les pages en image plutôt que d'en extraire un texte appauvri.
  • Sous-agents récupérateurs. Un sous-agent à contexte frais dédié à la recherche, dont le résultat est vérifié, surpasse l'auto-critique d'un agent unique saturé.
⚠ Piège RAG spécifique à Fable Si votre corpus contient du contenu cyber ou biologie, un document récupéré peut faire déclencher un classificateur en plein milieu d'une réponse RAG. Configurez un modèle de repli (§9) pour qu'une réponse documentaire ne s'arrête pas net sur un refusal.
08

Agents longs & sous-agents

C'est là que Fable 5 prend le plus d'avance — et là où le harnais doit le plus évoluer.

Sous-agents parallèles, en asynchrone

Fable dispatche des sous-agents très volontiers. Préférez la communication asynchrone orchestrateur ↔ sous-agents au blocage. Les sous-agents longue durée qui gardent leur contexte économisent temps et coût via les lectures de cache.

Template — délégationDélègue les sous-tâches indépendantes à des sous-agents et continue à travailler pendant qu'ils tournent. Interviens si un sous-agent dévie ou manque de contexte.

Ancrer les rapports de progression

Sur les runs autonomes, demandez-lui d'auditer chaque affirmation contre un résultat d'outil réel. Dans les tests d'Anthropic, cela a quasi éliminé les rapports d'avancement inventés :

Template — progression vérifiéeAvant de rapporter une progression, confronte chaque affirmation à un résultat d'outil de cette session. Ne rapporte que ce que tu peux prouver ; si quelque chose n'est pas vérifié, dis-le. Si des tests échouent, dis-le avec la sortie ; si une étape a été sautée, dis-le ; quand c'est fait et vérifié, affirme-le sans détour.

Un outil send_to_user (JSON)

Pour les agents longs et asynchrones, donnez-lui un moyen d'afficher un message exactement tel quel sans terminer son tour. Les inputs d'outil ne sont jamais résumés : le contenu arrive intact.

outil client · schémajson
{
  "name": "send_to_user",
  "description": "Affiche un message directement à l'utilisateur.
     À utiliser pour les mises à jour de progression, résultats partiels,
     ou contenu que l'utilisateur doit voir tel quel avant la fin.",
  "input_schema": {
    "type": "object",
    "properties": {
      "message": { "type": "string",
                   "description": "Le contenu à afficher." }
    },
    "required": ["message"]
  }
}

Deux réflexes pour les sessions très longues

  • Arrêt prématuré. Fable peut parfois finir un tour sur une intention (« je vais lancer X ») sans émettre l'appel d'outil. Un simple « continue » ou « fais-le de bout en bout » relance. Pour les pipelines autonomes, ajoutez un rappel « tu opères en autonomie, l'utilisateur ne répond pas en temps réel ».
  • Inquiétude de budget de contexte. En session très longue, il peut proposer de résumer / repartir à neuf — souvent déclenché par un décompte de tokens affiché. Évitez d'afficher ce décompte ; sinon, rassurez : « tu as amplement de contexte, ne t'arrête pas et ne propose pas de nouvelle session ».
09

Donner l'intention, pas seulement la requête

Fable performe mieux quand il comprend pourquoi — le contexte lui permet de relier la tâche aux bonnes informations plutôt que de deviner.

Template — cadrer l'intentionJe travaille sur [la tâche plus large] pour [le destinataire]. Ils ont besoin de [ce que la sortie permet]. Avec ça en tête : [la requête].

Enfin, en conversation agentique très longue (beaucoup d'appels d'outils), demandez-lui d'abandonner le jargon de travail dans son message final : phrases complètes, termes explicités, pas de chaînes à flèches. Son résumé final est souvent le premier regard de l'utilisateur sur tout le travail — il doit se lire comme une remise en contexte, pas comme la suite de son fil interne.

10

Refus & fallback : le morceau à ne pas rater

C'est la grande nouveauté opérationnelle de Fable 5. À traiter dès la conception, pas après.

À quoi ressemble un refus

Un refus n'est pas une erreur : c'est une réponse HTTP 200 avec stop_reason: "refusal". Branchez votre logique sur stop_reason, jamais sur stop_details ou content.

réponse · refus avant toute sortiehttp 200
{
  "type": "message",
  "model": "claude-fable-5",
  "content": [],
  "stop_reason": "refusal",
  "stop_details": {
    "type": "refusal",
    "category": "cyber",
    "explanation": "Décliné : pourrait faciliter un préjudice cyber."
  },
  "usage": { "input_tokens": 412, "output_tokens": 0 }
}
categorySignification
cyberPourrait faciliter un préjudice cyber (malware, exploit). Le travail cyber bénin peut aussi déclencher.
bioPourrait faciliter un préjudice biologique. Les sciences du vivant bénéfiques peuvent aussi déclencher.
reasoning_extractionOn demande au modèle de reproduire son raisonnement interne dans la réponse. Utilisez plutôt les blocs thinking.

Facturation : un refus avant toute sortie n'est pas facturé (et ne compte pas contre les quotas). Un refus en milieu de flux facture l'entrée et la sortie déjà streamée.

Le fallback en une ligne (server-side, beta)

La config la plus simple : nommez le modèle de repli, l'API gère le retry dans un seul aller-retour.

requête · fallback côté serveurbeta
// header beta exact requis : server-side-fallback-2026-06-01
await client.beta.messages.create({
  model: "claude-fable-5",
  max_tokens: 1024,
  messages,
  betas: ["server-side-fallback-2026-06-01"],
  fallbacks: [{ model: "claude-opus-4-8" }]
});
  • Jusqu'à 3 modèles, essayés dans l'ordre ; chacun doit figurer dans allowed_fallback_models du modèle (Models API).
  • Seul un refus de classificateur déclenche le fallback — un rate-limit / une surcharge / une erreur serveur vous est renvoyé tel quel.
  • Indisponible sur Batches, Bedrock, Vertex AI, Foundry → utilisez le middleware SDK (TS, Python, Go, Java, C#), qui épingle aussi la conversation au modèle qui a accepté via BetaFallbackState.
⚠ Pièges classiques
  • Re-essayez sur un autre modèle — relancer le même renvoie souvent un nouveau refus.
  • Budgétez les retries par requête, pas par tour ni par session (un tour peut produire plusieurs refus : agent + sous-agents).
  • Chaque sous-agent a besoin de son propre fallback — le paramètre fallbacks ne se propage pas dans les appels faits depuis l'exécution d'outils.
  • Instrumentez les refus comme un signal à part — étant des HTTP 200, ils sont invisibles à un monitoring basé sur les 5xx.
11

Checklist de migration

À cocher avant de mettre Fable 5 en production.

  • Remplacer l'ID modèle par claude-fable-5.
  • Fixer effort explicitement (défaut high).
  • Retirer les vieilles consignes « montre ton raisonnement » (évite les refus reasoning_extraction).
  • Augmenter les timeouts, activer le streaming, prévoir des runs asynchrones.
  • Ajouter le reporting de progression ancré sur les résultats d'outils.
  • Élaguer skills / CLAUDE.md trop prescriptifs ; tester la perf par défaut.
  • Configurer le fallback sur tous les chemins de requête (y compris sous-agents).
  • Mettre en place un memory.md et, pour les agents async, un send_to_user.
12

Quatre cas d'usage, prompt par prompt

Des recettes concrètes combinant les techniques ci-dessus.

Cas 1 · Ingénierie

Migration d'un gros codebase

effort: xhighsous-agentsvérifieur fraismemory.mdfallback

Le terrain de prédilection de Fable (Stripe : ~2 mois → 1 jour sur 50 M de lignes). Cadrez la tâche au sommet de la difficulté, exigez une vérification périodique par sous-agents à contexte frais :

PromptObjectif : migrer [module] de [ancien] vers [nouveau] sur tout le dépôt. Commence par cadrer le périmètre et poser tes questions, puis exécute de bout en bout. Établis une méthode de vérification de ton travail à intervalle régulier : toutes les [N] étapes, fais valider ton travail par des sous-agents contre la spécification. Consigne les pièges rencontrés dans notes/memory.md (une leçon par fichier).
Cas 2 · Finance / juridique

Analyse de documents denses

vision nativepérimètreconcisionfallback

Exploite la vision SOTA sur figures et tableaux. Passez les pages en image, bornez le périmètre, demandez le résultat d'abord.

PromptJe prépare [livrable] pour [destinataire]. J'ai besoin de [ce que ça permet]. Avec ça en tête : extrais de ce PDF les chiffres de [tableaux X] et signale toute incohérence avec [source]. Commence par le résultat (le constat), le détail ensuite. Si l'information n'est pas dans le document, dis-le — n'invente pas.
Cas 3 · Agent async

Agent de support / ops longue durée

send_to_userprogression ancréerappel autonomiefallback partout

Run de plusieurs heures sans humain devant l'écran. Donnez l'outil send_to_user, ancrez les rapports, prévenez l'arrêt prématuré.

SystèmeTu opères en autonomie ; l'utilisateur ne regarde pas en temps réel et ne peut pas répondre en cours de tâche — « Veux-tu que… ? » bloquerait le travail. Pour les actions réversibles qui découlent de la demande initiale, agis sans demander. Avant de finir ton tour, relis ton dernier paragraphe : si c'est un plan, une question ou une promesse, fais ce travail maintenant avec des appels d'outils. Utilise send_to_user pour tout message que l'utilisateur doit voir tel quel.
Cas 4 · Recherche

Pipeline de recherche autonome

effort: xhighbootstrap mémoirecheckpointspas de décompte tokens

Travail « niveau senior research scientist » sur plusieurs jours. Amorcez la mémoire, fixez des checkpoints, et n'affichez pas de décompte de contexte.

PromptReviens sur nos sessions précédentes : via des sous-agents, identifie thèmes et leçons, stocke-les dans notes/, et réfère-t'y. Puis attaque [problème]. Pause-toi pour moi uniquement si l'action est destructrice/irréversible, s'il y a un vrai changement de périmètre, ou s'il faut une information que moi seul peux fournir.