Prompts : 5 techniques de context engineering pour gagner en précision

Prompts : 5 techniques de context engineering pour gagner en précision Après le prompt engineering place au contexte engineering. Le contexte permet aux modèles de répondre plus précisément avec un comportement plus prédictible à vos réponses.

Et si le contexte était le principal levier pour améliorer la précision des LLM ? C’est la théorie développée par une équipe de chercheurs du Generative Artificial Intelligence Research Lab de l’Université de Shanghai Jiao Tong. Les spécialistes proposent un cadre méthodologique, le context engineering, permettant aux modèles d’IA de mieux “comprendre” les intentions. En résulte des réponses plus précises et plus conformes aux attentes. Nous avons sélectionné cinq techniques concrètes qui découlent de ce cadre et permettent d’améliorer vos prompts.

1. Structurez et balisez votre contexte

La structuration du contexte adressé aux LLM est l’un des principaux leviers d’optimisation. Pour structurer efficacement le contexte (dont les prompts font partie), les chercheurs conseillent d’utiliser des tags explicites (“role”, “action, “exemple”,”format”...). Trop peu utilisée, cette technique permet de hiérarchiser l’information et réduire la charge cognitive du modèle. C’est pour cela que le prompting XML ou YAML est aussi efficace. Les chercheurs prennent notamment le cas de l’agent de code CodeRabbit qui tire parti de cette technique.

Exemple :

[GOAL] Résumer les points clés d’un entretien client

[DATA] Transcription complète (ci-dessous)

[CONSTRAINTS] Résumé < 200 mots, ton neutre

[OUTPUT FORMAT] JSON avec { "insights": [], "sentiments": [], "next_actions": [] }

Autre contrainte : les chercheurs recommandent de stabiliser les prompts système car même de petites modifications, comme l'ajout d'un horodatage au début du prompt, peuvent invalider l'intégralité du cache.

2. Faites résumer régulièrement ce que le modèle a compris

Pratique de plus en plus développée mais encore sous exploitée en production, le résumé des échanges précédents permet au modèle de réduire le contexte général de la discussion tout en conservant les éléments importants. Le résumé est d’autant plus important pour un agent qui doit conserver un contexte général lors de l’accomplissement de sa tâche. Le résumé peut être stocké dans le contexte en langage naturel ou de façon hiérarchisée pour les contextes plus complexes. Il est par exemple possible d’utiliser un cadre JSON pour formaliser le résumé :

 "étapes_accomplies": [

    "lecture du rapport",

    "résumé du rapport"

  ],

  "points_restants": [

    "Générer une critique du rapport",

    "Produire un tableau de résumé"

  ],

Par exemple, Claude Code et Gemini CLI utilisent cette technique. Claude Code résume son environnement de travail, les scripts et les étapes réalisées pour garder une trace compacte. Gemini CLI mémorise les sessions en ligne de commande et en extrait des notes de synthèse hiérarchisées pour les sessions suivantes.

3. Conservez les erreurs et leurs corrections dans le contexte

Autre technique, plus contre-intuitive : conserver les erreurs du LLM dans le contexte. Dans une logique de soigner le contexte et la compréhension globale du modèle, les chercheurs insistent sur l’importance de garder les traces des erreurs commises par le modèle précédemment. Le tout est encore plus pertinent dans le cas d’un système agentique. En conservant les erreurs, le modèle aura tendance à analyser sa propre logique de raisonnement, éviter de répéter ses erreurs, renforcer sa cohérence sur le long terme. Pour renforcer encore la pertinence de cette approche, il est conseillé de fournir les erreurs précédentes assorties d’une explication sur la cause ou mieux encore de la bonne solution. C’est comme cela que Manus et CodeRabbit procèdent pour guider le modèle.

Exemple d’un résumé des erreurs précédentes (avec les tags donc)  :

[ERROR] 2025-11-04 14:03 Wrong function name used: "getDatas()" instead of "getData()".

[CORRECTION] 2025-11-04 14:05 Updated call to "getData()" and verified outputs.

[NOTE] Cause: typo from prior completion; solution: review function naming conventions.

4. Moins d’outils, mieux décrits

