Aller au contenu principal
🤖Intelligence Artificielle
Quand l'IA agit : la trajectoire devient l'objet de la mesure

Quand l'IA agit : la trajectoire devient l'objet de la mesure

Samy MEGUELLATISamy MEGUELLATI
IA22 min

Imaginez un agent chargé de traiter les demandes de remboursement des clients. Une réclamation arrive. L'agent lit le message, retrouve la commande dans l'outil de gestion, vérifie les conditions de retour, calcule le montant, déclenche le virement, puis rédige la réponse au client.

Six étapes, trois outils, plusieurs décisions, et pas une seule intervention humaine. Cet agent nous servira de fil conducteur pour une question : comment évaluer la qualité de l'action d'un agent IA ?

Pour évaluer la pertinence d'un agent, il faut évaluer sa trajectoire

Les deux premiers volets de notre série défendaient une même ligne : toute sortie d'IA est une hypothèse tant qu'elle n'a pas été mesurée. Et la mesure s'organise en boucle : construire, mesurer, améliorer, généraliser.

Sur un assistant RAG, l'exercice était exigeant mais praticable. La raison est simple : l'objet à juger était facile à isoler. Une question, une réponse. Avec notre agent de remboursement, cet objet disparaît. Juger la réponse envoyée au client ne suffit pas : elle peut être parfaite alors que le virement est parti deux fois. Ce qu'il faut évaluer, c'est la trajectoire, la suite complète des étapes parcourues. Et la difficulté, c'est que cette trajectoire n'est jamais deux fois la même.

Ce volet est plus prospectif que les deux précédents : le sujet bouge vite et les pratiques ne sont pas stabilisées. La direction, elle, se dessine déjà nettement.

TL;DR — EN BREF

  • Un agent enchaîne des étapes, appelle des outils et modifie des données. Ce qui doit être évalué, c'est la trajectoire complète, et elle n'est jamais deux fois la même.
  • Cinq obstacles : une erreur initiale fausse toute la suite, personne ne regarde les étapes intermédiaires, le chemin change à chaque exécution, les échecs se cumulent (90 % par étape donne 43 % sur huit étapes) et un score global ne désigne pas la pièce fautive.
  • L'évaluation se conduit à trois niveaux : end-to-end, trajectoire, composant. Le troisième n'existe que si la trace de l'exécution existe.
  • Écrire une trajectoire de référence est une fausse piste. On décrit l'état final attendu et les invariants à ne jamais enfreindre, quel que soit le chemin emprunté.
  • Trois techniques se partagent le travail : assertions déterministes, modèle juge pour ce qui relève du jugement, simulation répétée pour lire une distribution. En production, ces contrôles deviennent des quality gates.

L'anatomie d'un agent

Si le vocabulaire de l'agentique vous est familier, sautez cette section.

Un agent est un modèle de langage auquel on a ajouté trois choses.

  • Une mémoire, pour garder le fil de ce qu'il a déjà fait et appris au cours de la tâche.
  • Un orchestrateur : la partie qui découpe une demande en étapes et décide de la suite à donner.
  • Des outils qu'il peut appeler lui-même : une base de commandes, un service de paiement, un moteur de recherche, une messagerie. Chaque « appel d'outil » est une action de l'agent sur son environnement.

L'agent interroge donc des systèmes, prend des décisions, et modifie l'état du monde autour de lui.

Restent deux termes.

  • Un sous-agent est un agent spécialisé auquel l'agent principal délègue une portion du travail. Un agent réel est souvent une petite équipe d'agents. Notre agent de remboursement, lui, travaille seul.
  • La trace (ou tracing) est l'enregistrement horodaté de chaque étape, chaque appel d'outil et chaque décision prise pendant l'exécution. C'est le journal de bord de la trajectoire.
Anatomie d'un agent un modèle de langage, trois ajouts, et un journal de bord AGENT Modèle de langage le cœur qui raisonne et rédige Mémoire garde le fil de ce qui a déjà été fait Orchestrateur découpe en étapes, décide de la suite Outils appelés par l'agent lui-même SYSTÈMES EXTERNES base de commandes service de paiement moteur de recherche messagerie chaque appel agit sur le réel délègue Sous-agent agent spécialisé, une portion du travail même anatomie, en plus petit tout est enregistré Trace journal horodaté de chaque étape, appel d'outil et décision étape 1 outil A décision outil B Le modèle rédige ; la mémoire, l'orchestrateur et les outils en font un système qui agit.

