Agents IAGrands modèles de langageAgents IAGrands modèles de langage
Agents IA11 min de lecture

Agents ou workflows ?

Une façon pratique de distinguer les vrais agents des appels à des LLMs et des workflows pour aider les équipes à choisir le bon degré d’autonomie.

Agents ou workflows ?
Sommaire

À retenir

  • Un simple appel à l’API d’un LLM n’est pas un agent. Il répond, mais n’agit pas de façon indépendante et ne choisit pas sa trajectoire.
  • L’utilisation d’outils ne garantit toujours pas un comportement agentique si le système suit principalement des étapes codées en dur.
  • Si vous connaissez les étapes à l’avance, utilisez un workflow. Ajoutez un comportement agentique seulement lorsque le modèle doit réellement prendre une décision.

Regardez la vidéo !

Ce que la plupart des gens appellent des agents n’en sont pas. Je n’ai jamais vraiment aimé le terme « agent » jusqu’à la lecture de ce récent article d’Anthropic, avec lequel je suis entièrement d’accord et qui m’a montré ce que nous pouvons réellement appeler un agent. La vaste majorité des systèmes sont simplement des appels à l’API d’un modèle de langage. C’est tout. Quelques lignes de code et un prompt.

Exemple visuel tiré de « Agents ou workflows ? »

Ce système ne peut pas agir de façon indépendante, prendre des décisions ou faire quoi que ce soit. Il répond simplement à vos utilisateurs. Pourtant, nous appelons ces systèmes des agents. Mais ce n’est pas ce dont nous avons besoin. Nous avons besoin de vrais agents. Alors, qu’est-ce qu’un vrai agent ?

Reprenons depuis le début. Nous avons un LLM auquel nous accédons de façon programmatique, soit par notre API, soit localement sur votre propre serveur ou machine. Et ensuite ? Nous avons besoin qu’il agisse ou fasse un peu plus que simplement générer du texte. Comment ? En lui donnant accès à des outils et à leur documentation. Nous pouvons par exemple lui permettre d’exécuter des requêtes SQL dans une base de données pour accéder à des connaissances privées. Concrètement, nous codons nous-mêmes tout le système pour que le LLM génère les requêtes SQL, puis notre code envoie et exécute automatiquement la requête dans la base de données. Nous renvoyons ensuite les outputs au modèle pour qu’il les utilise dans sa réponse à l’utilisateur.

Exemple visuel tiré de « Agents ou workflows ? »

Voilà ce qu’une autre grande proportion des gens appellent des agents. Ce n’en sont toujours pas. Il s’agit simplement d’un processus codé en dur ou comportant de petites variations, comme les routeurs dont nous parlons dans notre cours. Ce processus est évidemment utile et extrêmement puissant. Mais il ne s’agit pas d’un être intelligent ou de quelque chose d’indépendant. Ce n’est pas un « agent » qui agit en notre nom. C’est simplement un programme que nous avons créé et que nous contrôlons. Ou, pour reprendre le terme d’Anthropic, un workflow.

Ne vous méprenez pas. Un workflow est sacrément utile. Il peut aussi devenir assez complexe et avancé. Nous pouvons implémenter des routeurs intelligents pour décider quel outil utiliser et quand, leur donner accès à plusieurs bases de données et leur faire choisir laquelle interroger et à quel moment, exécuter des tâches par des outils d’action avec du code, et bien plus. Vous pouvez aussi créer autant de workflows que vous le souhaitez. Je veux simplement souligner à quel point ils diffèrent d’un véritable agent. Le type d’agent dont nous rêvons et dont Ilya a parlé dans une récente présentation à NeurIPS…

La prochaine question naturelle est : qu’est-ce qu’un « vrai agent » exactement ? En termes simples, un vrai agent est quelque chose qui fonctionne de façon indépendante. Plus précisément, il peut employer des processus semblables à notre pensée du système 2, donc réellement raisonner, réfléchir et reconnaître ses lacunes. C’est presque le contraire de notre pensée du système 1, qui est rapide, automatique et fondée uniquement sur des patterns et des réponses apprises, comme le réflexe d’attraper un verre qui tombe. La pensée du système 2 pourrait plutôt décider s’il faut empêcher le verre de tomber dès le départ, peut-être en utilisant un outil à proximité comme un plateau ou en déplaçant un objet fragile. Un vrai agent ne saurait donc pas seulement utiliser des outils. Il déciderait aussi quand et pourquoi les utiliser à partir d’un raisonnement délibéré. Les nouvelles séries o1 et o3 d’OpenAI illustrent cette transition. Elles commencent à explorer des approches semblables au système 2 et essaient de faire « raisonner » les modèles en les faisant d’abord discuter intérieurement avec eux-mêmes, ce qui imite une approche humaine du raisonnement avant de parler. Les modèles de langage traditionnels reposent sur la prédiction du prochain mot, ou du prochain token. Il s’agit essentiellement d’un mécanisme de pensée instantanée du système 1, uniquement fondé sur ce que le modèle connaît et a appris pour deviner la prochaine action immédiate sans aucun plan. Ces nouveaux modèles cherchent plutôt à intégrer des capacités de raisonnement plus profondes et se rapprochent de la pensée délibérée et réfléchie associée au système 2. Une capacité nécessaire à un véritable agent. Mais cette parenthèse sur Kahneman nous éloigne un peu trop du sujet. Je vais préciser ce que j’entends par vrai agent en revenant aux workflows et à ce qu’ils sont réellement….