La qualité vaut mieux que la quantité. Cette maxime s’applique également aux méthodes de prompting.  Dans une configuration agentique, mieux vaut activer peu d’outils afin de maximiser la cohérence et la performance du modèle. Chaque outil supplémentaire accroît la complexité décisionnelle et le risque d’erreur : plus le modèle dispose d’options similaires, plus il hésite et ralentit son raisonnement. Les chercheurs rappellent que les performances d’un modèle se dégradent au-delà de 30 outils et s'effondrent presque systématiquement au-delà de 100 outils. Les spécialistes recommandent de documenter chaque outil dans le contexte en indiquant précisément le cadre d’utilisation en variant le champ sémantique utilisé.

Exemple d’un outil défini proprement :

{

  "tool": "SearchPapers",

  "purpose": "Rechercher des articles scientifiques (arXiv) par mots-clés et année.",

  "when_to_use": [

    "L'utilisateur demande des sources académiques récentes",

    "Besoin d'URL arXiv + titre + année"

  ],

  "when_not_to_use": [

    "La réponse ne requiert aucune source externe",

    "La requête porte sur des blogs, médias généralistes ou podcasts"

  ],

  "inputs": {

    "query": {"type": "string", "required": true, "example": "context engineering"},

    "from_year": {"type": "integer", "required": false, "default": 2023}

  },

  "outputs": {

    "papers": {

      "type": "array",

      "items": {

        "title": "string",

        "url": "string",

        "year": "integer"

      },

      "max_items": 10

    }

  },

  "constraints": [

    "Ne jamais dépasser 10 résultats",

    "Éliminer les doublons d'URL",

    "Interdire les domaines hors arxiv.org"

  ],

  "disambiguation_rules": [

    "Si la requête est vague, demander 1 précision (mot-clé supplémentaire) avant exécution",

    "Ne pas enchaîner avec d'autres outils automatiquement"

  ],

  "error_handling": {

    "no_results": "Répondre: Aucun article pertinent trouvé depuis 'from_year'. Proposer 2 mots-clés alternatifs."

  },

  "usage_examples": [

    {

      "input": {"query": "context engineering LLM", "from_year": 2024},

      "expected": {"papers": [{"title": "...","url": "https://arxiv.org/abs/XXXX","year": 2025}]}

    }

  ]

}

5. Variez vos exemples de few-shot prompting

Elle s’est progressivement imposée comme l’une des méthodes les plus efficaces pour contrôler la précision des LLM : fournir des exemples d’entrée–sortie pertinents aide le modèle à saisir l’intention et le format attendus. Problème ? Les travaux récents montrent une dérive fréquente : les modèles tendent à mimer les exemples au lieu de généraliser, ce qui produit un biais de reproduction. Pour le limiter, les chercheurs recommandent de diversifier fortement les exemples présentés (formulations, ordre, styles, tailles d’entrée, cas limites) pour éviter la reproduction et forcer la généralisation.

Exemple :

[SYSTEM] Tu extrais les champs demandés. Si une info manque, mets null. Réponds UNIQUEMENT en JSON.


[TASK] Extraire: { "client": str, "produit": str, "quantite": int, "date": "YYYY-MM-DD" }


[EXEMPLE A – formulation courte, ordre standard]

INPUT: "Paul a acheté 2 mugs le 2025-10-12."

OUTPUT: {"client":"Paul","produit":"mug","quantite":2,"date":"2025-10-12"}


[EXEMPLE B – texte long, synonymes, ordre inversé]

INPUT: "Le 03/09/2025, commande validée: trois carnets pour Mme Jeanne Dubois (réf. CARNET)."

OUTPUT: {"client":"Jeanne Dubois","produit":"carnet","quantite":3,"date":"2025-09-03"}


[EXEMPLE C – registre informel, pluriels, casse mixte]

INPUT: "Hier (12.08.2025) Hugo a pris 5 BOUTEILLES d’eau."

OUTPUT: {"client":"Hugo","produit":"bouteille d’eau","quantite":5,"date":"2025-08-12"}


[EXEMPLE D – cas limite: info manquante]

INPUT: "Camille veut 4 tirages photo mais n'a pas encore fixé la date."

OUTPUT: {"client":"Camille","produit":"tirage photo","quantite":4,"date":null}