Un agent, c'est le même modèle de langage entouré d'un dispositif qui lui permet d'agir. La trace en est le journal de bord.

Cinq raisons rendent un agent plus difficile à évaluer qu'un RAG

Ce que l'on doit juger change de nature avec un RAG, une réponse ; avec un agent, tout le parcours qui mène au résultat RAG · L'IA QUI RÉPOND ? question réponse Un seul objet à juger la réponse, face à la question AGENT · L'IA QUI AGIT ? réclamation lire commande conditions montant virement outil outil outil l'ordre, les requêtes et le nombre d'appels varient d'une exécution à l'autre Toute la trajectoire à juger six étapes, trois outils, des décisions, et un chemin qui change à chaque exécution Le résultat peut être bon alors que le parcours ne l'est pas, et inversement.

Première raison : une erreur au début fausse tout ce qui suit

Avec un agent, chaque étape produit un résultat servant de base à l'étape suivante. Si une étape produit un résultat incorrect, toutes les suivantes partent d'une donnée fausse, même si les IA font correctement leur travail.

Reprenons notre agent de remboursement. À l'étape 2, il cherche la commande du client dans l'outil de gestion. Ce client a passé deux commandes à quelques jours d'intervalle, et l'agent sélectionne la mauvaise. À partir de là :

  • l'étape 3 vérifie les conditions de retour de cette commande ;
  • l'étape 4 calcule le montant de cette commande ;
  • l'étape 5 émet le virement pour ce montant.

Ces trois étapes ont fait exactement ce qu'on leur demandait. Mais le remboursement émis ne correspond pas à la réclamation.

Pour l'évaluation, le problème est le suivant.

  • Ce qu'on observe, c'est un mauvais montant à l'étape 5.
  • La cause réelle est à l'étape 2.

Si on ne regarde que l'endroit où l'erreur devient visible, on va chercher à corriger le calcul du montant, alors que ce calcul est juste.

Une erreur à l'étape 2 fausse tout ce qui suit chaque étape fait correctement son travail… sur la mauvaise commande étape 1 lire le message étape 2 retrouver la commande étape 3 vérifier les conditions étape 4 calculer le montant étape 5 émettre le virement étape 6 rédiger la réponse ✓ chacune est correcte, mais s'applique à la mauvaise commande CAUSE RÉELLE mauvaise commande sélectionnée SYMPTÔME VISIBLE montant remboursé faux la correction est trois étapes plus tôt Corriger là où l'erreur se voit, c'est corriger au mauvais endroit.

Deuxième raison : personne ne voit les étapes intermédiaires

Avec un assistant RAG, chaque réponse est lue par un utilisateur. Si elle est fausse, il a au moins une chance de s'en rendre compte, parce qu'il la voit.

Avec un agent, ce n'est plus vrai. Notre agent reçoit la réclamation, enchaîne ses six étapes, et envoie un message de confirmation au client.

  • L'équipe qui exploite l'agent voit la réclamation en entrée et le virement en sortie.
  • Elle ne voit pas les cinq étapes qui les séparent.

Reprenons l'erreur précédente : l'agent sélectionne la mauvaise commande à l'étape 2. Rien ne le signale à ce moment-là, puisque personne ne regarde l'étape 2. Le message final, lui, est bien rédigé et ne laisse rien paraître.

Les erreurs se produisent donc dans des étapes que personne n'observe. Et le seul élément que quelqu'un observe, le résultat final, ne permet pas de les repérer.

Ce que l'équipe voit, et ce qu'elle ne voit pas l'entrée et la sortie sont visibles ; les étapes intermédiaires ne s'affichent nulle part ENTRÉE réclamation reçue du client visible CINQ ÉTAPES QUE PERSONNE NE REGARDE étape 1lire étape 2commande étape 3conditions étape 4montant étape 5virement la mauvaise commande est sélectionnée ici, et rien ne le signale SORTIE virement + message bien rédigé, rien ne cloche visible L'erreur se produit dans une étape que personne n'observe. Le seul élément observé, le résultat final, ne permet pas de la repérer.