Exemple visuel tiré de « Agents ou workflows ? »

Exemple visuel tiré de « Agents ou workflows ? »

Les workflows suivent des lignes de code et des intégrations précises et, sauf pour les outputs du LLM, restent assez prévisibles. Ils sont responsables de la plupart des applications avancées que vous voyez et utilisez aujourd’hui, et ce n’est pas un hasard. Ils sont cohérents, plus prévisibles et incroyablement puissants lorsqu’ils sont bien exploités. Comme l’a écrit Anthropic : « Les workflows sont des systèmes où les LLMs et les outils sont orchestrés par des chemins de code prédéfinis. »

Voici à quoi ressemble un workflow. Nous avons notre LLM, certains outils ou une mémoire où récupérer du contexte supplémentaire, quelques itérations avec plusieurs appels au LLM, puis un output renvoyé à l’utilisateur. Comme nous l’avons vu, lorsqu’un système doit parfois accomplir une tâche et parfois une autre selon certaines conditions, le workflow peut utiliser un routeur assorti de différentes conditions pour choisir le bon outil ou le bon prompt. Plusieurs éléments peuvent même fonctionner en parallèle pour gagner en efficacité. Mieux encore, nous pouvons avoir une sorte de modèle principal, appelé orchestrateur, qui choisit tous les autres modèles à appeler pour des tâches précises, puis synthétise leurs résultats. Reprenons notre exemple SQL : l’orchestrateur principal reçoit la requête de l’utilisateur et peut décider s’il doit interroger le dataset. Si oui, il demande à l’agent SQL de générer la requête SQL, interroge le dataset, récupère le résultat et synthétise la réponse finale avec toute l’information fournie. C’est très semblable à l’interface de ChatGPT, qui exploite parfois Canvas ou un interpréteur de code pour mieux répondre à vos besoins. Même si le système est complexe et avancé, tout reste codé en dur. Si vous savez ce que votre système doit faire, il vous faut un workflow, peu importe sa sophistication.

Exemple visuel tiré de « Agents ou workflows ? »

Par exemple, ce que CrewAI appelle des agents fonctionne comme des workflows prédéfinis affectés à des tâches précises, tandis qu’Anthropic imagine un agent comme un seul système capable de raisonner de façon indépendante sur n’importe quelle tâche. Les deux approches ont leur valeur : l’une est prévisible et intuitive, tandis que l’autre vise la flexibilité et l’adaptabilité. Cette dernière reste toutefois beaucoup plus difficile à réaliser avec les modèles actuels et correspond mieux, à mon avis, à la définition d’un agent.

Revenons donc à ces « vrais » agents…

Les agents « sont des systèmes dans lesquels les LLMs dirigent dynamiquement leurs propres processus et l’utilisation de leurs outils, tout en gardant le contrôle sur la façon dont ils accomplissent leurs tâches ». C’est ce qu’a écrit Anthropic, et je suis d’accord. Les vrais agents établissent un plan en échangeant avec vous et en comprenant vos besoins. Ils itèrent à un niveau de « raisonnement » pour choisir les étapes qui résoudront le problème ou la requête. Idéalement, l’agent vous demandera même plus d’information ou des précisions lorsqu’il en a besoin, plutôt que d’halluciner comme les LLMs actuels. Leur construction peut tout de même rester simple. Ils exigent un LLM extrêmement puissant, meilleur que ceux dont nous disposons aujourd’hui, et un environnement dans lequel fonctionner, comme une discussion avec vous, ainsi que des capacités supplémentaires telles que des outils. Ils peuvent alors utiliser eux-mêmes ces outils lorsqu’ils le jugent nécessaire et itérer. En bref, vous pouvez voir les agents comme des systèmes qui remplacent presque une personne ou un rôle, tandis qu’un workflow remplace une tâche accomplie par cette personne. Il n’existe aucun chemin codé en dur. Le système agentique prend ses propres décisions. Les agents sont des systèmes beaucoup plus avancés et complexes que nous n’avons toujours pas réussi à construire avec beaucoup de succès.

Exemple visuel tiré de « Agents ou workflows ? »

Cette indépendance et la confiance accordée à votre système le rendent évidemment plus susceptible d’échouer, plus coûteux à exécuter et à utiliser et plus lent. Pire encore, les résultats ne sont actuellement pas très impressionnants. Lorsqu’ils le sont, ils restent complètement incohérents.

Quel est donc un bon exemple de véritable agent ? Deux exemples me viennent rapidement à l’esprit : Devin et l’utilisation de l’ordinateur par Anthropic. Pour l’instant, ils restent toutefois des agents décevants.

