[{"data":1,"prerenderedAt":961},["ShallowReactive",2],{"post-context-engineering-agents-ia-fr":3,"surround-/fr/blog/context-engineering-agents-ia-fr":948,"post-translations-19":956},{"id":4,"title":5,"body":6,"canonical_id":934,"category":935,"date_created":936,"date_updated":936,"description":12,"extension":353,"head":937,"image":938,"lang":939,"layout":940,"meta":941,"navigation":371,"ogImage":937,"path":942,"reading_time":417,"robots":937,"schemaOrg":937,"seo":943,"sitemap":945,"stem":946,"__hash__":947},"blog/fr/blog/19.context-engineering-agents-ia.md","Context engineering : comment je donne le bon contexte à mes agents IA",{"type":7,"value":8,"toc":905},"minimark",[9,13,16,28,46,51,60,112,115,118,132,159,163,166,188,199,203,206,272,283,299,309,325,328,345,348,483,489,517,539,543,546,549,566,569,573,580,587,590,594,597,608,611,614,618,622,629,637,646,662,666,675,679,682,686,689,693,696,700,703,707,710,714,718,721,725,728,732,735,739,742,798,805,809,815,819,822,825,833,836,842,846,901],[10,11,12],"p",{},"La qualité du code produit par un agent de développement dépend moins de la longueur du prompt que de ce qu'il connaît du projet.",[10,14,15],{},"Un agent qui dispose des bonnes règles, des bonnes sources et d'un plan clair peut travailler avec précision. Sans ce contexte, même un modèle performant doit deviner, et chaque supposition devient une source potentielle d'erreur.",[10,17,18,19,23,24,27],{},"Le ",[20,21,22],"strong",{},"context engineering"," consiste précisément à sélectionner, structurer et maintenir ces informations. L'objectif n'est pas de remplir la fenêtre de contexte du modèle, mais de lui fournir ",[20,25,26],{},"le plus petit ensemble d'informations à fort signal",", au bon moment.",[10,29,30,31,36,37,41,42,45],{},"Dans ",[32,33,35],"a",{"href":34},"/fr/blog/vibe-coding-agentic-engineering-rapport-google","mon article du passage du vibe coding à l'agentic engineering",", j'expliquais pourquoi le contexte devient une infrastructure du développement logiciel. Voici maintenant comment je le construis dans la pratique, avec ",[38,39,40],"code",{},"AGENTS.md",", ",[38,43,44],{},"CLAUDE.md",", des specs Markdown, des skills, des outils et MCP.",[47,48,50],"h2",{"id":49},"context-engineering-et-prompt-engineering-ne-résolvent-pas-le-même-problème","Context engineering et prompt engineering ne résolvent pas le même problème",[10,52,18,53,56,57,59],{},[20,54,55],{},"prompt engineering"," améliore la manière de formuler une instruction. Le ",[20,58,22],{}," organise tout ce que le modèle peut utiliser pour interpréter et exécuter cette instruction.",[61,62,63,76],"table",{},[64,65,66],"thead",{},[67,68,69,73],"tr",{},[70,71,72],"th",{},"Prompt engineering",[70,74,75],{},"Context engineering",[77,78,79,88,96,104],"tbody",{},[67,80,81,85],{},[82,83,84],"td",{},"Que dois-je demander ?",[82,86,87],{},"Que doit savoir l'agent pour agir correctement ?",[67,89,90,93],{},[82,91,92],{},"Travaille surtout la consigne",[82,94,95],{},"Travaille la consigne, les connaissances, les exemples, les outils, la mémoire et les garde-fous",[67,97,98,101],{},[82,99,100],{},"Se concentre souvent sur une réponse",[82,102,103],{},"Gère une tâche qui évolue sur plusieurs étapes",[67,105,106,109],{},[82,107,108],{},"Cherche une meilleure formulation",[82,110,111],{},"Cherche le meilleur contexte au meilleur moment",[10,113,114],{},"Prenons une demande concrète : « ajoute dans Begonia.pro mon SaaS de local SEO un audit de visibilité locale sur Bing, pour mesurer ce canal en complément de Google ».",[10,116,117],{},"Le besoin métier est clair, mais cette phrase ne dit rien de l'architecture existante, des règles du produit, des données disponibles, des composants à réutiliser ni de la définition de « terminé ». C'est ce contexte qui permet à l'agent de transformer une bonne idée en fonctionnalité cohérente.",[10,119,120,127,128,131],{},[32,121,126],{"href":122,"rel":123,"target":125},"https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents",[124],"nofollow","\\_blank","Anthropic définit le context engineering"," comme la sélection et la maintenance de l'ensemble optimal de tokens disponibles pendant l'inférence. Cette définition contient le point essentiel : ",[20,129,130],{},"optimal ne veut pas dire maximal",".",[133,134,138,139],"div",{"className":135},[136,137],"text-center","mx-auto","\n    ",[140,141,142,143,142,148,142,152,138],"picture",{},"\n      ",[144,145],"source",{"srcSet":146,"type":147},"/img/blog/illustration/context-engineering-signal-noise.avif","image/avif",[144,149],{"srcSet":150,"type":151},"/img/blog/illustration/context-engineering-signal-noise.webp","image/webp",[153,154],"img",{"src":155,"alt":156,"loading":157,"className":158},"/img/blog/illustration/context-engineering-signal-noise.jpg","Illustration du context engineering comme filtre entre le signal utile et le bruit","lazy",[137],[47,160,162],{"id":161},"mon-cas-réel-faire-évoluer-un-saas-sans-réexpliquer-le-projet","Mon cas réel : faire évoluer un SaaS sans réexpliquer le projet",[10,164,165],{},"Sur mes projets comme Begonia.pro ou Fude.md, une fonctionnalité traverse le besoin utilisateur, l'interface, la logique métier, le stockage, les services externes et les tests. Pour produire une implémentation cohérente plutôt qu'un code seulement plausible, l'agent doit comprendre :",[167,168,169,173,176,179,182,185],"ul",{},[170,171,172],"li",{},"le résultat attendu pour l'utilisateur et ce qui reste hors périmètre ;",[170,174,175],{},"les composants, types et parcours existants à réutiliser ;",[170,177,178],{},"les règles métier et les décisions produit qui ne sont pas visibles dans le code ;",[170,180,181],{},"les contrats actuels des services externes et les permissions nécessaires ;",[170,183,184],{},"les conventions du projet, les garde-fous et les zones à préserver ;",[170,186,187],{},"les états d'interface, les langues et les critères de validation avant livraison.",[10,189,190,191,194,195,198],{},"Je ne place pas tout cela dans un prompt géant. Je répartis le contexte entre une couche ",[20,192,193],{},"statique",", disponible dès le départ, et une couche ",[20,196,197],{},"dynamique",", récupérée quand la tâche le demande.",[47,200,202],{"id":201},"mon-architecture-un-socle-statique-puis-du-contexte-dynamique","Mon architecture : un socle statique, puis du contexte dynamique",[10,204,205],{},"Le contexte statique donne les règles du jeu. Le contexte dynamique apporte les informations propres à la tâche et à l'état actuel du projet.",[61,207,208,218],{},[64,209,210],{},[67,211,212,215],{},[70,213,214],{},"Contexte statique",[70,216,217],{},"Contexte dynamique",[77,219,220,232,240,248,256,264],{},[67,221,222,229],{},[82,223,224,41,226,228],{},[38,225,40],{},[38,227,44],{}," et règles du dépôt",[82,230,231],{},"Fichiers trouvés pendant l'exploration",[67,233,234,237],{},[82,235,236],{},"Architecture et conventions durables",[82,238,239],{},"Skill chargée pour une technologie précise",[67,241,242,245],{},[82,243,244],{},"Documentation durable du projet",[82,246,247],{},"Spec Markdown de la fonctionnalité en cours",[67,249,250,253],{},[82,251,252],{},"Commandes de validation",[82,254,255],{},"Résultats de tests et erreurs du terminal",[67,257,258,261],{},[82,259,260],{},"Garde-fous de sécurité",[82,262,263],{},"Données récupérées via un outil ou MCP",[67,265,266,269],{},[82,267,268],{},"Exemples canoniques",[82,270,271],{},"Documentation externe pertinente à cet instant",[10,273,274,275,278,279,282],{},"Les specs Markdown occupent une place particulière : elles restent dans le projet, mais l'agent ne charge que celle de la fonctionnalité en cours. Je les construis au fil de mes échanges avec Codex ou Claude Code et les relis dans Fude. Elles rassemblent le problème, le périmètre, les décisions et les critères d'acceptation, puis servent à la fois de ",[20,276,277],{},"contexte de référence"," et de ",[20,280,281],{},"plan d'implémentation",". Je détaille ce workflow plus bas.",[133,284,138,286],{"className":285},[136,137],[140,287,142,288,142,291,142,294,138],{},[144,289],{"srcSet":290,"type":147},"/img/blog/illustration/context-engineering-static-dynamic.avif",[144,292],{"srcSet":293,"type":151},"/img/blog/illustration/context-engineering-static-dynamic.webp",[153,295],{"src":296,"alt":297,"loading":157,"className":298},"/img/blog/illustration/context-engineering-static-dynamic.jpg","Illustration du contexte statique et du contexte dynamique autour d'un agent IA",[137],[300,301,303,305,306,308],"h3",{"id":302},"agentsmd-et-claudemd-contiennent-la-carte-pas-toute-la-bibliothèque",[38,304,40],{}," et ",[38,307,44],{}," contiennent la carte, pas toute la bibliothèque",[10,310,311,312,317,318,324],{},"Le point d'entrée dépend de l'agent. ",[20,313,314,315],{},"Codex et d'autres agents utilisent ",[38,316,40],{},", tandis que ",[20,319,320,321,323],{},"Claude Code charge ",[38,322,44],{}," dans son contexte"," au début de chaque session. Ces fichiers doivent être précis, courts et maintenables.",[10,326,327],{},"Ils contiennent :",[167,329,330,333,336,339,342],{},[170,331,332],{},"la finalité du produit, sa stack et ses utilisateurs ;",[170,334,335],{},"les dossiers importants et leur rôle ;",[170,337,338],{},"les conventions qui ne se déduisent pas facilement du code ;",[170,340,341],{},"les zones à ne pas modifier sans raison explicite ;",[170,343,344],{},"les commandes de validation et la définition de « terminé ».",[10,346,347],{},"Un extrait volontairement simplifié du contexte projet serait plutôt de cette forme :",[349,350,355],"pre",{"className":351,"code":352,"language":353,"meta":354,"style":354},"language-md shiki shiki-themes enchanter-dark","# Projet\n\nBegonia.pro est un SaaS Nuxt de SEO local destiné aux entreprises et consultants.\n\n## Règles produit\n\n- Un audit doit expliquer ses constats, pas seulement afficher un score.\n- Chaque résultat issu d'une source externe conserve sa source et sa date.\n- Les parcours français et anglais évoluent ensemble.\n\n## Règles techniques\n\n- Réutiliser les types, composants et patterns d'audit existants.\n- Effectuer les appels aux fournisseurs uniquement côté serveur.\n- Ne jamais exposer une clé ni les données d'un autre client.\n\n## Validation\n\n- Lancer le lint, le typecheck et les tests concernés.\n- Vérifier les états vide, chargement, résultat et erreur.\n- Résumer les fichiers modifiés, les vérifications et les limites restantes.\n","md","",[38,356,357,366,373,380,385,391,396,403,409,415,420,426,431,437,443,449,454,460,465,471,477],{"__ignoreMap":354},[358,359,362],"span",{"class":360,"line":361},"line",1,[358,363,365],{"class":364},"sv4-_","# Projet\n",[358,367,369],{"class":360,"line":368},2,[358,370,372],{"emptyLinePlaceholder":371},true,"\n",[358,374,376],{"class":360,"line":375},3,[358,377,379],{"class":378},"sCxck","Begonia.pro est un SaaS Nuxt de SEO local destiné aux entreprises et consultants.\n",[358,381,383],{"class":360,"line":382},4,[358,384,372],{"emptyLinePlaceholder":371},[358,386,388],{"class":360,"line":387},5,[358,389,390],{"class":364},"## Règles produit\n",[358,392,394],{"class":360,"line":393},6,[358,395,372],{"emptyLinePlaceholder":371},[358,397,399],{"class":360,"line":398},7,[358,400,402],{"class":401},"s6E4U","- Un audit doit expliquer ses constats, pas seulement afficher un score.\n",[358,404,406],{"class":360,"line":405},8,[358,407,408],{"class":401},"- Chaque résultat issu d'une source externe conserve sa source et sa date.\n",[358,410,412],{"class":360,"line":411},9,[358,413,414],{"class":401},"- Les parcours français et anglais évoluent ensemble.\n",[358,416,418],{"class":360,"line":417},10,[358,419,372],{"emptyLinePlaceholder":371},[358,421,423],{"class":360,"line":422},11,[358,424,425],{"class":364},"## Règles techniques\n",[358,427,429],{"class":360,"line":428},12,[358,430,372],{"emptyLinePlaceholder":371},[358,432,434],{"class":360,"line":433},13,[358,435,436],{"class":401},"- Réutiliser les types, composants et patterns d'audit existants.\n",[358,438,440],{"class":360,"line":439},14,[358,441,442],{"class":401},"- Effectuer les appels aux fournisseurs uniquement côté serveur.\n",[358,444,446],{"class":360,"line":445},15,[358,447,448],{"class":401},"- Ne jamais exposer une clé ni les données d'un autre client.\n",[358,450,452],{"class":360,"line":451},16,[358,453,372],{"emptyLinePlaceholder":371},[358,455,457],{"class":360,"line":456},17,[358,458,459],{"class":364},"## Validation\n",[358,461,463],{"class":360,"line":462},18,[358,464,372],{"emptyLinePlaceholder":371},[358,466,468],{"class":360,"line":467},19,[358,469,470],{"class":401},"- Lancer le lint, le typecheck et les tests concernés.\n",[358,472,474],{"class":360,"line":473},20,[358,475,476],{"class":401},"- Vérifier les états vide, chargement, résultat et erreur.\n",[358,478,480],{"class":360,"line":479},21,[358,481,482],{"class":401},"- Résumer les fichiers modifiés, les vérifications et les limites restantes.\n",[10,484,485,486,488],{},"Je ne duplique pas les mêmes règles dans deux fichiers qui finiraient par diverger. Mon ",[38,487,44],{}," peut importer le socle commun, puis ajouter seulement les instructions propres à Claude Code :",[349,490,492],{"className":351,"code":491,"language":353,"meta":354,"style":354},"@AGENTS.md\n\n## Claude Code\n\n- Utiliser la spec Markdown active comme plan d'implémentation.\n",[38,493,494,499,503,508,512],{"__ignoreMap":354},[358,495,496],{"class":360,"line":361},[358,497,498],{"class":378},"@AGENTS.md\n",[358,500,501],{"class":360,"line":368},[358,502,372],{"emptyLinePlaceholder":371},[358,504,505],{"class":360,"line":375},[358,506,507],{"class":364},"## Claude Code\n",[358,509,510],{"class":360,"line":382},[358,511,372],{"emptyLinePlaceholder":371},[358,513,514],{"class":360,"line":387},[358,515,516],{"class":401},"- Utiliser la spec Markdown active comme plan d'implémentation.\n",[10,518,519,520,528,529,131],{},"OpenAI recommande de ",[32,521,524,525,527],{"href":522,"rel":523,"target":125},"https://openai.com/business/guides-and-resources/how-openai-uses-codex/",[124],"maintenir un ",[38,526,40],{}," pour aider Codex dans un dépôt",". La documentation de Claude précise que ",[32,530,533,534,536,537],{"href":531,"rel":532,"target":125},"https://code.claude.com/docs/en/memory#agents-md",[124],"Claude Code lit ",[38,535,44],{}," et peut y importer ",[38,538,40],{},[300,540,542],{"id":541},"la-documentation-explique-les-décisions-durables","La documentation explique les décisions durables",[10,544,545],{},"Le code montre ce que le produit fait aujourd'hui. Il n'explique pas toujours pourquoi une solution a été choisie, quelle alternative a été rejetée ou quelle contrainte client ne doit pas être cassée.",[10,547,548],{},"Je garde dans la documentation les informations qui survivront à plusieurs tâches :",[167,550,551,554,557,560,563],{},[170,552,553],{},"les specs produit et leurs critères d'acceptation ;",[170,555,556],{},"les décisions d'architecture ;",[170,558,559],{},"les contrats avec les services externes ;",[170,561,562],{},"les procédures de déploiement ou de migration ;",[170,564,565],{},"quelques exemples considérés comme canoniques.",[10,567,568],{},"Une documentation obsolète fait l'inverse : l'agent se fie à une décision devenue fausse. Je date les documents sensibles et supprime les instructions périmées au lieu d'empiler les exceptions.",[300,570,572],{"id":571},"les-skills-apportent-une-méthode-à-la-demande","Les skills apportent une méthode à la demande",[10,574,575,576,579],{},"Une ",[20,577,578],{},"skill"," est un paquet d'instructions spécialisé : comment écrire un contenu Nuxt, auditer une migration de base de données, relire une PR ou créer une intégration MCP. L'agent ne la charge que lorsque la tâche correspond.",[10,581,582,583,586],{},"Quand une skill officielle existe, je l'installe en priorité. J'utilise notamment la ",[20,584,585],{},"skill officielle de Nuxt",", qui apporte à l'agent les conventions du framework, les fichiers à inspecter et les points d'attention liés à la version utilisée.",[10,588,589],{},"Je réserve mes propres skills aux méthodes spécifiques à mes projets. C'est plus précis qu'une règle globale comme « respecte les bonnes pratiques Nuxt » : j'encode une méthode une fois, puis je la réutilise avec plusieurs agents et modèles.",[300,591,593],{"id":592},"les-outils-et-mcp-apportent-létat-actuel-du-monde","Les outils et MCP apportent l'état actuel du monde",[10,595,596],{},"Les fichiers du dépôt ne suffisent pas lorsque la réponse dépend d'une donnée vivante : volume de recherche, état d'un ticket, documentation mise à jour, contenu client ou résultat d'une API.",[10,598,599,600,603,604,131],{},"Les outils permettent à l'agent d'explorer son environnement et de ramener une information ciblée. ",[20,601,602],{},"MCP (Model Context Protocol)"," standardise l'accès à certaines de ces sources et actions. J'ai déjà détaillé ",[32,605,607],{"href":606},"/fr/blog/serveur-mcp-saas-retour-experience","ce que j'ai appris en construisant deux serveurs MCP pour mes SaaS",[10,609,610],{},"Quand je reprends une pull request, le serveur MCP officiel de GitHub permet à l'agent de consulter sa description, les changements proposés, les commentaires de review et l'état de la CI. Je n'ai pas besoin de recopier tous ces éléments dans un prompt : l'agent récupère directement l'état actuel de la PR au moment de travailler dessus.",[10,612,613],{},"MCP complète ainsi le contexte statique du projet avec des informations qui évoluent en dehors du dépôt local : discussions, décisions de review et résultats des validations. L'agent accède au contexte utile lorsqu'il en a besoin, sans le charger systématiquement dans chaque conversation.",[47,615,617],{"id":616},"mon-workflow-en-sept-étapes","Mon workflow en sept étapes",[300,619,621],{"id":620},"_1-je-construis-la-spec-avec-lia-tout-en-la-relisant-dans-fude","1. Je construis la spec avec l'IA tout en la relisant dans Fude",[10,623,624,625,628],{},"Pour une fonctionnalité importante, j'échange d'abord avec l'IA dans ",[20,626,627],{},"Codex ou Claude Code",". Ensemble, nous cadrons le problème, le résultat attendu, le périmètre, le hors-périmètre, les décisions et les critères d'acceptation. L'IA m'aide à produire et challenger une spec Markdown.",[10,630,631,632,636],{},"Pendant l'échange, je garde le fichier ouvert dans ",[32,633,635],{"href":634},"/fr/blog/fude-md-lecteur-markdown-design-agent-ia","Fude, mon lecteur de fichiers Markdown",". À chaque itération dans Codex ou Claude Code, je relis la spec dans cet environnement propre et design, repère les zones floues, puis poursuis la discussion avec l'IA.",[10,638,639,640,642,643,645],{},"La version validée joue deux rôles : ",[20,641,277],{}," pour comprendre la fonctionnalité et ",[20,644,281],{}," pour la construire. La fonctionnalité ne dépend donc pas d'un prompt perdu dans une conversation.",[133,647,138,649],{"className":648},[136,137],[140,650,142,651,142,654,142,657,138],{},[144,652],{"srcSet":653,"type":147},"/img/blog/illustration/context-engineering-workflow-fude.avif",[144,655],{"srcSet":656,"type":151},"/img/blog/illustration/context-engineering-workflow-fude.webp",[153,658],{"src":659,"alt":660,"loading":157,"className":661},"/img/blog/illustration/context-engineering-workflow-fude.jpg","Illustration de la boucle de création d'une spec Markdown avec Codex, Claude Code et Fude",[137],[300,663,665],{"id":664},"_2-lagent-lit-les-règles-du-projet","2. L'agent lit les règles du projet",[10,667,668,669,671,672,674],{},"Avec Codex, ",[38,670,40],{}," fournit la stack, les conventions et les commandes. Avec Claude Code, ces informations passent par ",[38,673,44],{},", qui peut importer le même socle commun. L'agent consulte ensuite la spec Markdown relue dans Fude et les documents indiqués sans tout charger « au cas où ».",[300,676,678],{"id":677},"_3-il-explore-avant-de-proposer","3. Il explore avant de proposer",[10,680,681],{},"Je lui demande de trouver les composants, schémas, tests et fonctionnalités similaires. L'existant montre les noms, les abstractions et le niveau de qualité attendu.",[300,683,685],{"id":684},"_4-il-charge-la-méthode-spécialisée","4. Il charge la méthode spécialisée",[10,687,688],{},"Selon la tâche, l'agent charge une skill Nuxt, base de données, sécurité, contenu ou revue de code, sans alourdir les autres conversations.",[300,690,692],{"id":691},"_5-il-récupère-les-données-fraîches","5. Il récupère les données fraîches",[10,694,695],{},"Si une information manque ou peut avoir changé, l'agent utilise un outil ou MCP et ramène le résultat nécessaire avec sa source.",[300,697,699],{"id":698},"_6-il-travaille-par-incréments-vérifiables","6. Il travaille par incréments vérifiables",[10,701,702],{},"Je préfère une petite modification suivie d'un test à une longue génération impossible à relire. Les erreurs du typecheck, les tests et le diff deviennent eux-mêmes du contexte pour l'étape suivante.",[300,704,706],{"id":705},"_7-il-vérifie-et-laisse-une-trace","7. Il vérifie et laisse une trace",[10,708,709],{},"Le travail se termine par les commandes prévues, une revue du diff et un résumé des décisions, vérifications et limites. Cette trace aide la prochaine session sans conserver l'historique brut.",[47,711,713],{"id":712},"les-erreurs-qui-mont-le-plus-appris","Les erreurs qui m'ont le plus appris",[300,715,717],{"id":716},"donner-trop-de-contexte","Donner trop de contexte",[10,719,720],{},"Joindre dix documents rassure, mais noie souvent la règle importante. Une grande fenêtre de contexte n'est pas une obligation de la remplir. Je commence avec le socle minimal, puis je laisse l'agent chercher ce qui manque.",[300,722,724],{"id":723},"laisser-cohabiter-des-instructions-contradictoires","Laisser cohabiter des instructions contradictoires",[10,726,727],{},"Une ancienne spec, un commentaire et un fichier de règles peuvent raconter trois versions du produit. Je définis une hiérarchie claire : règles explicites du dépôt, spec active, code et tests actuels, puis documentation de référence. En cas de contradiction, l'agent doit la signaler au lieu de choisir silencieusement.",[300,729,731],{"id":730},"transformer-la-mémoire-en-source-de-vérité","Transformer la mémoire en source de vérité",[10,733,734],{},"La mémoire est utile pour conserver une préférence ou l'état d'une tâche longue. Elle ne remplace pas le dépôt, la base ou la documentation à jour. Une information critique doit pouvoir être vérifiée.",[47,736,738],{"id":737},"ma-checklist-de-context-engineering","Ma checklist de context engineering",[10,740,741],{},"Avant de confier une tâche à un agent, je vérifie :",[167,743,744,750,756,762,768,774,780,786,792],{},[170,745,746,749],{},[20,747,748],{},"Objectif"," : le résultat attendu et le hors-périmètre sont-ils explicites ?",[170,751,752,755],{},[20,753,754],{},"Autorité"," : quelle source fait foi en cas de contradiction ?",[170,757,758,761],{},[20,759,760],{},"Projet"," : l'agent connaît-il la stack, les dossiers et les contraintes non évidentes ?",[170,763,764,767],{},[20,765,766],{},"Exemples"," : existe-t-il une implémentation canonique à suivre ?",[170,769,770,773],{},[20,771,772],{},"Fraîcheur"," : certaines données doivent-elles être récupérées maintenant ?",[170,775,776,779],{},[20,777,778],{},"Outils"," : chaque tool a-t-il un rôle distinct et des permissions adaptées ?",[170,781,782,785],{},[20,783,784],{},"Garde-fous"," : secrets, données personnelles et actions risquées sont-ils protégés ?",[170,787,788,791],{},[20,789,790],{},"Validation"," : quelles commandes et quels scénarios prouvent que le résultat fonctionne ?",[170,793,794,797],{},[20,795,796],{},"Trace"," : que faut-il conserver pour la prochaine session ?",[10,799,800,801,804],{},"Ma question finale est simple : ",[20,802,803],{},"si je retire cette information, le comportement de l'agent risque-t-il réellement de changer ?"," Si la réponse est non, elle n'a probablement pas besoin d'entrer dans le contexte.",[47,806,808],{"id":807},"questions-fréquentes-sur-le-context-engineering","Questions fréquentes sur le context engineering",[810,811],"faq-accordion",{":items":812,"className":813},"[{\"question\":\"Qu'est-ce que le context engineering en IA ?\",\"answer\":\"Le context engineering consiste à sélectionner, structurer, fournir et maintenir les informations utiles à un modèle pour une tâche donnée. Cela inclut les instructions, la documentation, les exemples, l'historique, la mémoire, les outils, les données récupérées et les garde-fous.\"},{\"question\":\"Quelle différence entre prompt engineering et context engineering ?\",\"answer\":\"Le prompt engineering travaille principalement la formulation de la demande. Le context engineering gère l'ensemble de l'environnement informationnel dans lequel cette demande est exécutée. Un bon prompt fait donc partie d'un bon contexte, mais il ne suffit pas à lui seul pour piloter un agent sur un projet réel.\"},{\"question\":\"Comment choisir le bon contexte pour un agent IA ?\",\"answer\":\"Je privilégie les informations pertinentes pour la tâche, issues d'une source autoritaire, à jour, compactes et directement actionnables. Je charge les règles durables au départ, puis les documents et données spécialisés à la demande. Enfin, je mesure les erreurs observées pour améliorer le contexte au lieu d'ajouter des règles préventives sans preuve.\"}]",[814],"mt-6",[47,816,818],{"id":817},"le-contexte-est-une-partie-du-produit","Le contexte est une partie du produit",[10,820,821],{},"Le context engineering n'est pas une astuce pour obtenir une meilleure réponse dans un chat. C'est un travail d'architecture : organiser ce qui doit être stable, ce qui doit être récupéré, ce qui doit être vérifié et ce qui ne doit jamais être exposé.",[10,823,824],{},"C'est ce qui sépare une démonstration d'un workflow répétable. Un meilleur modèle aide. Un meilleur contexte rend le résultat plus cohérent et les échecs plus faciles à comprendre.",[10,826,827,828,832],{},"C'est cette discipline que j'applique dans mes missions de ",[32,829,831],{"href":830},"/fr/services/product-engineering","Product Engineering"," : cadrer le besoin, structurer le contexte, construire, puis vérifier.",[10,834,835],{},"Et vous, quelle information manque le plus souvent à vos agents : les règles du projet, la connaissance métier ou les critères de validation ?",[10,837,838,839,131],{},"📌 Vous avez un projet web à lancer ou un produit existant à faire évoluer ? Je le conçois et le développe de bout en bout, en m'appuyant sur l'IA pour livrer plus vite. ",[32,840,841],{"href":830},"Découvrez mes services de Product Engineering",[47,843,845],{"id":844},"sources","Sources",[167,847,848,856,863,870,877,885,893],{},[170,849,850,851,131],{},"Google, ",[32,852,855],{"href":853,"rel":854,"target":125},"https://www.kaggle.com/whitepaper-the-new-SDLC-with-vibe-coding",[124],"« The New SDLC With Vibe Coding: From ad-hoc prompting to Agentic Engineering »",[170,857,858,859,131],{},"Anthropic, ",[32,860,862],{"href":122,"rel":861,"target":125},[124],"« Effective context engineering for AI agents »",[170,864,865,866,131],{},"OpenAI, ",[32,867,869],{"href":522,"rel":868,"target":125},[124],"« How OpenAI uses Codex »",[170,871,865,872,131],{},[32,873,876],{"href":874,"rel":875,"target":125},"https://help.openai.com/fr-fr/articles/9237897-chatgpt-search",[124],"« Recherche ChatGPT »",[170,878,879,880,131],{},"Claude Code, ",[32,881,884],{"href":882,"rel":883,"target":125},"https://code.claude.com/docs/en/memory",[124],"« How Claude remembers your project »",[170,886,887,888,131],{},"Model Context Protocol, ",[32,889,892],{"href":890,"rel":891,"target":125},"https://modelcontextprotocol.io/docs/learn/architecture",[124],"documentation sur l'architecture de MCP",[170,894,895,896,131],{},"GitHub, ",[32,897,900],{"href":898,"rel":899,"target":125},"https://github.com/github/github-mcp-server",[124],"serveur MCP GitHub officiel",[902,903,904],"style",{},"html pre.shiki code .sv4-_, html code.shiki .sv4-_{--shiki-default:#68B188;--shiki-default-font-weight:bold}html pre.shiki code .sCxck, html code.shiki .sCxck{--shiki-default:#E5E3E7}html pre.shiki code .s6E4U, html code.shiki .s6E4U{--shiki-default:#F99D21}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":354,"searchDepth":368,"depth":368,"links":906},[907,908,909,916,925,930,931,932,933],{"id":49,"depth":368,"text":50},{"id":161,"depth":368,"text":162},{"id":201,"depth":368,"text":202,"children":910},[911,913,914,915],{"id":302,"depth":375,"text":912},"AGENTS.md et CLAUDE.md contiennent la carte, pas toute la bibliothèque",{"id":541,"depth":375,"text":542},{"id":571,"depth":375,"text":572},{"id":592,"depth":375,"text":593},{"id":616,"depth":368,"text":617,"children":917},[918,919,920,921,922,923,924],{"id":620,"depth":375,"text":621},{"id":664,"depth":375,"text":665},{"id":677,"depth":375,"text":678},{"id":684,"depth":375,"text":685},{"id":691,"depth":375,"text":692},{"id":698,"depth":375,"text":699},{"id":705,"depth":375,"text":706},{"id":712,"depth":368,"text":713,"children":926},[927,928,929],{"id":716,"depth":375,"text":717},{"id":723,"depth":375,"text":724},{"id":730,"depth":375,"text":731},{"id":737,"depth":368,"text":738},{"id":807,"depth":368,"text":808},{"id":817,"depth":368,"text":818},{"id":844,"depth":368,"text":845},"19","ai","2026-07-18T07:00:00.000Z",null,"/img/blog/blog19.jpg","fr","page",{},"/fr/blog/context-engineering-agents-ia",{"description":944,"title":5},"Ma méthode de context engineering pour les agents IA : AGENTS.md, CLAUDE.md, specs Markdown, skills, outils, MCP et checklist concrète.",{"loc":942},"fr/blog/19.context-engineering-agents-ia","sRuw1koIj7gjPHlVrf1ZKExi6EX_miDx1TJrWkD7Gbk",[949,953],{"title":950,"path":951,"stem":952,"children":-1},"Agent Deck : mon tableau de bord pour suivre Codex, Claude et Cursor","/fr/blog/agent-deck-tableau-de-bord-agents-ia","fr/blog/20.agent-deck-tableau-de-bord-agents-ia",{"title":954,"path":34,"stem":955,"children":-1},"Du vibe coding à l'agentic engineering : ce que j'ai retenu du nouveau rapport de Google","fr/blog/18.vibe-coding-agentic-engineering-rapport-google",[957,960],{"path":958,"lang":959},"/en/blog/context-engineering-ai-agents","en",{"path":942,"lang":939},1784725295387]