Patterns d’ingénierie agentique
(simonwillison.net)- Guide qui synthétise les méthodes de développement à l’ère des agents de codage comme Claude Code et Codex et présente de nouveaux patterns d’ingénierie pour collaborer avec des agents
- Explique, à travers différents patterns, comment faire évoluer les habitudes de développement et les workflows dans un environnement où le coût d’écriture du code a chuté brutalement
- Organise de manière structurée les domaines clés du développement centré sur les agents, comme les principes, les tests, la compréhension du code et la conception de prompts
- Chaque pattern prend la forme d’un document orienté pratique, avec des exemples de code réels, des méthodes de travail et des cas d’usage de prompts
- Une ressource de référence concrète pour aider les développeurs de l’ère des agents de codage à concevoir systématiquement un environnement de développement fondé sur les agents et à en maintenir la qualité
Vue d’ensemble d’Agentic Engineering Patterns
- Guide qui rassemble des méthodes d’ingénierie efficaces pour développer avec des agents de codage (Claude Code, OpenAI Codex, etc.)
- Voir aussi le billet de présentation de Writing about Agentic Engineering Patterns
- Document structuré pour accueillir en continu plusieurs patterns (chapitres), à la manière des « Design Patterns » traditionnels
- Le thème central porte sur l’évolution des workflows et des modes de décision des développeurs dans un contexte où le coût d’écriture du code a fortement baissé
- Le contenu est proposé non pas comme un billet de blog, mais comme un guide actualisable, destiné à s’enrichir progressivement
1. Principles
-
Writing code is cheap now
- Avec l’arrivée des agents de codage IA, le coût de production du code initial est devenu presque négligeable
- Autrefois, comme écrire du code coûtait cher, le développement était centré sur la conception et la planification ; désormais, il est possible de tester immédiatement une idée directement dans le code
- Même si le coût de génération du code a baissé, produire du bon code (tests, maintenabilité, etc.) a toujours un coût
-
Hoard things you know how to do
- Un actif essentiel pour les développeurs est l’accumulation de connaissances sur ce qu’il est possible de faire
- Le guide insiste sur l’habitude de conserver et capitaliser des exemples de résolution de problèmes variés et de petites expérimentations de code sous une forme réutilisable
- Le code et les exemples ainsi accumulés peuvent servir de matériel d’entrée très puissant lorsqu’on demande à un agent de codage de créer de nouvelles fonctionnalités
-
Anti-patterns: things to avoid
- Même lorsqu’il est généré par un agent, partager du code ou soumettre une PR sans relecture est un anti-pattern à éviter
- Les descriptions de PR rédigées par un agent doivent elles aussi être vérifiées et corrigées par un humain
- Pour ne pas faire perdre de temps aux reviewers, il faut fournir les tests, la procédure de validation et les raisons des choix d’implémentation
2. Testing and QA
-
Red/green TDD
- Le développement piloté par les tests (TDD) est un pattern particulièrement efficace lorsqu’il est utilisé avec des agents de codage
- Si l’on écrit les tests en premier, l’agent peut générer du code dans le sens attendu pour satisfaire ces tests
- Même avec des prompts minimaux, cela aide à produire un code précis et fiable
-
First run the tests
- Quand on travaille avec des agents de codage, les tests automatisés ne sont pas une option mais un prérequis
- Dans un environnement où le coût de rédaction des tests a diminué, l’agent peut générer et corriger rapidement ces tests
- Tant que le code n’a pas réellement été exécuté, on ne peut pas garantir son bon fonctionnement, d’où l’importance des tests
3. Understanding code
-
Linear walkthroughs
- Pattern consistant à lire dans l’ordre, du début à la fin, le code ou le projet produit par l’agent afin d’en comprendre la structure
- Même sur un projet simple, il est possible d’apprendre de nouvelles techniques et architectures en suivant le flux du code
- Face à l’inquiétude selon laquelle la génération de code par IA ralentirait l’apprentissage, le guide montre que l’exploration du code peut elle-même devenir une opportunité d’apprentissage
-
Interactive explanations
- Une manière de comprendre un code ou un système consiste à demander des explications à l’agent au fil d’un dialogue
- En répétant les questions, on peut comprendre progressivement le fonctionnement et la structure du code
- Ce pattern étend la compréhension du code à une forme d’apprentissage interactive
4. Annotated prompts
-
GIF optimization tool using WebAssembly and Gifsicle
- Inclut un exemple de prompt pour créer un outil d’optimisation de GIF basé sur WebAssembly et Gifsicle
- Présente une méthode d’implémentation d’un outil monopage incluant HTML, JavaScript et CSS
- Explique comment exploiter un agent de codage à travers des prompts réels et des exemples de code
5. Appendix
-
Prompts I use
- Recueil d’exemples de prompts pour agents de codage réellement utilisés
- Synthèse de patterns de prompts pratiques applicables à différents types de tâches
- Propose des modèles concrets à utiliser pour collaborer avec des agents
1 commentaires
Avis sur Hacker News
On a l’impression qu’on va encore refaire la même chose
Des concepts simples et raisonnables — par exemple « écrire les tests d’abord », « créer de petits modules combinables » — risquent d’être emballés dans des noms compliqués, puis de servir à bâtir une industrie du conseil
Sauf que cette fois, l’objet en question est une « machine qui parle ». On serait donc dans un monde où il suffirait de lui parler
J’aimerais poser la question à Simon — « dans un monde où le code est devenu bon marché, comment faut-il faire la revue de code ? »
Les membres de l’équipe abordent ça en mode « ça marche, donc c’est bon », sans comprendre la structure. Les revues deviennent de plus en plus volumineuses, et je deviens le goulet d’étranglement. J’ai aussi réfléchi à utiliser un relecteur IA par procuration, mais je n’aime pas l’idée de perdre la sensibilité humaine
J’utilise surtout l’IA pour le code boilerplate ou pour résoudre des problèmes de documentation
J’ai aussi essayé des tâches de type agent, mais les résultats restent encore difficiles à juger fiables. Pourtant, certaines personnes disent qu’« elles n’écrivent presque plus de code ». Cet écart est intéressant
En ce moment, j’expérimente une boucle de codage orientée agent
Par exemple, sur le projet fesh, l’objectif est de « compresser davantage les binaires Linux ». Comme c’est un problème avec des tests clairs, il convenait bien à une boucle IA
Voici ce que j’ai appris :
rejections.mdavait plus de valeur. Il faut garder la trace de « pourquoi cette approche a été abandonnée » pour que l’IA ne répète pas les mêmes erreursJ’aurais aimé que la section sur les tests aborde le problème des « tests auto-réalisateurs » produits par les LLM
Il arrive que les tests ne vérifient en réalité rien du tout, ou qu’ils passent simplement grâce à des valeurs codées en dur. Les humains doivent guider l’IA vers des habitudes de test rigoureuses
À chaque nouvelle génération de LLM, on a l’impression que toutes les leçons précédentes sont invalidées
Des structures complexes conçues pour contourner les limites d’anciens modèles, comme LangChain, sont devenues inutiles après GPT-3.5. Bientôt, il sera peut-être possible de tout faire avec un agent unique
Voir l’article associé
Il y a un point souvent absent des discussions sur l’agent engineering
La plupart des enseignements sont présentés comme des vérités universelles, alors qu’en réalité ils dépendent de la taille de l’équipe, de la maturité de la base de code, du niveau de test et de la tolérance au risque. L’important, c’est d’indiquer clairement « dans quels cas ce pattern fonctionne »
En ce moment, des « frameworks d’équipes d’agents » sortent par dizaines chaque jour
C’est une période d’expérimentation chaotique, un peu comme les débuts de l’ingénierie logicielle. Mais au final, quelques patterns finiront par s’imposer comme standard.
Dans notre équipe, ce qui a bien marché, c’est d’aborder cela comme une équipe humaine — on commence par rédiger une spec produit, on la peaufine avec l’IA, puis on la transmet à un flux d’agents aux rôles séparés
Aujourd’hui, dans un cours de licence, j’ai parlé de l’évolution des architectures CPU et GPU
Autrefois, grâce à la loi de Moore, le matériel résolvait tout, mais aujourd’hui, c’est le parallélisme qui est central.
L’idée de Simon selon laquelle « le code est bon marché » relève d’un changement de paradigme comparable.
De la même manière que le code efficace a complètement changé à l’ère du matériel parallèle, le processus de développement lui-même va changer à l’ère de l’IA. Ceux qui le comprendront les premiers pourraient obtenir un gain de 10 à 100 fois
Dans notre équipe, la chose la plus pratique a été une boucle avec validation humaine à intervalles réguliers
Les agents entièrement autonomes passent les tests, mais ils cassent souvent des invariants implicites.
Nous faisons donc intervenir un humain juste avant les décisions irréversibles.
Mais faire comprendre à l’IA ce qui est irréversible constitue encore un autre défi.
Au-delà de documents comme CLAUDE.md, nous cherchons une méthode systématique pour transmettre les règles implicites de la base de code