Si Devin vous intéresse, Hamel Husain a publié un excellent article de blogue sur son expérience. Devin offre un aperçu fascinant des promesses et des défis des systèmes fondés sur des agents. Il est conçu comme un ingénieur logiciel entièrement autonome, possède son propre environnement informatique et gère indépendamment des tâches comme les intégrations d’API et la résolution de problèmes en temps réel. Les tests approfondis de Hamel ont toutefois montré que Devin excellait dans les tâches simples et bien définies, celles que nous accomplissons facilement, mais avait du mal avec les tâches complexes ou ambiguës. Il proposait souvent des solutions trop compliquées ou suivait des voies irréalisables, tandis que les workflows avancés comme Cursor rencontrent moins de problèmes. Ces limites illustrent les défis plus larges de la construction d’agents fiables et conscients du contexte avec les LLMs actuels, même lorsqu’on lève des millions.

Dans ce cas, Devin correspond davantage à la vision d’Anthropic et illustre les promesses et les défis d’un agent de raisonnement. Il peut s’attaquer de façon autonome à des problèmes complexes, mais manque de cohérence. À l’inverse, les workflows inspirés de CrewAI sont plus simples et plus robustes pour les tâches précises, mais n’offrent pas la flexibilité de vrais systèmes de raisonnement.

Nous avons aussi la tentative ambitieuse d’Anthropic de créer un agent autonome qui accède à notre ordinateur. Elle a suscité énormément de battage médiatique, mais est depuis tombée dans l’oubli. Le système était indéniablement complexe et possédait les caractéristiques d’un vrai agent : prise de décision autonome, utilisation dynamique des outils et capacité d’interagir avec son environnement. Son objectif était aussi de remplacer n’importe qui devant un ordinateur. Assez prometteur, ou effrayant ! Son déclin nous rappelle néanmoins les défis de la création de systèmes agentiques pratiques qui non seulement fonctionnent comme prévu, mais le font systématiquement.

En bref, les LLMs ne sont simplement pas encore prêts à devenir de vrais agents. Mais cela pourrait bientôt changer.

Pour l’instant, comme pour tout ce qui touche au code, nous devrions toujours chercher la solution la plus simple possible à notre problème. Premièrement, nous pouvons facilement itérer et déboguer. De simples appels à des LLMs constituent souvent la meilleure option. C’est aussi souvent ce que les gens et les entreprises vendent comme un « agent », mais vous ne vous laisserez plus avoir. Vous voudrez peut-être compléter les LLMs avec des connaissances externes grâce à des systèmes de recherche d’information ou à un léger fine-tuning. Mais vous devriez réserver l’argent et le temps consacrés aux vrais agents pour les problèmes réellement complexes que nous ne pouvons pas résoudre autrement.

J’espère que cet article vous a aidé à comprendre la différence entre les workflows et un vrai agent, ainsi que les situations où utiliser chacun. Si vous l’avez trouvé utile, partagez-le avec vos amis dans la communauté de l’IA et n’oubliez pas de vous abonner pour recevoir plus de contenu approfondi sur l’IA !

Merci d’avoir lu !

Liens :

Article d’Anthropic sur les agents : https://www.anthropic.com/research/building-effective-agents

Utilisation de l’ordinateur par Anthropic : https://www.anthropic.com/news/3-5-models-and-computer-use

Journal de Hamel Husain sur Devin : https://www.answer.ai/posts/2025-01-08-devin.html

Discussion

Commentaires

Chargement

Aucun compte requis. Votre nom et votre commentaire seront publics, alors n'incluez pas de renseignements privés. Consultez la page de confidentialité pour les détails.

Continuez à apprendre

Vous voulez le côté pratique de l'IA, sans le brouillard marketing ?

Je partage ce qui est utile sur YouTube, Substack et dans mes guides d'ingénierie IA.

FAQ

Qu’est-ce qui fait d’un système un véritable agent IA ?

Un véritable agent possède assez d’autonomie pour choisir la prochaine action qui le rapproche d’un objectif, généralement avec un accès à des outils et au feedback de son environnement.

Quand un workflow est-il préférable à un agent ?

Un workflow convient mieux lorsque les étapes sont prévisibles. Il est plus facile à tester, coûte moins cher à contrôler et s’avère généralement plus fiable.

Quelle erreur de terminologie faisons-nous ici ?

L’erreur consiste à appeler chaque fonctionnalité propulsée par un LLM un agent, ce qui cache le véritable degré d’autonomie du système.

L’utilisation d’outils transforme-t-elle automatiquement un LLM en agent ?

Non. L’accès à des outils ne suffit pas. Un agent doit décider quand et pourquoi les utiliser pour poursuivre un objectif avec une autonomie réelle.

Pourquoi commencer par l’architecture la plus simple possible ?

Un workflow simple est plus facile à tester et à contrôler. Vous pouvez ajouter de l’autonomie plus tard, seulement là où les étapes fixes ne résolvent plus le véritable problème.

Un workflow peut-il tout de même utiliser des routeurs et plusieurs modèles ?

Oui. Si les développeurs définissent à l’avance l’orchestration et les branches, le système reste un workflow même lorsqu’il fait intervenir plusieurs modèles et outils.