Troisième raison : l'agent ne fait jamais deux fois la même chose

Un modèle de langage ne donne pas toujours la même réponse à la même question. Un agent enchaîne des dizaines d'appels à ce modèle, et hérite de cette variabilité à chaque étape.

Concrètement, si on envoie deux fois la même réclamation à notre agent, voici ce qui peut se passer.

  • La première fois, il interroge l'outil de gestion avec le numéro de commande figurant dans le message, obtient la bonne commande du premier coup, puis enchaîne.
  • La seconde fois, il interroge l'outil avec le nom du client et la date d'achat, obtient deux commandes, et lance donc une troisième requête pour trancher entre les deux.

Le résultat final peut être identique dans les deux cas. Le chemin pour y arriver ne l'est pas.

Pour l'évaluation, cela change tout.

En test logiciel classique, si un test passe, le comportement est validé, parce que le programme refera la même chose la prochaine fois.

Ici, non. Un test qui passe prouve seulement que ce chemin-là a fonctionné une fois. Le chemin suivant sera différent, et rien ne dit qu'il fonctionnera aussi.

Même réclamation, deux chemins différents le résultat est identique, le parcours ne l'est pas ? la même réclamation 1re EXÉCUTION recherche par n° de commande 1 résultat la bonne commande étapes 3 à 6 2e EXÉCUTION recherche par nom + date d'achat 2 résultats ambiguïté 3e requête pour trancher 3 à 6 même résultat Un appel d'outil dans un cas, trois dans l'autre. Le test qui passe sur le premier chemin ne dit rien du second.

Quatrième raison : les risques d'échec se multiplient d'étape en étape

Les trois raisons précédentes portaient sur la nature des erreurs. Celle-ci porte sur leur nombre, par un effet purement arithmétique.

Supposons que notre agent réussisse chaque étape dans 90 % des cas. Pris séparément, 90 % semble un bon score.

Sauf qu'un remboursement n'est correct que si toutes les étapes réussissent. Si une seule échoue, le résultat est faux. Les risques d'échec ne se compensent pas, ils s'ajoutent les uns aux autres.

Pour le voir, prenons 100 réclamations et suivons-les étape par étape.

  • L'étape 1 en traite correctement 90 et en abîme 10. Il reste donc 90 dossiers sains.
  • L'étape 2 s'applique à ces 90 dossiers seulement, et non aux 100 du départ : les 10 déjà faussés le restent. Elle en réussit 90 %, soit 81.
  • L'étape 3 applique de nouveau 90 % à ces 81, ce qui donne 73.
  • Et ainsi de suite.

À chaque étape, on perd 10 % de ce qu'il reste, et non 10 % du total de départ. La base sur laquelle on calcule rétrécit à chaque fois.

Sur 100 réclamations, combien restent correctes après chaque étape ? chaque étape réussit dans 90 % des cas, et s'applique à ce qu'il reste de l'étape précédente 90 : le score d'une seule étape 100 départ 90 étape 1 81 étape 2 73 étape 3 66 étape 4 59 étape 5 53 étape 6 48 étape 7 43 étape 8

Au bout de 8 étapes, un agent fiable à 90 % n'aura traité correctement que 43 réclamations sur 100.

Cinquième raison : quand ça casse, on ne sait pas quelle pièce a cassé

Notre agent de remboursement n'est pas un seul programme. C'est un assemblage de pièces, celles décrites plus haut dans l'anatomie d'un agent :

  • le modèle de langage, qui comprend la réclamation, en extrait la référence de commande et rédige le message au client ;
  • l'orchestrateur, qui décide de l'ordre des étapes ;
  • les trois outils qu'il interroge : la gestion des commandes, le référentiel des conditions de retour, et le service de paiement, qui calcule le montant remboursable et émet le virement.

Imaginons que l'on mesure le taux de remboursements corrects chaque semaine, et qu'il passe de 95 % à 80 %. On sait qu'une de ces pièces s'est dégradée. Mais le chiffre ne dit pas laquelle. Cela peut être :

  • l'outil de gestion des commandes, qui renvoie de mauvais résultats depuis une mise à jour ;
  • l'orchestrateur, qui a commencé à sauter la vérification des conditions de retour ;
  • le modèle de langage, dont le fournisseur a livré une nouvelle version qui extrait moins bien la référence de commande du message client.

