Aller au contenu
Toutes les ressources

Pourquoi les agents échouent sur les tâches longues.

Un agent parfait sur 3 étapes peut s’effondrer sur 20. Voici l’arithmétique derrière ce problème, et les deux leviers que j’utilise pour le rendre fiable.

Par Nizar Oukhchi, Architecte solution

Publié le · 7 min de lecture

Vous construisez un agent IA. En démonstration, vous lui confiez une tâche de trois étapes, et il la réussit parfaitement.

Puis vous le mettez en production, vous lui donnez une tâche de vingt étapes, et tout s’effondre.

Que s’est-il passé ? Le modèle est-il devenu moins bon ?


Les petites erreurs se multiplient

Le modèle n’est pas devenu moins bon. La tâche est devenue plus longue.

Prenons un exemple. Disons que chaque étape d’une tâche, comme lire un document, appeler un outil ou décider de la suite, réussit 95 % du temps.

Ça paraît plutôt fiable, non ?

Sauf qu’une tâche ne réussit que si toutes ses étapes réussissent. Les probabilités se multiplient donc. Sur vingt étapes, cela fait 0,95 multiplié vingt fois par lui-même, soit environ 0,36.

À peu près deux tâches sur trois contiennent au moins une erreur.

Voici à quoi ressemble cette courbe :

Figure 1La fiabilité d'une tâche chute avec le nombre d'étapes
99 % de réussite par étape95 % de réussite par étape90 % de réussite par étape
Réussite de la tâche selon le nombre d'étapes
Nombre d'étapes99 % de réussite par étape95 % de réussite par étape90 % de réussite par étape
199 %95 %90 %
298 %90 %81 %
397 %86 %73 %
496 %81 %66 %
595 %77 %59 %
694 %74 %53 %
793 %70 %48 %
892 %66 %43 %
991 %63 %39 %
1090 %60 %35 %
1190 %57 %31 %
1289 %54 %28 %
1388 %51 %25 %
1487 %49 %23 %
1586 %46 %21 %
1685 %44 %19 %
1784 %42 %17 %
1883 %40 %15 %
1983 %38 %14 %
2082 %36 %12 %
2181 %34 %11 %
2280 %32 %10 %
2379 %31 %9 %
2479 %29 %8 %
2578 %28 %7 %
2677 %26 %6 %
2776 %25 %6 %
2875 %24 %5 %
2975 %23 %5 %
3074 %21 %4 %
Probabilité qu'une tâche aboutisse sans erreur, si chaque étape réussit indépendamment avec la probabilité indiquée : réussite = pⁿ. Calcul, pas mesure.

Et elle est impitoyable dans les deux sens. À 90 % par étape, une tâche de vingt étapes réussit environ une fois sur huit. À 99 % par étape, elle échoue encore presque une fois sur cinq.

Même un très bon modèle, laissé seul sur une longue chaîne, produira donc un flux régulier de résultats faux.

Avant de confier un vrai travail à un agent, comprenez cette arithmétique. Je pense que c’est la chose la plus utile qu’une équipe puisse faire.

Je vais être honnête : les systèmes réels ne sont pas tout à fait aussi simples. Certaines erreurs sont sans conséquence. Certaines étapes sont bien plus faciles que d’autres. Et un modèle capable remarque parfois sa propre erreur et la corrige.

Mais la tendance tient. C’est ce que constatent les équipes qui passent d’une démonstration aux volumes de production : les problèmes apparaissent dans la longue traîne des tâches qui demandent beaucoup d’étapes.


Deux leviers

Bonne nouvelle : la même arithmétique indique comment s’en sortir.

La fiabilité dépend de deux choses :

  1. Le nombre d’étapes que vous laissez au modèle.
  2. Ce qui se passe quand l’une d’elles échoue.

Cela vous donne deux leviers.

Confier moins d’étapes au modèle

Voici une chose que l’on oublie facilement (moi le premier) : une grande partie de ce qu’un agent fait en boucle n’a pas du tout besoin d’un modèle de langage.

Récupérer un enregistrement ? Appeler une API avec des paramètres connus ? Mettre en forme un fichier ? Écrire dans une base de données ?

C’est du code ordinaire. Déterministe, testable, et fiable en pratique à 100 %.

Chaque étape que vous déplacez du modèle vers le code raccourcit la chaîne.

Concrètement, cela veut dire concevoir un workflow plutôt que confier un objectif ouvert à un agent. Le modèle traite les parties qui demandent vraiment du jugement ou du langage, comme lire un document non structuré, classer une demande ou rédiger une réponse. Le code s’occupe de tout le reste.

Ne demandez au modèle que ce que lui seul sait faire.

Contrôler chaque étape restante

Le second levier consiste à intercepter les erreurs avant qu’elles ne se propagent.

Après chaque étape du modèle, contrôlez ce qu’il a produit. Vous pouvez :

  1. Valider la sortie par rapport à un schéma.
  2. Rapprocher les chiffres de la source.
  3. Exécuter les tests du code généré.
  4. Faire relire le résultat par un second modèle, selon des critères explicites.

Si un contrôle échoue, relancez l’étape une fois. S’il échoue encore, escaladez.

