<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Sören Ohnmeiss - Articles</title><description>Des notes de terrain sur l&apos;ingénierie logicielle et l&apos;IA appliquée : agents de code, chaîne de fabrication, tests, observabilité, pratiques d&apos;équipe.</description><link>https://www.soren-ohnmeiss.com/</link><language>fr-fr</language><item><title>Un agent a besoin de signaux</title><link>https://www.soren-ohnmeiss.com/articles/un-agent-a-besoin-de-signaux/</link><guid isPermaLink="true">https://www.soren-ohnmeiss.com/articles/un-agent-a-besoin-de-signaux/</guid><description>Un agent de code n&apos;est autonome que si sa boucle de rétroaction l&apos;est. Conventions, tests, documentation : les signaux qui décident de ce qu&apos;il produit.</description><pubDate>Sat, 22 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Tout développeur, ou presque, utilise un agent de code aujourd&apos;hui. C&apos;est devenu un outil de base, au même titre que l&apos;IDE, qu&apos;il a d&apos;ailleurs souvent remplacé.&lt;/p&gt;
&lt;p&gt;Avec le temps, on est passé d&apos;une interruption constante, à un fonctionnement de plus en plus autonome. Ce qui nous a permis de le faire ? L&apos;amélioration de la boucle de rétroaction.&lt;/p&gt;
&lt;p&gt;L&apos;efficacité de la boucle de rétroaction influe sur le résultat et le degré d&apos;autonomie. C&apos;est pourquoi nous l&apos;optimisons, en permanence. Chaque faux pas de l&apos;agent doit nous interpeller sur l&apos;efficacité de cette boucle. Et nous devons en traiter les causes.&lt;/p&gt;
&lt;p&gt;Les signaux vont alimenter le contexte et en faire partie intégrante. Nous avons tous rapidement appris que ce qui conditionne le résultat est avant tout une question de contexte. En gros, mauvais contexte = mauvais résultat (fallait-il vraiment attendre les LLM pour le constater ?). Il faut donc traiter ce contexte avec attention.&lt;/p&gt;
&lt;p&gt;Dans une conversation, le retour que nous faisons, avec nos suggestions et recommandations, pour corriger ou améliorer une solution, est le premier signal. Et c&apos;est là que les agents de code sont devenus très utiles, pour apporter le bon contexte, selon les éléments qu&apos;ils ont à disposition, et plus particulièrement, en scrutant la base de code, de manière automatisée, pour en déduire nos conventions, habitudes et éléments clefs.&lt;/p&gt;
&lt;p&gt;Les agents comme Claude Code, Codex, OpenCode se sont démarqués en étant capables de récupérer ce contexte depuis la base de code et de le manipuler pour le fournir correctement au modèle sous-jacent. L&apos;agent dispose d&apos;outils qui lui permettent de lire et écrire des fichiers, exécuter un certain nombre d&apos;actions, utiles à l&apos;exploration et à la validation. Il se corrige lui-même quand il se rend compte que ses suppositions sont erronées. Et il améliore son contexte. Cela fait partie de la boucle.&lt;/p&gt;
&lt;p&gt;Notre travail est de définir ce qui constitue cette boucle, et en quoi elle satisfait notre niveau d&apos;exigence. À chaque niveau, quelles sont les informations nécessaires, quelles sont les actions possibles, avec quelle garantie de sécurité.&lt;/p&gt;
&lt;p&gt;C&apos;est ce qui nous a amenés à définir des conventions sur la manière d&apos;explorer le code et le manipuler, généralement dans un fichier de règles, AGENTS.md, ou équivalent, pour que l&apos;agent évite des erreurs récurrentes en lisant les bonnes (et surtout les mauvaises) pratiques. Une façon d&apos;améliorer le signal de retour fait à l&apos;agent, pour qu&apos;il soit plus autonome. On supprime ainsi un certain nombre d&apos;allers-retours inutiles.&lt;/p&gt;
&lt;p&gt;Avec cela, la documentation est devenue un élément central, servant non seulement à expliquer le code, mais aussi le métier, la raison d&apos;être d&apos;un projet, les objectifs. On prend donc davantage soin de notre documentation. Le but étant qu&apos;elle soit lue par notre agent quand il en a besoin et produise une solution en adéquation avec les exigences du projet.&lt;/p&gt;
&lt;p&gt;Les tests automatisés ont eu un regain d&apos;intérêt. Certains se sont rendu compte que ce n&apos;était pas juste un truc qui fait perdre du temps ou qu&apos;il faut faire pour cocher la case du bon dev. Un test qui échoue est un signal de non-conformité ou de nécessité d&apos;adaptation. Donc on prend soin de la suite de tests. Et en plus l&apos;agent peut en écrire. Il exécute la suite de tests, peut se réajuster s&apos;il dérive, et la compléter avec de nouveaux éléments. Qu&apos;il s&apos;agisse de tests unitaires, d&apos;intégration, ou d&apos;analyseurs statiques de code, tous ces outils sont devenus encore plus indispensables avec un agent de code. Ils témoignent de la conformité technique en termes d&apos;exécution. Et c&apos;est un signal fort.&lt;/p&gt;
&lt;p&gt;Les signaux doivent intervenir le plus tôt possible, être suffisamment exhaustifs pour guider l&apos;agent de manière cohérente. Une analyse de code statique prend quelques secondes, elle doit être exécutée d&apos;abord. Les tests d&apos;intégration peuvent prendre plusieurs minutes, ils viennent ensuite. À chaque étape, nous commençons par scruter les actions de l&apos;agent et ses dérives, pour rectifier notre boucle et passer au niveau suivant de validation.&lt;/p&gt;
&lt;p&gt;Les serveurs MCP, compétences (skills), et scripts utilitaires en tout genre, sont autant d&apos;outils complémentaires qui peuvent permettre à l&apos;agent d&apos;obtenir ces signaux. Il nous appartient de les définir selon nos besoins, pour obtenir un niveau de confiance suffisamment haut dans l&apos;autonomie de l&apos;agent et définir le niveau suivant, pour qu&apos;il réponde à nos exigences.&lt;/p&gt;
&lt;p&gt;Penser en signaux, c&apos;est faire en sorte que l&apos;agent devienne progressivement autonome, fiable et pertinent. Ainsi, il nous décharge de ce qui est répétitif, et nous pouvons être disponibles pour ce qui est important : le jugement, l&apos;alignement de la tech avec le besoin métier.&lt;/p&gt;
</content:encoded></item></channel></rss>