The Claude Bible
Accueil / Prompt engineering avancé
Niveau: Avance · 12 lecons

Prompt engineering avancé

Chaînes de prompts, tool use, composition multi-source (Frankenstein), citation, anti-hedging.

Ouvrir le cours interactif212 lecons, quiz, exercices, 3 langues, gratuit.

Enchaîner les prompts

Une tâche complexe exécutée en un seul prompt monolithique échoue plus souvent qu'une chaîne de prompts simples, chacun avec une seule responsabilité. Le principe : découper, et passer la sortie de l'un comme entrée du suivant.

Exemple : "écrire un article SEO complet" donne quelque chose de tièdasse. Une chaîne donne quelque chose de solide :

  1. Prompt 1 : rechercher et lister les angles + mots-clés.
  2. Prompt 2 : à partir de cette liste, produire un plan détaillé.
  3. Prompt 3 : rédiger section par section depuis le plan.
  4. Prompt 4 : relire et corriger (un agent critique).

Chaque maillon est vérifiable et corrigeable indépendamment. C'est aussi la base mentale des workflows multi-agents : un pipeline où chaque étape est un agent spécialisé. La règle de Pierre "Opus pour l'architecture, Haiku pour le répétitif" s'applique ici : on enchaîne en assignant le bon modèle à chaque maillon.

Points cles
  • Découper une tâche complexe en une chaîne de prompts simples
  • La sortie d'un maillon = l'entrée du suivant ; chaque maillon vérifiable
  • Base des workflows : un pipeline d'agents spécialisés
  • Assigner le bon modèle à chaque maillon

Appel d'outils : donner des mains au modèle

L'appel d'outils (tool use, ou function calling) permet à Claude d'appeler des fonctions que vous définissez : interroger une base de données, appeler une API, faire un calcul, lire un fichier. Vous décrivez l'outil (nom, description, schéma de paramètres), Claude décide quand et comment l'appeler, vous exécutez et renvoyez le résultat.

C'est le moteur de tout agent (Claude Code, Cowork, MCP). Bonnes pratiques pour définir un outil, tirées des meilleurs harnais :

La sortie structurée (forcer Claude à appeler un outil qui valide un schéma JSON) est le moyen le plus fiable d'obtenir des données exploitables par un programme, mieux que d'analyser du texte libre.

Points cles
  • Appel d'outils = Claude appelle des fonctions que vous définissez (le moteur des agents)
  • Description claire + schéma de paramètres strict
  • Ne nommez pas l'outil à l'utilisateur ; parallélisez si indépendants
  • Sortie structurée validée par schéma > analyse de texte libre

Composer un system prompt : le cas Frankenstein

La technique la plus avancée de Pierre : composer un system prompt en assemblant les meilleures règles issues de plusieurs system prompts d'élite. Son "Frankenstein" fusionne huit sources (le roleplay Fable 5, plus les disciplines de Cursor, GPT-5, Perplexity, Lovable, v0, Cline, Devin) et superpose ses propres règles absolues au sommet, avec priorité.

Ce n'est pas du fine-tuning, c'est du prompt engineering pur : on ne modifie pas les poids du modèle, on change son comportement par instruction. Structure du document, par ordre de priorité décroissante :

  1. Identité et règles absolues utilisateur (écrasent tout).
  2. Discipline d'utilisation des outils (ne pas nommer les outils, lire avant d'éditer, 3 tentatives maximum).
  3. Anti-hedging : une liste explicite d'ouvertures et de clôtures interdites.
  4. Style, règles de code, directives UI/UX, recherche, citation, refus, récupération d'erreur, sécurité de l'espace de travail.

Leçons transposables, même sans copier sa configuration :

Points cles
  • Composer un system prompt = assembler les meilleures règles de plusieurs sources
  • Prompt engineering pur, pas de fine-tuning
  • Règles de priorité en tête, déclarées comme prioritaires
  • Interdire par liste explicite > demander vaguement ; encoder chaque incident en règle

Citation et anti-hedging au quotidien

Deux disciplines de style qui changent la qualite percue, tirées directement du Frankenstein.

Citation (discipline Perplexity), chaque fois que vous faites une recherche :

Anti-hedging (GPT-5 + Cline) : bannir les ouvertures vides ("Bien sur", "Evidemment") et les closes opt-in ("voulez-vous que je..."). Au plus une question de clarification en debut si nécessaire, jamais en fin. Si l'étape suivante est évidente, l'exécuter plutot que la proposer.

Pourquoi c'est important : le hedging dilue le signal et ralentit le lecteur. Une réponse qui agit (ou explique) directement respecte le temps de l'utilisateur. C'est exactement le ton de cette Bible, par construction.

