Table des Matières
1 Introduction au Prompt Engineering Avancé
Le prompt engineering est devenu une discipline à part entière depuis l'émergence des grands modèles de langage (LLM). Si la rédaction d'un prompt basique — une simple instruction textuelle — peut sembler triviale, les résultats obtenus restent souvent en deçà du potentiel réel de ces modèles. En 2026, avec des architectures comme GPT-4o, Claude Opus 4, Llama 3.3, Gemini 2 ou Mistral Large, la maîtrise des techniques avancées de prompting n'est plus optionnelle : elle conditionne directement la qualité, la fiabilité et la pertinence des réponses générées.
Le prompt engineering avancé va bien au-delà de la simple formulation d'une question. Il s'agit de structurer l'interaction avec le modèle pour guider son processus de raisonnement, contrôler la qualité de ses sorties et maximiser sa capacité à résoudre des problèmes complexes. Les travaux de recherche de Google DeepMind, OpenAI, Anthropic et Meta ont formalisé plusieurs paradigmes qui transforment radicalement l'efficacité des LLM.
Taxonomie des Approches de Prompting
Les techniques de prompting avancé se classent selon plusieurs axes fondamentaux : le degré d'exemples fournis (zero-shot vs few-shot), le type de raisonnement sollicité (linéaire, arborescent, itératif) et le niveau d'autonomie accordé au modèle (passif vs agentique). Comprendre cette taxonomie permet de choisir la technique appropriée à chaque situation.
- ▹Zero-Shot / Few-Shot — Contrôle du nombre d'exemples pour calibrer le modèle sans fine-tuning
- ▹Chain-of-Thought (CoT) — Raisonnement séquentiel étape par étape pour les problèmes logiques
- ▹Tree-of-Thought (ToT) — Exploration arborescente de multiples chemins de raisonnement
- ▹ReAct — Boucle raisonnement-action permettant au modèle d'interagir avec des outils externes
- ▹Techniques complémentaires — Self-Ask, Least-to-Most, RAG, Meta-prompting et autres paradigmes émergents
Point Clé
Les benchmarks académiques (GSM8K, MATH, HumanEval) montrent que le choix de la technique de prompting peut améliorer les performances d'un LLM de 15 à 40% sur des tâches de raisonnement, sans modifier le modèle lui-même. Le prompt engineering avancé est donc un levier de performance considérable et immédiatement actionnable.
2 Zero-Shot et Few-Shot Prompting
Avant d'aborder les techniques avancées de raisonnement, il est essentiel de maîtriser les deux paradigmes fondamentaux qui constituent la base de toute interaction avec un LLM : le zero-shot prompting et le few-shot prompting. Ces approches, théorisées dès les premiers travaux sur GPT-3 par Brown et al. (2020), restent la pierre angulaire sur laquelle se construisent toutes les techniques plus sophistiquées.
Zero-Shot Prompting : L'Instruction Directe
Le zero-shot consiste à donner une instruction au modèle sans aucun exemple. Le LLM doit s'appuyer uniquement sur ses connaissances acquises durant le pré-entraînement et le fine-tuning par RLHF (Reinforcement Learning from Human Feedback). Cette approche est efficace pour les tâches simples et bien définies, où le modèle dispose d'une compréhension native suffisante.
## Zero-Shot — Classification de sentiment
Classifie le sentiment du texte suivant comme "positif", "négatif" ou "neutre".
Texte : "Ce nouveau framework de prompt engineering a complètement
transformé notre workflow. Les résultats sont incroyables."
Sentiment :
Few-Shot Prompting : Apprendre par l'Exemple
Le few-shot prompting fournit au modèle plusieurs exemples (typiquement 2 à 8) avant de lui soumettre la tâche cible. Ces exemples permettent au modèle de comprendre implicitement le format attendu, le ton, le niveau de détail et la logique sous-jacente. C'est une forme d'apprentissage en contexte (in-context learning) extrêmement puissante.
## Few-Shot — Extraction d'entités cybersécurité
Extrait les entités de sécurité (CVE, produit, criticité) du texte.
Texte : "La vulnérabilité CVE-2025-1234 affecte Apache Log4j
avec un score CVSS de 9.8."
Réponse : {CVE: "CVE-2025-1234", produit: "Apache Log4j", criticité: "Critique"}
Texte : "Microsoft a corrigé CVE-2025-5678 dans Exchange Server,
score CVSS 7.2."
Réponse : {CVE: "CVE-2025-5678", produit: "Exchange Server", criticité: "Élevée"}
Texte : "Une faille CVE-2026-0042 découverte dans OpenSSL 3.2
permet l'exécution de code à distance. CVSS 9.1."
Réponse :
Quand Utiliser Chaque Approche ?
Le choix entre zero-shot et few-shot dépend de plusieurs facteurs : la complexité de la tâche, la spécificité du format de sortie attendu, et la capacité du modèle utilisé. Les modèles les plus récents (Claude Opus 4, GPT-4o) excellent en zero-shot sur de nombreuses tâches, tandis que les modèles plus compacts (Llama 3.3 8B, Mistral 7B) bénéficient davantage du few-shot.
- ▹Zero-shot privilégié — Tâches standard (résumé, traduction, classification simple), modèles >70B paramètres, contrainte de tokens limitée
- ▹Few-shot privilégié — Format de sortie spécifique (JSON, tableaux), domaine spécialisé (juridique, médical, cybersécurité), cohérence de style critique
- ▹Attention au biais de récence — Les derniers exemples few-shot influencent plus fortement la réponse ; variez l'ordre pour éviter les biais systématiques
Recommandation Pratique
En production, commencez toujours par un test zero-shot. Si les résultats ne sont pas satisfaisants, ajoutez progressivement des exemples few-shot. 3 à 5 exemples suffisent généralement pour atteindre un plateau de performance. Au-delà de 8 exemples, les gains marginaux deviennent négligeables et le coût en tokens augmente significativement.
3 Chain-of-Thought (CoT) Prompting
Le Chain-of-Thought prompting, introduit par Wei et al. (Google Brain, 2022), constitue l'une des avancées les plus significatives en prompt engineering. Le principe est élégamment simple : demander au modèle de verbaliser son raisonnement étape par étape avant de produire sa réponse finale. Cette technique exploite une propriété fondamentale des transformers : la capacité de « raisonnement émergent » qui se manifeste dans les modèles suffisamment grands (>100B paramètres).
CoT Zero-Shot : « Réfléchissons Étape par Étape »
La variante zero-shot du CoT, découverte par Kojima et al. (2022), est remarquablement simple à mettre en œuvre. Il suffit d'ajouter la phrase magique « Réfléchissons étape par étape » (ou « Let's think step by step ») à la fin du prompt. Cette simple instruction déclenche un comportement de raisonnement structuré chez le modèle, avec des améliorations de performance de 10 à 30% sur les tâches arithmétiques et logiques.
## CoT Zero-Shot — Analyse de risque cybersécurité
Une entreprise utilise un serveur Apache 2.4.49 exposé sur Internet
avec le module mod_cgi activé. Le serveur héberge une application
interne de gestion RH. L'équipe n'a pas appliqué les correctifs
depuis 6 mois.
Évalue le niveau de risque de cette configuration.
Réfléchissons étape par étape.
Le modèle va alors décomposer son analyse : identifier la version vulnérable (CVE-2021-41773 path traversal), évaluer l'exposition (Internet-facing), considérer le module à risque (mod_cgi = RCE potentiel), évaluer la sensibilité des données (RH = données personnelles), et conclure avec une évaluation structurée du risque.
CoT Few-Shot : Guider le Raisonnement par l'Exemple
Le CoT few-shot combine la puissance des exemples avec la structuration du raisonnement. Au lieu de fournir simplement des paires entrée/sortie, on inclut le processus de raisonnement complet dans chaque exemple. Le modèle apprend ainsi non seulement quoi répondre, mais comment raisonner pour arriver à la bonne réponse.
## CoT Few-Shot — Calcul de surface d'attaque
Q: Un réseau possède 3 serveurs web, chacun avec 5 ports ouverts,
et 2 serveurs de bases de données avec 3 ports chacun.
Combien de points d'entrée potentiels existent ?
R: Raisonnons étape par étape.
1. Serveurs web : 3 serveurs × 5 ports = 15 points d'entrée
2. Serveurs BDD : 2 serveurs × 3 ports = 6 points d'entrée
3. Total : 15 + 6 = 21 points d'entrée potentiels
Réponse : 21 points d'entrée.
Q: Une entreprise a 4 applications web exposées, chacune avec
8 endpoints API, et 2 VPN avec 4 services chacun. Un WAF protège
60% des endpoints API. Combien de points non protégés au total ?
R:
Self-Consistency : Voter entre Plusieurs Raisonnements
La technique Self-Consistency (Wang et al., 2023) pousse le CoT encore plus loin. Au lieu de générer un seul raisonnement, on demande au modèle de produire N raisonnements indépendants (typiquement 5 à 20) avec une température élevée (0.7-1.0), puis on sélectionne la réponse la plus fréquente par vote majoritaire. Cette approche réduit considérablement les erreurs de raisonnement en exploitant la diversité des chemins logiques.
- ▹Température basse (0.0-0.3) — CoT standard, un seul chemin de raisonnement déterministe
- ▹Température haute (0.7-1.0) — Self-Consistency, multiples chemins avec vote majoritaire
- ▹Gains mesurés — +5 à 15% d'accuracy sur GSM8K par rapport au CoT simple, au prix d'un coût en tokens multiplié par N
Impact sur les Performances
Sur le benchmark GSM8K (problèmes mathématiques), le CoT améliore les performances de GPT-4o de 78% à 92%. Avec Self-Consistency (k=10), on atteint 95%. Sur Claude Opus 4, le CoT passe de 82% à 94% en zero-shot. Ces gains sont particulièrement marqués sur les problèmes nécessitant plus de 3 étapes de raisonnement.
4 Tree-of-Thought (ToT)
Le Tree-of-Thought (Yao et al., Princeton/Google DeepMind, 2023) représente une généralisation naturelle du Chain-of-Thought. Là où le CoT explore un unique chemin linéaire de raisonnement, le ToT permet au modèle d'explorer plusieurs branches simultanément, d'évaluer la pertinence de chaque branche, et de revenir en arrière (backtrack) si une piste s'avère non productive. Cette approche s'inspire directement des algorithmes de recherche classiques en intelligence artificielle.
Principe de l'Exploration Arborescente
Le ToT structure le raisonnement sous forme d'un arbre où chaque nœud représente un état de pensée partiel. À chaque niveau, le modèle génère plusieurs « pensées » candidates (typiquement 3 à 5), évalue la promesse de chacune via une heuristique, puis décide quelles branches explorer en profondeur. Deux stratégies de recherche sont principalement utilisées :
- ▹BFS (Breadth-First Search) — Explore toutes les branches d'un niveau avant de passer au suivant. Idéal quand les branches ont des profondeurs similaires et qu'on cherche la solution optimale
- ▹DFS (Depth-First Search) — Explore une branche en profondeur avant de revenir en arrière. Plus efficient en mémoire, adapté aux problèmes avec solution en profondeur variable
- ▹Évaluation heuristique — Le modèle lui-même évalue chaque pensée comme « prometteur », « incertain » ou « non viable », permettant un élagage efficace de l'arbre
Figure 1 — Tree-of-Thought : exploration arborescente avec évaluation et élagage des branches de raisonnement
Implémentation Pratique du ToT
L'implémentation du ToT nécessite un orchestrateur externe qui gère les appels multiples au LLM. Chaque appel correspond soit à une génération de pensées (proposer N continuations), soit à une évaluation (noter chaque continuation), soit à une décision (sélectionner les branches à explorer). Le framework peut être implémenté avec LangChain, LlamaIndex, ou directement via les API des LLM.
## Tree-of-Thought — Prompt de génération de pensées
Tu es un expert en résolution de problèmes. Pour le problème suivant,
génère exactement 3 approches différentes pour la prochaine étape.
Problème : Concevoir une architecture de détection d'intrusion
pour un réseau industriel OT avec 500 automates Siemens S7-1500.
État actuel : Nous avons identifié la topologie réseau et
les flux de communication standards.
Propose 3 pensées distinctes pour l'étape suivante :
Pensée 1:
Pensée 2:
Pensée 3:
Les cas d'usage privilégiés du ToT incluent les problèmes combinatoires (planification de déploiement, optimisation d'architecture), les puzzles logiques (Game of 24, mots croisés), et les décisions stratégiques où plusieurs options doivent être évaluées rigoureusement. Sur le Game of 24, le ToT atteint 74% de succès contre seulement 4% pour le CoT standard.
CoT vs ToT : Quand Choisir ?
Utilisez le CoT pour les problèmes à solution unique avec un chemin de raisonnement clair (calculs, analyses séquentielles). Optez pour le ToT quand le problème admet plusieurs solutions possibles, nécessite du backtracking, ou implique une exploration créative. Le ToT coûte 5 à 20 fois plus de tokens que le CoT, mais offre des résultats supérieurs sur les tâches complexes.
5 ReAct : Raisonnement + Action
Le paradigme ReAct (Yao et al., 2023) fusionne deux capacités complémentaires des LLM : le raisonnement (Reasoning) et la prise d'action (Acting). Contrairement au CoT qui reste purement « dans la tête » du modèle, ReAct permet au LLM d'interagir avec le monde extérieur en invoquant des outils (recherche web, calculatrice, bases de données, API) au cours de son raisonnement. C'est la base architecturale des agents IA modernes.
La Boucle Thought / Action / Observation
Le pattern ReAct suit un cycle itératif en trois phases. Le modèle commence par formuler une pensée (Thought) qui analyse la situation et planifie la prochaine étape. Il émet ensuite une action (Action) — un appel à un outil externe avec des paramètres spécifiques. Enfin, il reçoit une observation (Observation) — le résultat de l'outil — qu'il intègre dans son raisonnement pour le cycle suivant. Ce processus se répète jusqu'à ce que le modèle dispose de suffisamment d'informations pour formuler une réponse finale.
Figure 2 — ReAct : boucle itérative Thought → Action → Observation avec exemple concret de recherche de vulnérabilités
Prompt ReAct Complet avec Outils
## ReAct Prompt — Agent de veille cybersécurité
Tu es un agent de veille cybersécurité. Tu disposes des outils suivants :
- search(query) : recherche web
- nvd_lookup(cve_id) : consulter la base NVD
- calc(expression) : calculatrice
- date() : date actuelle
Pour chaque question, alterne entre Thought, Action et Observation.
Question : Quelles sont les vulnérabilités critiques (CVSS >= 9.0)
publiées cette semaine affectant des produits Microsoft ?
Thought 1: Je dois d'abord connaître la date actuelle pour
définir "cette semaine".
Action 1: date()
Observation 1: 2026-02-13
Thought 2: La semaine en cours va du 9 au 13 février 2026.
Je vais chercher les CVE Microsoft critiques récentes.
Action 2: search("Microsoft CVE critical CVSS 9 february 2026")
Observation 2: [résultats de recherche...]
Thought 3: J'ai identifié CVE-2026-XXXX. Vérifions les
détails dans la base NVD.
Action 3: nvd_lookup("CVE-2026-XXXX")
Observation 3: [détails CVE...]
Thought 4: J'ai suffisamment d'informations pour répondre.
Final Answer: [synthèse structurée]
ReAct vs CoT Pur : Analyse Comparative
La différence fondamentale entre ReAct et le CoT pur réside dans la capacité d'ancrage factuel. Le CoT raisonne exclusivement à partir des connaissances internes du modèle, ce qui le rend sujet aux hallucinations. ReAct, en vérifiant ses hypothèses via des outils externes, produit des réponses plus fiables et vérifiables. Les benchmarks sur HotpotQA montrent que ReAct surpasse le CoT de 8 points d'accuracy tout en réduisant le taux d'hallucination de 40%.
- ▹CoT pur — Raisonnement interne uniquement, rapide, pas de dépendance externe, mais sujet aux hallucinations sur les faits récents
- ▹ReAct — Ancrage factuel via outils, réponses vérifiables, latence plus élevée, nécessite une infrastructure d'outils
- ▹ReAct + CoT — Combinaison optimale : raisonnement structuré avec vérification factuelle, utilisée par Claude, GPT-4o et Gemini 2 en mode agent
6 Techniques Complémentaires
Au-delà des trois paradigmes majeurs (CoT, ToT, ReAct), l'écosystème du prompt engineering avancé comprend de nombreuses techniques complémentaires. Chacune adresse un aspect spécifique de l'interaction avec les LLM et peut être combinée avec les approches principales pour maximiser les performances.
Retrieval-Augmented Generation (RAG)
Le RAG enrichit le prompt avec des documents pertinents récupérés dynamiquement depuis une base de connaissances vectorielle. Plutôt que de compter sur les seules connaissances du modèle, le RAG injecte dans le contexte des extraits factuels vérifiés (chunks) issus de vos propres données. En 2026, le RAG est devenu le standard de facto pour les applications d'entreprise utilisant des LLM, combiné avec des bases vectorielles comme Milvus, Qdrant ou Weaviate.
Self-Ask : Décomposition Récursive
La technique Self-Ask (Press et al., 2023) pousse le modèle à se poser des sous-questions intermédiaires qu'il résout séquentiellement. Chaque sous-question est plus simple que la question originale, et les réponses intermédiaires servent de base au raisonnement suivant. C'est une forme de décomposition récursive particulièrement efficace pour les questions multi-hop.
## Self-Ask — Question multi-hop
Question : Le framework web le plus utilisé en Python est-il
vulnérable à des CVE critiques en 2026 ?
Sous-question 1 : Quel est le framework web le plus utilisé en Python ?
Réponse intermédiaire : Django (suivi de Flask et FastAPI).
Sous-question 2 : Django a-t-il des CVE critiques (CVSS >= 9) en 2026 ?
Réponse intermédiaire : [recherche nécessaire]
Sous-question 3 : Quelles versions de Django sont affectées ?
Réponse intermédiaire : [détails]
Réponse finale : [synthèse complète]
Least-to-Most Prompting
Le Least-to-Most prompting (Zhou et al., Google, 2023) décompose un problème complexe en sous-problèmes ordonnés du plus simple au plus complexe. Chaque sous-problème est résolu avant de passer au suivant, et les solutions précédentes sont intégrées au contexte. Cette technique excelle sur les tâches de généralisation compositionnelle : le modèle apprend à combiner des sous-solutions pour construire la réponse au problème global.
Directional Stimulus Prompting
Le Directional Stimulus Prompting (Li et al., 2023) utilise un petit modèle de langage (ou des heuristiques) pour générer un stimulus directionnel — un indice ou mot-clé — qui oriente le LLM principal vers la bonne direction de réponse. Par exemple, pour un résumé, le stimulus pourrait être une liste de mots-clés importants extraits du texte source. Cette technique réduit les hallucinations en ancrant la génération sur des éléments spécifiques.
Meta-Prompting : Le Prompt qui Génère des Prompts
Le meta-prompting consiste à demander au LLM de générer lui-même le prompt optimal pour une tâche donnée. On décrit l'objectif à haut niveau, et le modèle produit un prompt structuré, incluant le rôle, le contexte, les contraintes et le format de sortie. Cette approche est particulièrement utile lorsqu'on optimise des pipelines complexes et qu'on souhaite automatiser la recherche du meilleur prompt.
## Meta-Prompt — Génération de prompt optimisé
Tu es un expert en prompt engineering. Génère le prompt
le plus efficace possible pour la tâche suivante :
Tâche : Analyser un rapport d'audit de sécurité de 50 pages
et extraire les 10 recommandations prioritaires avec leur
niveau de criticité, leur coût estimé de remédiation et
le délai de mise en œuvre suggéré.
Contraintes :
- Le prompt sera utilisé avec Claude Opus 4
- Le rapport est fourni en contexte (200K tokens disponibles)
- Le format de sortie doit être un tableau JSON
Génère le prompt optimal :
Combinaison de Techniques
Les meilleures performances sont souvent obtenues en combinant plusieurs techniques. Par exemple : RAG (pour l'ancrage factuel) + CoT (pour le raisonnement) + Self-Consistency (pour la robustesse). Les frameworks comme LangChain et LlamaIndex facilitent cette orchestration en fournissant des abstractions pour chaîner les techniques de manière transparente.
7 Bonnes Pratiques en Production
Déployer des techniques de prompt engineering avancé en production exige une rigueur méthodologique bien au-delà du prototypage en laboratoire. Les prompts deviennent du code critique qui doit être versionné, testé, évalué et sécurisé avec la même discipline que le code applicatif traditionnel. Voici les pratiques essentielles pour une mise en production réussie.
Évaluation Systématique des Prompts
Chaque prompt en production doit être accompagné d'un jeu de tests de référence (benchmark) avec des entrées connues et des sorties attendues. Les métriques d'évaluation varient selon la tâche : accuracy et F1-score pour la classification, ROUGE et BLEU pour la génération de texte, pass@k pour le code, et des évaluations LLM-as-Judge pour les tâches ouvertes. Automatisez ces évaluations dans votre CI/CD.
- ▹Jeu de test minimal — 50 à 100 cas de test couvrant les cas nominaux, les cas limites et les adversarial inputs
- ▹Métriques quantitatives — Accuracy, latence P50/P95/P99, coût moyen en tokens, taux de refus, taux d'hallucination
- ▹Évaluation humaine — Revue par des experts domaine sur un échantillon aléatoire de 10-20% des sorties en production
A/B Testing et Prompt Versioning
Traitez vos prompts comme du code source : versionnez-les dans Git, utilisez des branches pour les expérimentations, et déployez les nouvelles versions via un système d'A/B testing. Des outils comme LangSmith, PromptLayer ou Humanloop permettent de tracer chaque version de prompt, de comparer les performances et de rollback rapidement en cas de régression.
## Structure de versioning de prompt recommandée
prompts/
├── v1.0.0/
│ ├── system_prompt.txt
│ ├── few_shot_examples.json
│ ├── evaluation_results.json
│ └── changelog.md
├── v1.1.0/
│ ├── system_prompt.txt # CoT ajouté
│ ├── few_shot_examples.json
│ ├── evaluation_results.json
│ └── changelog.md
└── v2.0.0/
├── system_prompt.txt # Migration ReAct
├── tool_definitions.json
├── few_shot_examples.json
├── evaluation_results.json
└── changelog.md
Sécurité : Prompt Injection et Jailbreaking
La prompt injection reste l'une des menaces les plus critiques pour les applications LLM en production. Un attaquant peut injecter des instructions malveillantes dans l'entrée utilisateur pour détourner le comportement du modèle, exfiltrer le system prompt, ou contourner les garde-fous. Les stratégies de défense incluent :
- ▹Séparation des instructions — Utilisez des délimiteurs explicites (XML tags, triple backticks) entre les instructions système et les données utilisateur
- ▹Validation des sorties — Filtrez et validez toutes les sorties du modèle avant de les exécuter ou les afficher (sanitization, parsing strict)
- ▹Principe du moindre privilège — Limitez les actions que le modèle peut effectuer, surtout dans les architectures ReAct avec accès à des outils
- ▹Détection d'injection — Utilisez un modèle de classification dédié pour détecter les tentatives d'injection avant qu'elles n'atteignent le LLM principal
- ▹Red teaming régulier — Testez vos prompts avec des attaques adversariales (DAN, jailbreak prompts, indirect injection via documents RAG)
Optimisation des Coûts en Tokens
Les techniques avancées de prompting consomment significativement plus de tokens que le prompting basique. Le CoT multiplie le nombre de tokens de sortie par 2 à 5, le ToT par 10 à 50, et le Self-Consistency par le facteur k. Pour optimiser les coûts en production :
- ▹Routage intelligent — Utilisez un modèle léger (Llama 3.3 8B, Mistral 7B) pour les tâches simples et réservez GPT-4o/Claude Opus 4 pour les tâches complexes nécessitant CoT/ToT
- ▹Caching sémantique — Mettez en cache les résultats de prompts similaires via des embeddings de similarité pour éviter les appels redondants
- ▹Compression de contexte — Résumez les longs contextes avant de les injecter dans le prompt, en utilisant un modèle compact dédié
- ▹Prompt caching — Exploitez les fonctionnalités natives de prompt caching proposées par Anthropic et OpenAI pour réduire les coûts des préfixes statiques
Checklist Production
Avant de déployer un prompt en production, vérifiez systématiquement : (1) le prompt est versionné dans Git, (2) un jeu de tests automatisé existe avec un seuil de qualité défini, (3) les injections adversariales ont été testées, (4) un mécanisme de rollback est en place, (5) le monitoring des coûts et de la latence est configuré, et (6) une revue humaine périodique est planifiée. Un prompt non testé en production est aussi dangereux qu'un code non testé.