Ce sont trois problèmes différents, avec trois corrections différentes, et un score global ne permet pas de les distinguer.

Le score global dit qu'une pièce a cassé, pas laquelle trois pannes différentes produisent exactement le même chiffre TAUX DE REMBOURSEMENTS CORRECTS 95 % 80 % Quelle pièce s'est dégradée ? ? Modèle de langage nouvelle version du fournisseur, extrait moins bien la référence de commande du message ? Orchestrateur a commencé à sauter la vérification des conditions de retour ? Outil de gestion renvoie de mauvais résultats depuis une mise à jour Trois causes, trois corrections différentes, un seul chiffre pour les distinguer : impossible.

Un agent doit être évalué à trois niveaux : est-ce que ça marche, pourquoi, et où ça casse

Les cinq raisons précédentes mènent à une même conclusion : un score unique ne suffit pas. Il dit si l'agent a réussi, mais ni pourquoi ni où il a échoué.

L'évaluation d'un agent se conduit donc à trois niveaux, qui répondent chacun à une question différente :

  • le niveau end-to-end répond à « est-ce que ça marche ? » ;
  • le niveau trajectoire répond à « pourquoi ça marche, ou pas ? » ;
  • le niveau composant répond à « où exactement ça casse ? ».
Évaluer un agent à trois niveaux chaque niveau répond à une question différente 1 · END-TO-END La tâche a-t-elle réussi, au bout du compte ? task success rate · qualité du résultat final · coût · latence 2 · TRAJECTOIRE Le chemin emprunté était-il sain et efficace ? les bons outils, dans le bon ordre, sans détour ni boucle inutile trajectory precision / recall · tool correctness 3 · COMPOSANT Quel maillon précis a cassé ? tel outil, telle décision de l'orchestrateur, tel raisonnement du modèle rendu visible par le tracing (la trace pas à pas de l'exécution)

Niveau 1, end-to-end : la tâche a-t-elle réussi ?

End-to-end signifie « de bout en bout ». Dans notre exemple le remboursement est-il arrivé ? Avec le bon montant ? Dans un délai raisonnable ?

On ne s'intéresse pas au chemin, seulement au résultat.

Quatre mesures :

  • le taux de réussite (task success rate) : sur 100 réclamations, combien sont correctement traitées ;
  • la qualité du résultat : le message envoyé au client est-il juste et compréhensible ;
  • le coût : ce que chaque réclamation a coûté en appels au modèle ;
  • la latence : le temps écoulé entre la réclamation et le virement.

Le coût et la latence comptaient peu pour un RAG.

Un RAG fait un appel au modèle par question. Un agent en fait des dizaines par tâche :

  • un pour comprendre la réclamation ;
  • un pour décider de l'étape suivante ;
  • un après chaque réponse d'outil ;
  • et ainsi de suite.

Ce niveau est indispensable, c'est lui qui mesure le service effectivement rendu. Mais il ne sert à rien pour corriger. Il apprend à l'équipe que des remboursements sont faux, il ne lui dit pas pourquoi.

Niveau 1 · end-to-end : on ne regarde que l'entrée et la sortie la tâche a-t-elle réussi ? à quel prix ? en combien de temps ? ENTRÉE réclamation les six étapes ne sont pas regardées à ce niveau SORTIE virement + message Quatre mesures sur la sortie Taux de réussite sur 100 réclamations, combien sont correctes Qualité du résultat le message est-il juste et compréhensible Coût appels au modèle facturés par réclamation Latence temps entre la réclamation et le virement

Niveau 2, trajectoire : le chemin était-il le bon ?

Ici on ouvre le parcours et on regarde comment l'agent s'y est pris. A-t-il appelé les bons outils ? Dans le bon ordre ?