Faut-il que les contrôles soient parfaits ? Pas du tout.

Dans l’exemple chiffré ci-dessous, un contrôle qui détecte quatre erreurs sur cinq fait passer la fiabilité effective de chaque étape de 95 % à près de 99 %. Sur vingt étapes, la tâche passe de 36 % à 79 % de réussite.

Voici ce que donnent les deux leviers, séparément et ensemble :

Figure 2Ce que changent les choix de conception
Agent libre20 étapes confiées au modèle35,8 %
Moins d'étapes6 étapes modèle, le reste en code73,5 %
Contrôle et reprisechaque étape vérifiée78,5 %
Les deux6 étapes modèle, vérifiées93,0 %
Exemple chiffré pour une tâche de 20 étapes à 95 % de réussite par étape. « Contrôle et reprise » suppose qu'un contrôle détecte 80 % des erreurs et que l'étape est relancée une fois. Hypothèses d'illustration, pas un banc d'essai.

Combinés, ils transforment un système qui se trompe la plupart du temps en un système qui a raison plus de neuf fois sur dix.

Autre bénéfice : les échecs restants ne sont plus silencieux. Ils remontent à un contrôle, où une personne peut les examiner.


À quoi ça ressemble en production

Au final, un agent fiable ressemble moins à un assistant autonome qu’à un processus bien conçu, avec quelques étapes intelligentes.

Pardonnez-moi cette métaphore un peu facile, mais c’est un peu comme une cuisine. Le chef ne fait pas la vaisselle et ne compte pas les livraisons. Il cuisine, et tout le reste est organisé pour qu’il puisse bien le faire.

Voici la structure que nous utilisons chez Admeliora pour le travail administratif riche en documents, comme le traitement des factures fournisseurs :

Figure 3Un workflow d'agent conçu pour la production
  1. CodeRécupérer la facture et la commande associéeAppels d'API classiques, aucune décision.
  2. ModèleExtraire les montants, dates et lignesSortie dans un schéma strict.
  3. ContrôleValider le schéma et rapprocher les totauxEn cas d'échec : une relance, puis escalade.
  4. ModèleExpliquer les écarts avec la commande
  5. HumainApprouver les écarts au-dessus d'un seuilLes cas courants passent sans intervention.
  6. CodeÉcrire dans l'ERP et journaliser chaque étape
Exemple : traitement de factures fournisseurs. Le modèle n'intervient que là où il faut lire ou rédiger ; tout le reste est du code ordinaire, testable.

Le détail des étapes compte moins que trois propriétés.

  • La sortie du modèle est toujours structurée. Un texte libre est difficile à contrôler. Un schéma strict, avec des champs obligatoires, des types et des valeurs autorisées, transforme « est-ce correct ? » en un test que le code peut exécuter.
  • L’escalade fait partie de la conception. Une personne examine les cas que le système ne peut pas trancher : un contrôle en échec après une relance, un montant au-dessus d’un seuil, un fournisseur jamais vu. Les cas courants passent directement, et les équipes consacrent leur temps aux exceptions.
  • Chaque étape est journalisée. Quand quelque chose se passe mal, il faut savoir quelle étape a échoué, avec quelle entrée, et ce que le modèle a renvoyé. Sans cette trace, un agent ne peut être ni débogué, ni audité, ni amélioré.

Mesurer la tâche, pas l’étape

Comment savoir si tout cela fonctionne ?

La qualité d’un agent est généralement mesurée par réponse ou par étape. Mais ce n’est pas ce que vit l’entreprise. Ce qu’elle vit, c’est le taux de réussite par tâche.

Avant le déploiement, voici ce que je ferais :

  1. Constituer un ensemble de tâches réelles dont le bon résultat est connu.
  2. Mesurer combien le système en mène correctement de bout en bout.
  3. Mesurer combien il en escalade.
  4. Suivre les deux dans le temps.

Un taux d’escalade qui monte est souvent le premier signe que les données d’entrée ont changé.

Cette mesure sert aussi à décider. Imaginons qu’un nouveau modèle sorte avec une meilleure précision par étape. Est-ce que ça compte vraiment ? La mesure par tâche vous le dit. Imaginons qu’une étape échoue souvent. Faut-il améliorer le prompt, ajouter un contrôle ou basculer cette étape dans le code ? Là encore, vous le voyez.

Si vous ne mesurez qu’une chose, mesurez des tâches entières.


Par où commencer

Choisissez un workflow. Il doit être répétitif, avoir des bonnes réponses claires et prendre aujourd’hui un temps réel. Le tri des demandes entrantes, l’extraction de données depuis des documents ou le rapprochement d’enregistrements sont de bons exemples.

Ensuite :

  1. Cartographiez ses étapes.
  2. Décidez lesquelles ont vraiment besoin d’un modèle.
  3. Concevez les contrôles avant d’écrire le moindre prompt.

C’est tout. C’est moins magique qu’un agent autonome, mais ça marche.

Nos projets d’IA appliquée suivent exactement cette approche. Si vous avez un workflow en tête, décrivez-le-nous et nous vous aiderons à voir s’il s’y prête.

Quelque chose à améliorer ?

Faisons
mieux.