{"id":28740,"date":"2026-10-20T10:34:58","date_gmt":"2026-10-20T08:34:58","guid":{"rendered":"https:\/\/www.powens.com\/?p=28740"},"modified":"2026-10-20T10:34:58","modified_gmt":"2026-10-20T08:34:58","slug":"maintenance-agentique-reparons-connecteurs","status":"publish","type":"post","link":"https:\/\/www.powens.com\/fr\/blog\/maintenance-agentique-reparons-connecteurs\/","title":{"rendered":"Comment nous r\u00e9parons des connecteurs en 15 minutes au lieu de 2 jours"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><em>Cet article est le deuxi\u00e8me volet d\u2019une s\u00e9rie consacr\u00e9e \u00e0 la qualit\u00e9 chez Powens. Nous y expliquons comment nous avons commenc\u00e9 \u00e0 exp\u00e9rimenter avec des agents IA pour acc\u00e9l\u00e9rer la maintenance de nos connecteurs. Avec une pr\u00e9cision toutefois : nous n\u2019en sommes qu\u2019\u00e0 nos d\u00e9buts et ce que vous lisez aujourd\u2019hui peut avoir \u00e9volu\u00e9&nbsp; rapidement depuis.<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Maintenance de la connectivit\u00e9 : pas une correction de bug comme les autres<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Comme nous l\u2019expliquions dans notre <a href=\"https:\/\/www.powens.com\/fr\/tiering-connecteurs-priorisation-anomalies\/\">premier article<\/a>, les services de connectivit\u00e9 comme Powens (imaginez Zapier, mais pour connecter des comptes bancaires) ont des contraintes de maintenance tr\u00e8s particuli\u00e8res. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Powens est, par d\u00e9finition,&nbsp; un logiciel compos\u00e9 d\u2019un ensemble d\u2019int\u00e9grations avec des syst\u00e8mes externes sur lesquels nous n\u2019avons pas de contr\u00f4le : nous <em>importons donc<\/em> litt\u00e9ralement des centaines de probl\u00e8mes, qui surviennent de fa\u00e7on al\u00e9atoire. Les banques mettent \u00e0 jour leurs sites. Les API changent sans pr\u00e9avis. \u00c0 chaque fois, un connecteur casse, et quelqu\u2019un doit le r\u00e9parer.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dans notre pr\u00e9c\u00e9dent article, nous d\u00e9crivions comment nous priorisons les anomalies \u00e0 corriger en premier. C\u2019est un processus humain classique, qui s\u2019appuie&nbsp; sur des outils de monitoring avanc\u00e9s. Le syst\u00e8me fonctionne bien : il garantit que les vrais probl\u00e8mes re\u00e7oivent de l\u2019attention en priorit\u00e9. Mais il ne r\u00e8gle pas un probl\u00e8me plus fondamental : la capacit\u00e9. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Notre \u00e9quipe de maintenance des connecteurs, X-Connectors, ne peut r\u00e9soudre qu\u2019une partie du nombre moyen d\u2019anomalies uniques que nous d\u00e9tectons chaque mois. <strong>En nous concentrant sur les probl\u00e8mes qui touchent le plus d\u2019utilisateurs, nous assurons un service stable \u00e0 99 % d\u2019entre eux.<\/strong> Mais cela signifie que de nombreuses anomalies restent non corrig\u00e9es, m\u00eame si elles ne concernent qu\u2019une poign\u00e9e d\u2019utilisateurs de banques plus petites. Et c\u2019est, bien s\u00fbr, tr\u00e8s frustrant pour nous comme pour nos clients.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">De plus, comme certains d\u2019entre vous le savent, d\u00e8s qu\u2019il s\u2019agit de scraping de donn\u00e9es financi\u00e8res, les corrections peuvent prendre beaucoup de temps. Reproduire l\u2019erreur est g\u00e9n\u00e9ralement <em>l\u00e9g\u00e8rement<\/em> plus compliqu\u00e9 que pour un bug logiciel classique. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Nos protocoles de s\u00e9curit\u00e9 interdisent aux d\u00e9veloppeurs d\u2019utiliser les identifiants des utilisateurs finaux pour faciliter le d\u00e9bogage.<\/strong> Nous nous appuyons plut\u00f4t sur les logs des sessions de navigation et sur une s\u00e9rie d\u2019outils internes qui nous aident \u00e0 localiser le probl\u00e8me. Mais ce n\u2019est pas parfait et, souvent, le d\u00e9bogage se fait par t\u00e2tonnements.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">D\u2019o\u00f9 la question \u00e0 un million : un LLM peut-il faire ce travail ? Peut-il nous aider \u00e0 corriger les probl\u00e8mes de moindre priorit\u00e9 que nos d\u00e9veloppeurs n\u2019ont pas la capacit\u00e9 de traiter et, \u00e0 terme, acc\u00e9l\u00e9rer aussi la r\u00e9solution des probl\u00e8mes prioritaires ?<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Deux fa\u00e7ons d\u2019aborder un scraper<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Quand on pense \u00e0 appliquer les LLM au web scraping, deux approches radicalement diff\u00e9rentes viennent \u00e0 l\u2019esprit. Et le choix entre l\u2019un ou l\u2019autre r\u00e9v\u00e8le assez clairement la fa\u00e7on dont vous abordez l\u2019IA en entreprise.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La premi\u00e8re approche consiste \u00e0 int\u00e9grer le LLM au runtime. \u00c0 chaque session de scraping d\u2019un site de banque, le mod\u00e8le interpr\u00e8te le HTML brut et extrait les donn\u00e9es \u00e0 la vol\u00e9e. En somme, le LLM devient une sorte de scraper dynamique. Plus de code rigide \u00e0 maintenir : le mod\u00e8le s\u2019adapte dynamiquement \u00e0 chaque site bancaire et \u00e0 chaque session de navigation. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si la banque refond son site du jour au lendemain, le mod\u00e8le comprend tout simplement la nouvelle mise en page. Z\u00e9ro interruption. C\u2019est \u00e9l\u00e9gant, et cela pourrait \u00eatre l\u2019avenir de l\u2019extraction de donn\u00e9es \u00e0 long terme.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mais aujourd\u2019hui, deux obstacles r\u00e9dhibitoires se dressent :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>D\u2019abord, le co\u00fbt : une seule session de navigation pilot\u00e9e par un LLM co\u00fbte environ 10 \u00e0 20 centimes. Nous rafra\u00eechissons les donn\u00e9es des comptes d\u2019un utilisateur (ce que nous appelons une \u00ab connexion \u00bb) environ 30 fois par mois. Cela repr\u00e9sente environ 3 \u20ac par connexion, soit plus que ce que nous facturons. Le compte n\u2019y est tout simplement pas.<\/li>\n\n\n\n<li>Ensuite, le d\u00e9terminisme : le mod\u00e8le peut extraire des donn\u00e9es l\u00e9g\u00e8rement diff\u00e9rentes \u00e0 chaque fois. C\u2019est un vrai probl\u00e8me quand vos clients s\u2019appuient sur des informations financi\u00e8res pr\u00e9cises pour faire fonctionner leurs propres produits, ou quand un r\u00e9gulateur vous fait confiance pour fournir les donn\u00e9es <em>telles quelles<\/em>.<\/li>\n<\/ul>\n\n\n\n<div style=\"height:25px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><\/th><th><strong>Le LLM comme scraper<\/strong><\/th><th><strong>Le LLM corrige le code (au d\u00e9veloppement)<\/strong><\/th><\/tr><\/thead><tbody><tr><td><strong>Co\u00fbt<\/strong><\/td><td>0,10-0,20 \u20ac par session, soit environ 3 \u20ac par connexion et par mois<\/td><td>5-15 \u20ac une seule fois par correctif<\/td><\/tr><tr><td><strong>D\u00e9terminisme<\/strong><\/td><td>Variable<\/td><td>D\u00e9terministe<\/td><\/tr><tr><td><strong>Contr\u00f4le humain<\/strong><\/td><td>Aucun<\/td><td>Revue de PR \u00e0 chaque modification<\/td><\/tr><tr><td><strong>Adaptation aux refontes<\/strong><\/td><td>Imm\u00e9diate<\/td><td>N\u00e9cessite un correctif<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<div style=\"height:25px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>La seconde approche consiste \u00e0 garder des connecteurs cod\u00e9s en dur, mais \u00e0 faire \u00e9crire les correctifs par le LLM, comme le ferait un d\u00e9veloppeur.<\/strong> Le mod\u00e8le analyse le probl\u00e8me, produit le code et ouvre une pull request. Un d\u00e9veloppeur humain la relit et la merge. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Avec cette m\u00e9thode, le co\u00fbt tombe \u00e0 5-15 \u20ac par correctif &#8211; une d\u00e9pense ponctuelle, ind\u00e9pendante de la fr\u00e9quence de rafraichissement des donn\u00e9es. Une fois d\u00e9ploy\u00e9, le code est d\u00e9terministe. Et chaque modification passe par une revue humaine avant d\u2019arriver en production : nous gardons ainsi un meilleur contr\u00f4le.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">C\u2019est moins spectaculaire, c\u2019est s\u00fbr. Mais Powens g\u00e8re des millions de connexions bancaires et op\u00e8re dans un cadre r\u00e9glementaire strict : la ma\u00eetrise de nos processus n\u2019est pas n\u00e9gociable. Nous avons donc fait le choix \u00e9vident : \u00ab le LLM corrige les connecteurs \u00bb.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pour autant, ces deux approches ne s\u2019excluent pas tout \u00e0 fait. On peut d\u00e9j\u00e0 imaginer un mod\u00e8le hybride, o\u00f9 l\u2019extraction \u00e0 l\u2019ex\u00e9cution servirait de solution de repli pour les cas limites (les 5 % d\u2019utilisateurs qui tombent sur une mise en page rare), tandis que l\u2019approche par le code g\u00e9rerait le fonctionnement courant. Mais c\u2019est une autre histoire, pour un autre article.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Enfin ! Un vrai argument en faveur de Woob<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">L\u2019infrastructure de connecteurs de Powens repose sur <a href=\"https:\/\/woob.tech\/\" target=\"_blank\" rel=\"noopener\">Woob<\/a>, un framework open source que nous d\u00e9veloppons depuis des ann\u00e9es, mais dont se moquent souvent les nouveaux d\u00e9veloppeurs qui rejoignent Powens. Ils le trouvent obscur, rigide et parfois bien trop lourd pour des t\u00e2ches simples. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Alors, quand nous avons envisag\u00e9 pour la premi\u00e8re fois de faire \u00e9crire du code Woob par une IA, le scepticisme \u00e9tait de mise en interne.<\/strong> Woob n\u2019est pas vraiment grand public. Un mod\u00e8le de langage pouvait-il comprendre et ma\u00eetriser un framework de niche, en tout cas suffisamment pour produire des connecteurs fiables ?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Une premi\u00e8re preuve de concept, men\u00e9e en direct sur un vrai compte bancaire, a tranch\u00e9 le d\u00e9bat assez vite.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Il s\u2019av\u00e8re qu\u2019un framework structur\u00e9 est un atout, pas un handicap. Le c\u0153ur de Woob g\u00e8re tout le code r\u00e9p\u00e9titif : sessions HTTP, gestion des cookies, pagination, gestion des erreurs. Un connecteur ne contient que la logique propre au site de la banque : quelle page visiter, quels champs extraire, comment naviguer entre les rubriques. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Le LLM travaille donc sur des fichiers courts et bien d\u00e9limit\u00e9s, plut\u00f4t que sur des scripts monolithiques. Et comme tous les connecteurs suivent les m\u00eames sch\u00e9mas, le mod\u00e8le peut apprendre les conventions de l\u2019un et les transposer \u00e0 un autre.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sans framework, le mod\u00e8le a tendance \u00e0 produire du code improvis\u00e9 : appels HTTP encha\u00een\u00e9s, gestion des erreurs au fil de l\u2019eau, navigation en plat de spaghettis. Avec Woob, il produit un code structur\u00e9 et maintenable, qu\u2019un d\u00e9veloppeur habitu\u00e9 au framework peut relire en un temps raisonnable. Si vous envisagez une approche similaire pour votre propre code, c\u2019est sans doute l\u2019enseignement le plus important : donnez un cadre au mod\u00e8le, et la qualit\u00e9 du r\u00e9sultat progresse de fa\u00e7on spectaculaire.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>M\u00eame m\u00e9thode, autre joueur<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Au final, il nous a fallu quelques mois pour aboutir au premier prototype de notre r\u00e9parateur de connecteurs par IA. Nous l\u2019avons appel\u00e9 <em>woob-autofix<\/em> (un nom pas tr\u00e8s original, mais efficace: toute la philosophie Powens)). Son principe de conception est simple : l\u2019agent suit exactement le m\u00eame workflow qu\u2019un d\u00e9veloppeur humain.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Woob-autofix lit un ticket JIRA.<\/li>\n\n\n\n<li>Il r\u00e9cup\u00e8re le contexte du connecteur depuis nos outils internes.<\/li>\n\n\n\n<li>Il reproduit l\u2019erreur en lan\u00e7ant la m\u00eame commande de diagnostic que nos d\u00e9veloppeurs.<\/li>\n\n\n\n<li>L\u2019agent capture les logs et les r\u00e9ponses HTML, analyse l\u2019\u00e9chec et \u00e9crit un correctif.<\/li>\n\n\n\n<li>Il relance le test pour valider.<\/li>\n\n\n\n<li>Un agent relecteur distinct et impartial examine le diff sous l\u2019angle de la qualit\u00e9 et de la s\u00e9curit\u00e9. Si la revue rel\u00e8ve des probl\u00e8mes, la boucle recommence.<\/li>\n\n\n\n<li>Une fois tous les contr\u00f4les pass\u00e9s, une pull request est cr\u00e9\u00e9e sur GitHub.<\/li>\n<\/ol>\n\n\n\n<div style=\"height:25px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad78222a5c5e&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad78222a5c5e\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"325\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.powens.com\/wp-content\/uploads\/2026\/10\/261013_agentic_ai_at_powens_1_fr_1_5x-1200x325.webp\" alt=\"Libell\u00e9 zone 1 : AGENT IA \u00b7 WOOB-AUTOFIX\n\u00c9tape 1 : Lire le ticket \u2014 R\u00e9cup\u00e8re le ticket JIRA\n\u00c9tape 2 : Contexte \u2014 R\u00e9cup\u00e8re le contexte du connecteur dans nos outils internes\n\u00c9tape 3 : Reproduire \u2014 Lance la m\u00eame commande de diagnostic que nos d\u00e9veloppeurs\n\u00c9tape 4 : Corriger \u2014 Analyse logs et HTML, puis \u00e9crit un correctif\n\u00c9tape 5 : Re-tester \u2014 Relance le test pour valider\n\u00c9tape 6 : Agent relecteur \u2014 Un agent distinct v\u00e9rifie qualit\u00e9 et s\u00e9curit\u00e9\n\u00c9tape 7 : Ouvrir une PR \u2014 Cr\u00e9e une pull request sur GitHub\nLibell\u00e9 de la boucle (fl\u00e8che pointill\u00e9e de l\u2019\u00e9tape 6 \u00e0 l\u2019\u00e9tape 4) : Probl\u00e8mes ? Nouvelle boucle\nLibell\u00e9 du s\u00e9parateur : L\u2019AGENT S\u2019ARR\u00caTE ICI\nLibell\u00e9 zone 2 : HUMAIN \u00b7 \u00c9QUIPE X-CONNECTORS\nCarte humaine : Revue et merge \u2014 Chaque pull request est revue comme une contribution humaine. Seule l\u2019\u00e9quipe peut merger en production.\" class=\"wp-image-28744\" title=\"\" srcset=\"https:\/\/www.powens.com\/wp-content\/uploads\/2026\/10\/261013_agentic_ai_at_powens_1_fr_1_5x-1200x325.webp 1200w, https:\/\/www.powens.com\/wp-content\/uploads\/2026\/10\/261013_agentic_ai_at_powens_1_fr_1_5x-790x214.webp 790w, https:\/\/www.powens.com\/wp-content\/uploads\/2026\/10\/261013_agentic_ai_at_powens_1_fr_1_5x-350x95.webp 350w, https:\/\/www.powens.com\/wp-content\/uploads\/2026\/10\/261013_agentic_ai_at_powens_1_fr_1_5x-765x207.webp 765w, https:\/\/www.powens.com\/wp-content\/uploads\/2026\/10\/261013_agentic_ai_at_powens_1_fr_1_5x-1536x416.webp 1536w, https:\/\/www.powens.com\/wp-content\/uploads\/2026\/10\/261013_agentic_ai_at_powens_1_fr_1_5x-2048x554.webp 2048w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><figcaption class=\"wp-element-caption\">L\u2019agent ne merge jamais son propre code. Agent : 10\u201315 min par correctif \u00b7 D\u00e9veloppeur : 1 \u00e0 2 jours<\/figcaption><\/figure>\n\n\n\n<div style=\"height:25px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Et l\u00e0, il s\u2019arr\u00eate. L\u2019agent ne merge jamais son propre code. L\u2019\u00e9quipe X-Connectors relit chaque pull request exactement comme n\u2019importe quelle contribution humaine. L\u00e0 encore, ce choix de conception strict nous para\u00eet \u00e9vident compte tenu de l\u2019\u00e9tat actuel de l\u2019IA et notre exp\u00e9rience. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Passer un jour \u00e0 une approche plus souple n\u2019est pas exclu. Mais cela demandera beaucoup d\u2019apprentissage et d\u2019\u00e9valuation et, bien s\u00fbr, des preuves solides que woob-autofix peut maintenir dans la dur\u00e9e un niveau de performance comparable \u00e0 celui d\u2019un humain.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sous le capot, l\u2019agent fonctionne avec Claude via le SDK Claude Code. Au d\u00e9part, nous faisions tourner Claude Code et Kiro (l\u2019agent de code d\u2019AWS) en parall\u00e8le. Mais Kiro n\u2019avait pas de SDK natif : il fallait lancer l\u2019ex\u00e9cutable, parser sa sortie et perdre le contexte entre les \u00e9tapes. Le SDK Claude Code a permis une int\u00e9gration fluide dans notre pipeline d\u2019orchestration, avec une continuit\u00e9 compl\u00e8te du contexte. Nous avons fait le choix pragmatique de consolider, et les r\u00e9sultats se sont am\u00e9lior\u00e9s.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Au moment de l\u2019\u00e9criture du premier draft de cet article nous tournions sous Opus 4.6. A noter que la mont\u00e9e de version depuis 4.5 n\u2019a pas \u00e9t\u00e9 aussi ais\u00e9e que pr\u00e9vu. Nos prompts 4.5 \u00e9taient un peu trop directifs pour 4.6, qui a besoin d\u2019un peu plus de latitude pour donner de bons r\u00e9sultats. Apr\u00e8s un fastidieux travail de r\u00e9\u00e9criture des prompts, les choses se sont am\u00e9lior\u00e9es. D\u00e9sormais, nous ma\u00eetrisons mieux ces mont\u00e9es de version. A l\u2019heure de la publication de l\u2019article, nous sommes d\u00e9sormais sur Opus 5.5.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Le plus difficile n\u2019est pas ce que l\u2019on s\u2019imagine<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Demandez \u00e0 n\u2019importe quelle \u00e9quipe qui d\u00e9veloppe des outils de d\u00e9veloppement assist\u00e9s par IA quel est le plus grand d\u00e9fi, et vous entendrez sans doute souvent \u00ab prompt engineering \u00bb. C\u2019est vrai, cela repr\u00e9sente beaucoup de travail, probablement l\u2019essentiel en volume. Mais ce n\u2019est pas le plus difficile.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Le vrai probl\u00e8me difficile, c\u2019est de savoir si l\u2019on progresse r\u00e9ellement.<\/strong> Dans la plupart des projets logiciels, on mesure la qualit\u00e9 du code g\u00e9n\u00e9r\u00e9 par l\u2019IA avec des tests unitaires ou des sc\u00e9narios fixes. Mais c\u2019est beaucoup moins \u00e9vident avec de la connectivit\u00e9 bancaire: les sites des banques \u00e9voluent en permanence. Un cas de test d\u2019il y a trois mois peut viser une mise en page qui n\u2019existe plus, avec la session d\u2019un utilisateur qui a depuis cl\u00f4tur\u00e9 son compte. Bref, notre cas de test a toujours une date de p\u00e9remption.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nous avons donc emprunt\u00e9 une id\u00e9e \u00e0 la finance quantitative : le backtesting. Nous remontons le temps, prenons un ticket JIRA vieux de deux mois, r\u00e9cup\u00e9rons le code tel qu\u2019il \u00e9tait \u00e0 l\u2019\u00e9poque, et laissons l\u2019agent tenter la correction. Nous comparons ensuite sa pull request \u00e0 celle que le d\u00e9veloppeur humain a r\u00e9ellement livr\u00e9e. Un juge LLM ind\u00e9pendant \u00e9value les deux solutions au regard de l\u2019\u00e9nonc\u00e9 initial du probl\u00e8me.<\/p>\n\n\n\n<div style=\"height:25px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad78222a5ff2&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad78222a5ff2\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"643\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.powens.com\/wp-content\/uploads\/2026\/10\/261013_agentic_ai_at_powens_2_fr_1_5x-1200x643.webp\" alt=\"\u00c9tape 1 : RETOUR DANS LE PASS\u00c9 \u2014 Un ancien ticket \u2014 Nous prenons un ticket JIRA d\u2019il y a environ deux mois et r\u00e9cup\u00e9rons le code tel qu\u2019il \u00e9tait \u00e0 l\u2019\u00e9poque.\nMini frise : \u22122 mois \u2014 Aujourd\u2019hui\nBranche du haut (couleur humain) : R\u00c9F\u00c9RENCE HUMAINE \u2014 Le correctif du d\u00e9veloppeur \u2014 La pull request r\u00e9ellement livr\u00e9e par notre d\u00e9veloppeur \u00e0 l\u2019\u00e9poque\nEntre les branches : vs.\nBranche du bas (couleur agent) : AGENT IA \u00b7 WOOB-AUTOFIX \u2014 Le correctif de l\u2019agent \u2014 woob-autofix traite le m\u00eame ticket sur le m\u00eame code\n\u00c9tape 3 : JUGE LLM IND\u00c9PENDANT \u2014 Comparer les deux correctifs \u2014 Les deux solutions sont \u00e9valu\u00e9es au regard de l\u2019\u00e9nonc\u00e9 initial du probl\u00e8me.\nLibell\u00e9 des r\u00e9sultats : VERDICT SUR L\u2019AGENT\nR\u00e9sultat A (coche) : Vrai correctif \u2014 Cause racine trait\u00e9e. Au moins aussi bon que celui du d\u00e9veloppeur.\nR\u00e9sultat B (croix) : Rustine \u2014 Sympt\u00f4me masqu\u00e9, le probl\u00e8me est toujours l\u00e0.\n\" class=\"wp-image-28747\" title=\"\" srcset=\"https:\/\/www.powens.com\/wp-content\/uploads\/2026\/10\/261013_agentic_ai_at_powens_2_fr_1_5x-1200x643.webp 1200w, https:\/\/www.powens.com\/wp-content\/uploads\/2026\/10\/261013_agentic_ai_at_powens_2_fr_1_5x-350x188.webp 350w, https:\/\/www.powens.com\/wp-content\/uploads\/2026\/10\/261013_agentic_ai_at_powens_2_fr_1_5x-790x423.webp 790w, https:\/\/www.powens.com\/wp-content\/uploads\/2026\/10\/261013_agentic_ai_at_powens_2_fr_1_5x-767x411.webp 767w, https:\/\/www.powens.com\/wp-content\/uploads\/2026\/10\/261013_agentic_ai_at_powens_2_fr_1_5x-1536x823.webp 1536w, https:\/\/www.powens.com\/wp-content\/uploads\/2026\/10\/261013_agentic_ai_at_powens_2_fr_1_5x.webp 1683w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><figcaption class=\"wp-element-caption\">Au d\u00e9but, l\u2019agent \u00ab r\u00e9solvait \u00bb les erreurs en interceptant les exceptions au lieu de corriger la cause racine. Plus de plantage, mais plus de donn\u00e9es non plus.<\/figcaption><\/figure>\n\n\n\n<div style=\"height:25px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Cette approche a mis au jour quelque chose que des suites de tests seules n\u2019auraient jamais d\u00e9tect\u00e9. Au d\u00e9but, l\u2019agent utilisait une astuce : il \u00ab r\u00e9solvait \u00bb les erreurs en interceptant les exceptions au lieu de traiter la cause racine. Plus de plantage, techniquement. Mais plus de donn\u00e9es non plus. En comparant avec une r\u00e9f\u00e9rence humaine, le juge sait faire la diff\u00e9rence entre un vrai correctif et une rustine.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Au final, o\u00f9 en sommes-nous aujourd\u2019hui ? L\u2019agent produit un correctif au moins aussi bon que celui du d\u00e9veloppeur dans 25 \u00e0 30 % des cas, du premier coup et sans retour de revue. Contre environ 10 % au d\u00e9marrage. Et nous avons des raisons de penser que nous sous-estimons ce chiffre : les premi\u00e8res revues humaines sugg\u00e8rent que le juge LLM est trop s\u00e9v\u00e8re dans certains cas. Nous menons actuellement des s\u00e9ries de calibrage avec l\u2019\u00e9quipe X-Connectors.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">M\u00eame quand le correctif n\u2019est pas parfait, le gain de temps est bien r\u00e9el. L\u2019agent met 10 \u00e0 15 minutes pour corriger un probl\u00e8me. Un d\u00e9veloppeur, lui, met un \u00e0 deux jours. M\u00eame un correctif qui n\u00e9cessite des ajustements donne au relecteur une sacr\u00e9e longueur d\u2019avance. Et n\u2019oublions pas : ces correctifs n\u2019auraient sans doute jamais \u00e9t\u00e9 fait&nbsp; sans l\u2019agent &#8211; ils auraient tout simplement \u00e9t\u00e9 d\u00e9prioris\u00e9s. Better done than perfect.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Et parfois, l\u2019IA nous surprend. Dans le bon sens.<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Cuand le correctif est bon, il peut \u00eatre <em>vraiment<\/em> bon.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dans un cas, un ticket signalait que plusieurs comptes d\u2019une grande banque fran\u00e7aise \u00e9taient mal typ\u00e9s (autrement dit, nous confondions comptes courants, comptes d\u2019\u00e9pargne ou autres). <strong>L\u2019agent a confirm\u00e9 le probl\u00e8me puis, sans qu\u2019on le lui demande, a lanc\u00e9 une recherche web sur le nom commercial de chaque compte pour en d\u00e9terminer le bon type.<\/strong> <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Il a identifi\u00e9 un PEA, un compte-titres et d\u2019autres produits, puis a mis \u00e0 jour le connecteur en cons\u00e9quence. Un raisonnement purement m\u00e9tier, qu\u2019aucun d\u2019entre nous n\u2019avait explicitement pr\u00e9vu.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dans un autre cas, un connecteur n\u2019arrivait pas \u00e0 r\u00e9cup\u00e9rer les transactions d\u2019un compte pr\u00e9cis. L\u2019agent a remarqu\u00e9 que le sch\u00e9ma de l\u2019URL ne correspondait pas \u00e0 celui des autres pages. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Il s\u2019est donc mis \u00e0 exp\u00e9rimenter : il a reconstruit l\u2019URL en combinant le nom du compte et le type de produit, a test\u00e9 plusieurs variantes, en a trouv\u00e9 une qui renvoyait des donn\u00e9es valides, puis a impl\u00e9ment\u00e9 la logique de parsing. Une d\u00e9marche d\u2019ing\u00e9nieur par essais et erreurs, exactement ce que ferait un d\u00e9veloppeur avec les outils de d\u00e9veloppement du navigateur ouverts.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Aucun de ces comportements n\u2019\u00e9tait cod\u00e9 en dur. L\u2019agent les a d\u00e9duits du contexte. Et c\u2019est pr\u00e9cis\u00e9ment ce qui rend cette approche prometteuse : ce n\u2019est pas un script avec mille r\u00e8gles. C\u2019est un mod\u00e8le qui raisonne sur les probl\u00e8mes.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><em>Tous les clients de l\u2019agr\u00e9gation b\u00e9n\u00e9ficient de ce d\u00e9veloppement. Lors du dernier sprint, nous avons consacr\u00e9 40 % de temps en moins \u00e0 la maintenance et plus que doubl\u00e9 la qualit\u00e9 des connecteurs de dernier niveau (leur taux de r\u00e9ussite est pass\u00e9 de 27 % \u00e0 plus de 60 %). D\u2019ici six mois, les clients peuvent s\u2019attendre \u00e0 des d\u00e9lais de r\u00e9solution nettement plus courts pour les incidents de connecteurs et \u00e0 une meilleure qualit\u00e9 de service au quotidien.<\/em> <em>\u2013 <a href=\"https:\/\/www.linkedin.com\/in\/vincent-paredes-29559675\/\" target=\"_blank\" rel=\"noreferrer noopener\">Vincent Paredes<\/a>, Powens VP AI &amp; Technology&nbsp;<\/em><\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>La suite du chemin<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Aujourd\u2019hui, woob-autofix prend en charge les connecteurs de scraping de la verticale Wealth (comptes d\u2019\u00e9pargne et d\u2019investissement, non couverts par les API DSP2). Nous avons commenc\u00e9 \u00e0 l\u2019\u00e9tendre aux connecteurs DSP2, en commen\u00e7ant par les probl\u00e8mes de typage des comptes. La r\u00e9cup\u00e9ration des documents devrait suivre rapidement.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La grande avanc\u00e9e \u00e0 venir, c\u2019est la navigation. Actuellement, l\u2019agent ne peut travailler qu\u2019avec les pages que le connecteur conna\u00eet d\u00e9j\u00e0, du moins dans la plupart des cas. Nous d\u00e9veloppons donc un acc\u00e8s contr\u00f4l\u00e9 au navigateur pour que l\u2019agent puisse d\u00e9couvrir de nouvelles pages de mani\u00e8re autonome, avec des restrictions strictes.<\/p>\n\n\n\n<div style=\"height:25px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6ad78222a69be&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6ad78222a69be\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"514\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.powens.com\/wp-content\/uploads\/2026\/10\/261013_agentic_ai_at_powens_3_fr_1_5x-1200x514.webp\" alt=\"Phase MAINTENANT : En production \u2014 Connecteurs Wealth \u2014 Connecteurs de scraping pour les comptes d\u2019\u00e9pargne et d\u2019investissement (non couverts par les API DSP2) \u00b7 D\u00e9marr\u00e9 \u2014 Connecteurs DSP2 \u2014 En commen\u00e7ant par les probl\u00e8mes de typage des comptes\nPhase ENSUITE : Prochaine \u00e9tape \u2014 R\u00e9cup\u00e9ration des documents \u2014 Devrait suivre rapidement sur les connecteurs DSP2 \u00b7 En d\u00e9veloppement \u2014 Acc\u00e8s navigateur \u2014 Navigation contr\u00f4l\u00e9e pour que l\u2019agent d\u00e9couvre de nouvelles pages, avec des restrictions strictes\nPhase PLUS TARD : Vision \u2014 Boucler la boucle \u2014 D\u00e9tecter les plantages en temps r\u00e9el via le monitoring, sans ticket \u00b7 Exp\u00e9rimentation \u2014 Cr\u00e9er des connecteurs \u2014 Int\u00e9grer une banque ou une plateforme en une heure environ\nSc\u00e9nario : O\u00d9 NOUS ALLONS \u00b7 BOUCLER LA BOUCLE \u2014 00:00 : Une banque d\u00e9ploie un changement bloquant \u00b7 Pendant la nuit (couleur agent) : L\u2019agent d\u00e9tecte l\u2019erreur, propose un correctif, ouvre une PR \u00b7 09:00 (couleur humain) : Un d\u00e9veloppeur relit et merge \u00b7 10:00 (couleur humain) : Le connecteur fonctionne \u00e0 nouveau\" class=\"wp-image-28751\" title=\"\" srcset=\"https:\/\/www.powens.com\/wp-content\/uploads\/2026\/10\/261013_agentic_ai_at_powens_3_fr_1_5x-1200x514.webp 1200w, https:\/\/www.powens.com\/wp-content\/uploads\/2026\/10\/261013_agentic_ai_at_powens_3_fr_1_5x-350x150.webp 350w, https:\/\/www.powens.com\/wp-content\/uploads\/2026\/10\/261013_agentic_ai_at_powens_3_fr_1_5x-790x339.webp 790w, https:\/\/www.powens.com\/wp-content\/uploads\/2026\/10\/261013_agentic_ai_at_powens_3_fr_1_5x-768x329.webp 768w, https:\/\/www.powens.com\/wp-content\/uploads\/2026\/10\/261013_agentic_ai_at_powens_3_fr_1_5x-1536x658.webp 1536w, https:\/\/www.powens.com\/wp-content\/uploads\/2026\/10\/261013_agentic_ai_at_powens_3_fr_1_5x-2048x878.webp 2048w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><figcaption class=\"wp-element-caption\">Sc\u00e9nario illustratif. Chaque correctif est toujours relu et merg\u00e9 par l\u2019\u00e9quipe X-Connectors.<\/figcaption><\/figure>\n\n\n\n<div style=\"height:25px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Plus tard, nous voulons boucler compl\u00e8tement la boucle. Aujourd\u2019hui, l\u2019agent traite des tickets JIRA : des probl\u00e8mes d\u00e9j\u00e0 d\u00e9tect\u00e9s, qualifi\u00e9s et remont\u00e9s par des humains. Mais notre monitoring capture d\u00e9j\u00e0 les plantages en temps r\u00e9el. Imaginez : une banque d\u00e9ploie un changement bloquant \u00e0 minuit. L\u2019agent d\u00e9tecte l\u2019erreur, propose un correctif et ouvre une PR. Un d\u00e9veloppeur la relit \u00e0 9 h. \u00c0 10 h, le connecteur fonctionne de nouveau. C\u2019est vers l\u00e0 que nous allons.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Enfin, nous exp\u00e9rimentons d\u00e9j\u00e0 le pendant de la r\u00e9paration des connecteurs : leur cr\u00e9ation. Imaginez que toute demande d\u2019un client (ou d\u2019un utilisateur final) pour connecter une banque ou une plateforme tr\u00e8s sp\u00e9cifique, pas encore prise en charge, puisse \u00eatre satisfaite en une heure. Bient\u00f4t, ce ne sera peut \u00eatre plus de la science-fiction.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Conclusion : garder l\u2019IA sous contr\u00f4le est un bon point de d\u00e9part<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Vous l\u2019aurez compris, nous ne rempla\u00e7ons pas les d\u00e9veloppeurs par l\u2019IA. Nous leur donnons un levier. <strong>L\u2019\u00e9quipe X-Connectors relit toujours chaque correctif, reste propri\u00e9taire du code et garde la main sur les d\u00e9cisions.<\/strong> Mais au lieu de passer deux jours sur une modification de parsing, elle peut consacrer quinze minutes \u00e0 relire une pull request bien structur\u00e9e, et r\u00e9orienter son expertise vers des t\u00e2ches plus complexes et \u00e0 plus forte valeur. Et elle se r\u00e9jouit de savoir que, enfin, certains probl\u00e8mes de moindre priorit\u00e9 seront trait\u00e9s.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dans notre secteur, la confiance est primordiale. Nos clients d\u00e9pendent de nous pour des donn\u00e9es financi\u00e8res critiques. C\u2019est pourquoi nous avons choisi l\u2019approche qui garde l\u2019humain aux commandes tout en utilisant l\u2019IA l\u00e0 o\u00f9 elle excelle : la vitesse, la reconnaissance de sch\u00e9mas et l\u2019it\u00e9ration infatigable. C\u2019est la m\u00eame philosophie qui guide notre syst\u00e8me de priorisation par niveaux, notre monitoring et tout ce que nous construisons. Faire le travail difficile. \u00catre transparents. Et ne jamais transiger sur les contr\u00f4les.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Cet article est le deuxi\u00e8me volet d\u2019une s\u00e9rie consacr\u00e9e \u00e0 la qualit\u00e9 chez Powens. Nous y expliquons comment nous avons commenc\u00e9 \u00e0 exp\u00e9rimenter avec des agents IA pour acc\u00e9l\u00e9rer la maintenance de nos connecteurs. Avec une pr\u00e9cision toutefois : nous n\u2019en sommes qu\u2019\u00e0 nos d\u00e9buts et ce que vous lisez aujourd\u2019hui peut avoir \u00e9volu\u00e9&nbsp; rapidement [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":28769,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","footnotes":"","bs_cache_bypass_cache":0},"categories":[231],"tags":[],"class_list":["post-28740","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-a-propos-powens"],"acf":[],"permalink_manager":null,"_links":{"self":[{"href":"https:\/\/www.powens.com\/fr\/wp-json\/wp\/v2\/posts\/28740","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.powens.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.powens.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.powens.com\/fr\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.powens.com\/fr\/wp-json\/wp\/v2\/comments?post=28740"}],"version-history":[{"count":10,"href":"https:\/\/www.powens.com\/fr\/wp-json\/wp\/v2\/posts\/28740\/revisions"}],"predecessor-version":[{"id":28780,"href":"https:\/\/www.powens.com\/fr\/wp-json\/wp\/v2\/posts\/28740\/revisions\/28780"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.powens.com\/fr\/wp-json\/wp\/v2\/media\/28769"}],"wp:attachment":[{"href":"https:\/\/www.powens.com\/fr\/wp-json\/wp\/v2\/media?parent=28740"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.powens.com\/fr\/wp-json\/wp\/v2\/categories?post=28740"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.powens.com\/fr\/wp-json\/wp\/v2\/tags?post=28740"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}