Trois métriques répondent à ces questions :

  • La tool correctness (justesse des appels d'outils) vérifie que chaque appel d'outil était le bon, avec les bons paramètres. Dans notre exemple : l'outil de gestion des commandes a-t-il été appelé avec la bonne référence ? C'est ce contrôle qui attrape l'erreur de l'étape 2.
  • La trajectory precision (précision de la trajectoire) vérifie que l'agent n'a pas fait d'étapes superflues. A-t-il interrogé trois fois le même outil alors qu'une fois suffisait ?
  • Le trajectory recall (couverture de la trajectoire) vérifie qu'il n'a pas sauté d'étape nécessaire. A-t-il bien vérifié les conditions de retour avant d'émettre le virement ?

Ce niveau explique le score du niveau 1.

Niveau 2 · trajectoire : on ouvre le parcours les bons outils, dans le bon ordre, sans détour ni oubli ? Trajectory precision pas d'étape superflue ? trois appels au même outil alors qu'un suffisait 1 · lire le message 2 · retrouver la commande 3 · vérifier les conditions 4 · calculer le montant 5 · émettre le virement 6 · rédiger la réponse Tool correctness le bon outil, les bons paramètres ? étape 2 : l'outil de gestion a-t-il reçu la bonne référence ? Trajectory recall pas d'étape oubliée ? étape 3 sautée : le virement part sans vérifier les conditions chaque métrique se lit sur une étape précise du parcours

Niveau 3, composant : quelle pièce a cassé ?

Le dernier niveau descend jusqu'à la pièce fautive : cet outil, cette décision de l'orchestrateur, ce passage de raisonnement du modèle.

Il repose entièrement sur la trace, définie au début de l'article : l'enregistrement horodaté de chaque étape, chaque appel d'outil et chaque décision.

Ce niveau n'existe que si la trace existe. Sans elle, un agent est une boîte noire, et le diagnostic se fait à l'aveugle.

Avec la trace, on rejoue le parcours pas à pas. On voit la requête envoyée à l'outil de gestion à l'étape 2, les deux commandes qu'il a renvoyées, et le choix de la mauvaise.

Niveau 3 · composant : la trace désigne la pièce fautive on rejoue l'étape 2 ligne par ligne, telle qu'elle a été enregistrée étape 1 étape 2 étape 3 étape 4 étape 5 étape 6 TRACE · ÉTAPE 2 10:02:13 appel outil gestion · recherche par nom + date d'achat 10:02:14 réponse outil · 2 commandes : #4812 (réclamée) #4835 10:02:15 décision · commande retenue : #4835 ✗ la mauvaise 10:02:15 passage à l'étape 3 avec #4835… PIÈCE FAUTIVE IDENTIFIÉE le choix entre deux résultats, pas l'outil ni le calcul l'outil a bien répondu, le calcul du montant est juste Sans trace, cette ligne n'existe pas et le diagnostic se fait à l'aveugle.

Le piège : imposer son chemin à un agent

Une fois admis qu'il faut juger la trajectoire, une question se pose. Comment noter un parcours quand il n'existe pas un seul bon chemin, mais plusieurs ?

Le réflexe naturel : une trajectoire de référence

Le réflexe hérité du test logiciel est d'écrire une trajectoire de référence : la séquence exacte d'étapes que l'agent est censé suivre. Ensuite, on compare. L'agent a suivi cette séquence, c'est un succès. Il s'en est écarté, c'est un échec.

Ce réflexe se comprend. C'est le prolongement direct de la ground truth de l'article précédent, où chaque question avait sa réponse de référence. Ici, chaque réclamation aurait son parcours de référence.

Et pourtant, c'est presque toujours une mauvaise idée.

Sur la même réclamation, l'agent a parfois besoin d'un appel à l'outil de gestion, parfois de trois, parce que sa première recherche a renvoyé deux commandes et qu'il a dû trancher. Les deux parcours aboutissent à la bonne commande.

Avec une trajectoire de référence à un seul appel, le second parcours est compté comme un échec. On pénalise l'agent pour avoir levé une ambiguïté, c'est-à-dire pour avoir bien fait son travail.

Plus l'agent a de latitude, plus les parcours légitimes sont nombreux, et plus la trajectoire de référence en rejette à tort.

Si le bon chemin est vraiment unique, si on peut l'écrire à l'avance étape par étape, alors la question n'est plus celle de l'évaluation. C'est un processus à coder en logiciel classique, déterministe, testable comme n'importe quel programme.

Imposer le chemin revient à noter la conformité plutôt que le travail. Et si le chemin peut s'écrire à l'avance, un agent n'est pas nécessaire pour le suivre.

Deux façons de juger un parcours non déterministe TRAJECTOIRE DE RÉFÉRENCE on impose LE chemin attendu un chemin différent mais correct… …est noté comme un échec fragile face au non-déterminisme SCÉNARIO À CONTRAINTES on impose le RÉSULTAT et les règles tout chemin qui atteint le but en respectant les invariants est valable robuste : juge la fin et les règles, pas le tracé

L'approche qui s'impose : décrire le scénario attendu

L'approche qui se généralise prend le problème dans l'autre sens. Au lieu de dire à l'agent par où passer, on décrit le scénario, c'est-à-dire deux choses :

  • l'état final attendu : pour notre réclamation, la bonne commande remboursée du bon montant, et un message envoyé au client ;
  • les règles à ne jamais enfreindre en chemin, quel que soit le parcours.

La question posée à l'évaluation change alors. Elle passe de « as-tu suivi cette séquence ? » à « as-tu atteint ce résultat sans enfreindre aucune règle ? ».

Un appel ou trois à l'outil de gestion, peu importe, tant que la bonne commande est remboursée et qu'aucune règle n'a été violée.

Ces règles portent un nom : les invariants. Un invariant est une propriété qui doit rester vraie à chaque instant de l'exécution, du début à la fin, quel que soit le chemin emprunté.

Pour notre agent de remboursement, trois invariants viennent immédiatement :

  • ne jamais rembourser deux fois la même commande ;
  • ne jamais rembourser plus que le montant payé ;
  • ne jamais écrire de données personnelles du client dans un journal technique.

L'agent peut inventer mille façons de traiter une réclamation. Aucune des mille n'a le droit de franchir ces trois lignes.

Évaluer un agent, c'est vérifier qu'il atteint le but et qu'il respecte ses invariants, sans se soucier de l'itinéraire.

Concrètement, trois techniques de jugement se partagent le travail

Reste à savoir comment vérifier le résultat, la trajectoire, les composants et le respect des invariants. Aucune technique ne couvre tout, alors on en combine trois, chacune sur le terrain où elle est la meilleure.

Technique 1 : les vérifications déterministes, pour tout ce qui se tranche par oui ou non

Une grande partie de ce qu'on veut vérifier est factuel et binaire.

  • Le virement a-t-il été émis une seule fois ?
  • Le montant est-il égal au montant payé ?
  • L'outil de paiement a-t-il reçu la bonne référence de commande ?

À chaque question, la réponse est oui ou non, et deux personnes qui la vérifient trouveront la même chose.

Pour ces questions, on écrit des assertions : des lignes de code qui affirment une condition et échouent si elle n'est pas remplie. C'est exactement ce que font les tests logiciels classiques depuis toujours.

Les trois invariants de notre agent se traduisent directement en trois assertions.

Ces vérifications sont rapides, donnent toujours le même verdict, et ne laissent aucune place à l'interprétation.

Technique 1 · les assertions : un invariant devient une ligne de code la réponse est oui ou non, et deux personnes trouveront la même chose INVARIANT ASSERTION SUR LA TRACE VERDICT ne jamais rembourser deux fois la même commande assert nb_virements(commande) == 1 ne jamais rembourser plus que le montant payé assert montant_rembourse <= montant_paye le paiement porte la référence de la commande réclamée assert ref_paiement == ref_commande_reclamee l'erreur de l'étape 2 est attrapée ici rapide · même verdict à chaque fois · aucune interprétation

Notre recommandation : confier aux assertions la plus grande part possible du travail, et ne laisser aux deux techniques suivantes que ce qui leur échappe.

Technique 2 : le LLM-as-judge (modèle juge), quand il n'y a pas de réponse binaire

Certaines choses ne se tranchent pas par oui ou non. La stratégie de l'agent était-elle raisonnable ? Le détour qu'il a fait était-il justifié ? Le message au client est-il clair et bien argumenté ? Ici, il faut un jugement.

Le principe est celui du LLM-as-judge vu dans l'article précédent : on demande à un second modèle de langage, distinct de celui qui a fait le travail, de noter ce travail en suivant une grille écrite.

Une différence importante par rapport au RAG : on ne lui soumet plus une réponse de quelques lignes, mais la trace complète d'une exécution, qui peut compter des dizaines d'étapes.

Quand ce juge est lui-même un agent, capable d'aller consulter les données ou de rejouer une étape pour se forger un avis, on parle d'agent-as-judge.

Par exemple, pour vérifier que la bonne commande a été remboursée, le juge peut lui-même interroger l'outil de gestion et comparer.

Ces juges ne sont pas des produits sur étagère. Ce sont des dispositifs d'évaluation que l'équipe construit et calibre elle-même, avec ses propres grilles et ses propres cas.

Les exigences de prudence mentionnées dans l'article précédent s'appliquent ici avec encore plus de force, parce que les traces à juger sont longues, et qu'un juge se perd plus facilement dans quarante étapes que dans quatre lignes. Deux réflexes à garder :

  • calibrer le juge sur des cas dont on connaît déjà le verdict, pour vérifier qu'il note comme on le ferait ;
  • faire relire par un humain tous les cas où le juge hésite ou surprend.
Technique 2 · le modèle juge : un second modèle note la trace pour ce qui relève du jugement TRACE COMPLÈTE des dizaines d'étapes MODÈLE JUGE un second modèle, distinct de l'agent Grille écrite □ la stratégie était-elle raisonnable ? □ le détour était-il justifié ? □ le message est-il clair et argumenté ? construite et calibrée par l'équipe Note argumentée stratégie : correcte détour : justifié (ambiguïté) message : trop long Agent-as-judge le juge interroge lui-même l'outil de gestion Deux garde-fous · calibrer le juge sur des cas au verdict déjà connu · faire relire par un humain les cas où il hésite ou surprend

Technique 3 : la simulation et le rejeu, pour dompter le non-déterminisme

Une exécution réussie ne prouve rien, puisque la suivante pourrait être différente.

La réponse est donc de changer d'unité de mesure. On ne regarde plus une exécution, mais plusieurs.

Concrètement, on simule les interactions :

  • on construit des réclamations de test ;
  • on les envoie à l'agent des dizaines ou des centaines de fois ;
  • on regarde comment se répartissent les résultats.

On lit une distribution, c'est-à-dire une répartition des issues possibles, et non un verdict unique.

La conclusion change alors de forme. Elle passe de « l'agent a réussi le test » à « sur 100 exécutions de ce scénario, l'agent réussit 87 fois, et voici les trois façons dont il échoue les 13 autres fois ».

C'est un changement de culture pour les équipes de test, habituées à un test qui passe ou qui casse.

Quand un défaut apparaît, la trace permet de rejouer la trajectoire depuis l'étape fautive. On reproduit le problème à volonté, on corrige, et on relance la simulation pour vérifier que les 13 échecs ont bien disparu, sans en créer d'autres.

Technique 3 · la simulation : on lit une distribution, pas un verdict le même scénario, rejoué cent fois 1 scénario une réclamation de test × 100 exécutions chaque chemin est différent DISTRIBUTION DES ISSUES 87 réussites 13 et les 13 échecs se rangent en trois familles : 7 × mauvaise commande sélectionnée (étape 2) 4 × conditions de retour non vérifiées (étape 3) 2 × virement émis deux fois (invariant violé) Puis la boucle de rejeu rejouer depuis l'étape fautive reproduire le défaut à volonté corriger la pièce en cause relancer × 100 les 13 ont-ils disparu ?

Embarquer ces contrôles en production : les quality gates

Le premier article posait un principe : savoir quoi mesurer sert deux fois.

  • Une fois avant la mise en production, pour décider si on peut livrer.
  • Une fois pendant que le système tourne, pour surveiller qu'il reste dans les clous.

Avec un agent, ce second usage devient une condition, parce qu'un test réussi ne prouve presque rien.

Le mécanisme : des points de contrôle dans l'exécution elle-même

Le mécanisme consiste à placer les contrôles directement dans le déroulement de l'agent, sous forme de quality gates, littéralement « portes de qualité ». Une gate est un point de passage où l'agent, avant de poursuivre, vérifie qu'il est toujours dans les clous.

La différence avec le test tient à la question posée. En test, la question était « peut-on livrer cette version ? ». En production, elle devient « peut-on continuer cette exécution ? ».

On retrouve dans ces gates la même distinction :

  • les gates déterministes posent une question binaire, comme une assertion : l'invariant est-il sur le point d'être violé ? Le montant dépasse-t-il le seuil autorisé ? Cette commande a-t-elle déjà été remboursée ?
  • les gates non déterministes s'appuient sur un jugement de modèle : le score de confiance de cette étape est-il anormalement bas ? Cette trajectoire ressemble-t-elle à celles qui échouent d'habitude ?

Dans les deux cas, quand la gate se déclenche, l'effet est le même : l'agent s'interrompt, demande une validation, ou passe la main à une personne. C'est ce qu'on appelle le human-in-the-loop, « l'humain dans la boucle ».

Le même savoir, deux usages : en test et en run savoir quoi mesurer sert à valider les versions… et à surveiller la production Assurances qualité objectivées les métriques et invariants définis par l'évaluation EN TEST · intégration continue avant la mise en production · les tests rejoués à chaque version · non-régression sur la trajectoire · on bloque une release qui dégrade · question : « peut-on livrer ? » on valide AVANT de déployer EN RUN · quality gates dans le process agentique lui-même · gates déterministes (invariant violé ?) · gates non déterministes (score faible ?) · déclenche le human-in-the-loop · question : « peut-on continuer ? » on intercepte PENDANT l'exécution

Pour notre agent de remboursement, cela donne par exemple : au-dessus d'un certain montant, l'agent prépare le virement mais ne l'émet pas. Il s'arrête et attend qu'une personne de l'équipe valide. Il traite seul les petits litiges, et escalade les gros.

Deux bénéfices : la gate arrête l'erreur, et indique où l'agent échoue

Le premier bénéfice se voit tout de suite. On n'attend plus de découvrir l'erreur après coup, une fois le virement parti. On l'intercepte pendant l'exécution, avant qu'elle ait des conséquences.

Le second compte autant.

Chaque déclenchement de gate est une information : à quelle étape, sur quel type de réclamation, pour quelle raison. En agrégeant ces déclenchements semaine après semaine, on obtient en continu la carte de ce qui coince réellement en production.

Au bout des trois volets : même boucle, nouvelle unité de mesure

Au terme de cette série, la démarche est restée la même : construire, mesurer, améliorer, généraliser. Ce qui s'est déplacé, c'est l'objet que l'on mesure.

Que la démarche s'applique sur un assistant documentaire ou un agent autonome, on retrouve les mêmes principes : des cas représentatifs, des critères explicites, une mesure rejouée à chaque évolution, et le double usage, valider avant de livrer puis surveiller après.

Sur un agent, le banc d'essai prend la forme d'une simulation continue plutôt que d'un jeu de questions. Mais sa fonction ne change pas. C'est lui qui sépare une démonstration impressionnante d'un système sur lequel une entreprise peut réellement s'appuyer.

Les quality gates ont aussi un coût.

  • Chaque gate ajoute du temps et des appels au modèle à chaque exécution.
  • Chaque passage à un humain ajoute une attente et du travail pour l'équipe. Sur des milliers de réclamations, cela pèse.

D'où une question à se poser avant de construire l'agent. S'il faut tant de gates, un processus classique, en code déterministe, ferait-il aussi bien pour moins cher ?

La réponse n'est pas toujours en faveur de l'agent. L'évaluation sert aussi à cela : mesurer ce que l'autonomie rapporte, une fois son coût de contrôle compté.

Plus un système gagne en autonomie, plus l'écart se creuse entre ce qu'il paraît faire et ce qu'on a prouvé qu'il fait.

Combler cet écart devient une condition pour lui confier des actions.

Antoine Habert en montre une mise en œuvre outillée dans Tester à l'ère agentique, où chaque règle de comportement d'un agent devient un test exécutable.

Notre conseil : ouvrir ce chantier maintenant, pendant que vos agents sont encore des pilotes.

Partager