Points cles
  • Citation : crochets inline, une source par crochet, max 3, pas de section Références
  • Anti-hedging : pas d'ouverture vide ni de close opt-in
  • Au plus une question de clarification, en debut, jamais en fin
  • Si l'étape suivante est évidente, l'exécuter

Schémas de chaînes de prompts

Un seul prompt a ses limites. Lorsqu'une tâche est complexe, la découper en une chaîne de prompts (une séquence de prompts liés où la sortie de chacun alimente le suivant) produit de bien meilleurs résultats que de tout entasser dans une seule instruction géante. Chaque maillon de la chaîne a un rôle étroit et bien défini, ce qui facilite la détection et la correction des erreurs.

La technique de base est le passage de résultat : vous prenez la sortie de l'étape N et vous la collez (ou vous l'injectez par programmation) comme contexte dans l'étape N+1. Dans Claude Code, vous pouvez construire des chaînes à l'intérieur de scripts, en utilisant des variables shell ou des fichiers comme pont entre les appels. Dans une session de chat, il suffit de copier la partie pertinente de la réponse dans votre message suivant.

Schémas de chaînes courants à connaître :

Gardez chaque prompt de la chaîne atomique (ne faisant qu'une seule chose) et incluez un bref en-tête de contexte en haut de chaque prompt subséquent afin que Claude ne parte pas de zéro. Une chaîne de trois prompts focalisés bat systématiquement un mega-prompt tentaculaire en termes de précision et de modifiabilité.

Points cles
  • Chaîne de prompts : une séquence de prompts où la sortie de chacun alimente l'étape suivante
  • Passage de résultat : injecter une réponse précédente comme contexte dans le prompt suivant
  • Prompt atomique : un prompt avec exactement une tâche clairement délimitée
  • Schéma rédaction-critique : générer d'abord, puis revoir dans un appel séparé

La boucle d'utilisation d'outils en profondeur

Quand vous donnez un outil à Claude (une fonction qu'il peut appeler, comme une recherche web ou un exécuteur de code), le modèle ne répond pas une seule fois. Il entre dans une boucle d'utilisation d'outils : il décide d'appeler un outil, lit le résultat, puis décide quoi faire ensuite, en répétant jusqu'à pouvoir donner une réponse finale. Chaque aller-retour est appelé un tour.

La séquence à l'intérieur d'une itération de boucle est toujours la même :

  1. Appel d'outil : Claude émet une requête structurée nommant l'outil et ses arguments (par exemple, {"name": "search", "input": {"query": "Claude Opus 4 release date"}}).
  2. Exécution : Votre code (ou l'environnement hôte) exécute l'outil et retourne un bloc résultat d'outil contenant la sortie.
  3. Continuation : Claude lit le résultat dans le contexte de la conversation et soit appelle un autre outil, soit produit une réponse textuelle finale.

Trois éléments contrôlent le comportement de la boucle. Le prompt système indique à Claude quels outils existent et quand les utiliser. La définition d'outil (nom, description, schéma JSON pour les entrées) détermine si Claude choisit le bon outil avec les bons arguments. Le résultat d'outil que vous retournez doit être clair et complet, car Claude ne peut pas poser de question de suivi à l'outil : il peut seulement l'appeler à nouveau avec des arguments différents.

Modes d'échec courants : des descriptions d'outils vagues amènent Claude à ignorer l'outil ou à passer de mauvais arguments ; des résultats tronqués ou d'apparence sans erreur (quand l'appel réel a échoué) amènent Claude à halluciner l'étape suivante ; et les boucles qui ne se terminent jamais se produisent quand l'outil continue à retourner une sortie ambiguë. Une description d'outil bien conçue est souvent plus importante que la longueur du prompt.

Points cles
  • Boucle d'utilisation d'outils : appel, exécution, lecture du résultat, répétition ou fin
  • La qualité de la définition d'outil contrôle la précision des arguments
  • La clarté du résultat d'outil évite les étapes suivantes hallucinées
  • C'est l'environnement hôte qui exécute l'outil, pas le modèle lui-même

Sorties structurées avec un schéma

Un schéma est une description formelle de la forme que vous souhaitez donner à vos données : quels champs existent, quel type contient chaque champ (chaîne, nombre, booléen, tableau), et quels champs sont obligatoires. Lorsque vous attachez un schéma à une invite Claude, vous indiquez au modèle exactement quel JSON (JavaScript Object Notation, un format texte léger pour les données structurées) renvoyer, et rien d'autre.

Claude prend en charge l'application des schémas de deux manières. D'abord, vous pouvez décrire le schéma directement dans votre invite sous forme d'objet JSON brut et demander à Claude de le respecter. Ensuite, lors d'un appel direct à l'API Anthropic, vous pouvez utiliser le tool use (aussi appelé function calling) : vous définissez un outil dont le schéma d'entrée correspond à l'objet souhaité, puis vous demandez à Claude d'appeler cet outil. L'API garantit que la réponse respecte le schéma, ce qui vous donne une sortie lisible par la machine sans avoir à analyser du texte libre.

Même avec l'application d'un schéma, les sorties peuvent échouer à la validation dans des cas limites : un champ obligatoire peut être null, un nombre peut arriver sous forme de chaîne, ou une valeur d'enum peut être mal orthographiée. Un pipeline robuste ajoute donc une boucle de validation et de nouvelle tentative : analyser le JSON, exécuter un validateur (comme une bibliothèque JSON Schema), et si cela échoue, renvoyer le message d'erreur à Claude dans un tour de suivi pour qu'il corrige uniquement les champs défectueux.

Principes clés pour des sorties structurées fiables :

Points cles
  • Un schéma définit la forme exacte (champs, types, caractère obligatoire) du JSON attendu en retour.
  • Le tool use (function calling) applique la conformité au schéma au niveau de l'API.
  • Validez toujours la sortie de manière programmatique et relancez avec le message d'erreur en cas d'échec.
  • Les schémas plats avec des valeurs enum explicites produisent le moins d'erreurs.

Ecrire des evals

Un eval (abréviation d'évaluation) est un petit test structuré que vous exécutez sur votre prompt pour mesurer s'il produit de manière fiable le résultat souhaité. Sans evals, vous naviguez à l'aveugle : un prompt qui fonctionne sur un exemple peut silencieusement échouer sur dix autres.

Le principe de base consiste à construire un ensemble de tests : une collection fixe d'entrées associées aux sorties attendues (ou à une règle de notation). Vous faites passer chaque cas de test par votre prompt et vous suivez le taux de réussite. Lorsque vous révisez le prompt, vous relancez l'ensemble de tests et comparez les scores. Cela transforme l'amélioration du prompt : on passe de l'intuition à la mesure.

Un eval minimal comporte trois parties :

Même un tableur de cinq lignes vaut mieux que aucune structure. Commencez petit, ajoutez des cas chaque fois qu'un vrai utilisateur signale un bug, et ne supprimez jamais un cas une fois qu'il a détecté une régression (un comportement qui fonctionnait auparavant et qui cesse de fonctionner après une modification du prompt).

Points cles
  • Eval : un ensemble de tests reproductibles qui note la qualité d'un prompt
  • Ensemble de tests : entrées fixes associées aux sorties attendues ou à des règles de notation
  • Taux de réussite : proportion de cas où la sortie satisfait les critères
  • Régression : un comportement qui fonctionnait avant et qui cesse silencieusement de fonctionner après une modification du prompt

Meta-prompting

Le meta-prompting consiste à utiliser un modèle de langage (LLM) pour écrire, critiquer ou améliorer un prompt, plutôt que de le rédiger entièrement à la main. L'idée est récursive : le modèle devient un collaborateur dans la conception des instructions qu'il devra suivre par la suite.

Cette technique est utile quand vous bloquez sur la formulation, quand un prompt fonctionne mais que vous pensez qu'il pourrait mieux fonctionner, ou quand vous devez générer rapidement de nombreuses variantes de prompt. Le modèle a été exposé à d'énormes quantités de textes sur la façon dont les modèles répondent, et il peut souvent repérer des faiblesses que vous auriez manquées.

Un meta-prompt de base comporte trois parties :

Vous pouvez aller plus loin en enchaînant les étapes : demandez d'abord au modèle de critiquer, puis de réécrire en s'appuyant sur sa propre critique, puis de générer trois variations classées par clarté attendue. Chaque étape consomme des tokens, mais permet de converger vers un prompt plus solide sans avoir à deviner ce qui ne va pas.

Points cles
  • Meta-prompting : un prompt dont la fonction est d'améliorer un autre prompt.
  • Incluez le contexte, le brouillon et une instruction précise.
  • Enchaîner critique puis réécriture pour des résultats plus affinés.
  • Traitez le résultat comme un brouillon, pas comme une réponse définitive, et testez-le.

Garde-fous et validation

Un modèle peut produire une réponse fluide et confiante qui est factuellement erronée, structurellement cassée ou dangereuse à exécuter. Les garde-fous sont des vérifications que vous ajoutez entre la sortie brute du modèle et toute action qui en découle. Ils transforment une confiance aveugle en le modèle en un pipeline contrôlé.

Le garde-fou le plus simple est une vérification de format : s'assurer que la sortie a la forme demandée (JSON valide, un nombre d'éléments précis, aucune chaîne interdite) avant de la transmettre en aval. Un deuxième niveau est la validation sémantique : demander à un second appel de modèle, moins coûteux, de juger si la réponse est cohérente, pertinente ou sûre. Ce schéma s'appelle parfois le pattern LLM-as-judge.

Dans Claude Code (l'agent de codage CLI et IDE), vous pouvez enchaîner des étapes de validation dans un pipeline shell ou un script. Les approches courantes sont :

Les garde-fous ajoutent de la latence et du coût, alors appliquez-les de façon proportionnelle. Les actions à fort enjeu (envoyer un e-mail, écrire dans une base de données, déployer du code) méritent des vérifications strictes. Les actions à faible enjeu (rédiger un résumé pour relecture humaine) peuvent se contenter d'un contrôle allégé, voire d'aucun.

Points cles
  • Les garde-fous vérifient la sortie du modèle avant qu'elle soit exploitée
  • Les vérifications de format et les assertions de schéma constituent la première ligne de défense
  • LLM-as-judge utilise un second appel de modèle pour valider le premier
  • Appliquez des garde-fous plus stricts aux actions irréversibles ou à fort enjeu

Auto-coherence et vote majoritaire

La plupart des strategies de prompting envoient une seule requete et font confiance a la premiere reponse. L'auto-coherence remet en question ce postulat : on soumet la meme question plusieurs fois, on laisse le modele raisonner independamment a chaque fois, puis on retient la reponse la plus frequente. Ce vote majoritaire est statistiquement plus fiable que n'importe quelle reponse isolee, en particulier pour les problemes de mathematiques, de logique et de raisonnement en plusieurs etapes.

L'idee centrale vient d'un article de 2022 (Wang et al.) montrant que les modeles de langage ne suivent pas toujours le meme chemin de raisonnement deux fois de suite. Certains chemins sont errones. Si on soumet le meme prompt cinq fois et que quatre executions aboutissent au meme resultat, la probabilite que les quatre partagent la meme erreur est faible. Le vote (aussi appele agregation majoritaire) exploite cette independance.

Quand l'utiliser :

Compromis : le cout et la latence se multiplient par le nombre d'echantillons. Utilisez une temperature (le curseur d'aleatoire, ou 0 est deterministe et 1 est creatif) superieure a 0 pour que chaque echantillon diverge. Une valeur autour de 0,7 fonctionne bien. Parsez ensuite les reponses programmatiquement et comptez la plus frequente.

Points cles
  • Auto-coherence : echantillonner le meme prompt N fois, retenir la reponse majoritaire
  • Une temperature superieure a 0 est necessaire pour que chaque execution produise un chemin de raisonnement different
  • Le vote filtre le bruit sans modifier le modele ni le prompt
  • Le cout augmente lineairement avec le nombre d'echantillons : a reserver aux questions difficiles ou a enjeux eleves

Auto-critique adversariale

L'auto-critique adversariale est une technique qui consiste à demander au modèle d'argumenter contre sa propre réponse immédiatement après l'avoir produite. Plutôt que de traiter la première réponse comme définitive, vous invitez le modèle à jouer le rôle d'un critique et à trouver les défauts, lacunes ou erreurs dans ce qu'il vient de dire. Cela exploite la capacité de raisonnement du modèle pour détecter des erreurs qu'un seul passage direct manque souvent.

Pourquoi cela fonctionne-t-il ? Les modèles de langage (LLMs, c'est-à-dire les grands modèles de langage entraînés sur du texte) sont sujets au biais de confirmation lors de la génération : une fois qu'une chaîne de raisonnement démarre dans une direction, chaque token rend le token suivant plus susceptible de continuer dans cette direction. Un passage critique séparé remet à zéro cette dynamique et peut faire émerger des contradictions, des cas limites oubliés ou des affirmations trop confiantes.

Il existe deux formes principales d'auto-critique adversariale :

Après que le critique a produit ses objections, vous effectuez un passage de synthèse : demandez au modèle (ou jugez vous-même) quelles objections sont valides, puis demandez une réponse révisée qui ne traite que les objections valides. Trois tours au total : générer, critiquer, synthétiser.

Points cles
  • L'auto-critique adversariale détecte les erreurs qu'une seule réponse rate
  • Utilisez une section avocat du diable inline ou un message critique séparé
  • Remettez à zéro le biais de confirmation en traitant le critique comme une perspective nouvelle
  • Effectuez toujours un passage de synthèse pour filtrer les objections valides du bruit
Travailler avec moi

Maitrisez Claude, Claude Code et les LLM, de votre premier prompt a l orchestration multi-agents.

Ce cours vous plait ? Je l ai concu de bout en bout. Besoin d une web app, d une app mobile, d une automatisation IA ou de SEO/GEO ? Parlons-en.

Me contacter sur LinkedInVoir un site que j ai realise