Introduction aux agents
Dans cette 2e partie, nous allons parler d'agents. Commençons avec le commencement (et une définition donnée par ChatGPT (mais validée par mes soins)) :
Un agent basé sur un LLM est un système autonome ou semi-autonome qui utilise un modèle de langage à grande échelle comme moteur central de raisonnement, de prise de décision, et de génération d’actions dans le but d’accomplir des tâches complexes dans un environnement donné.
Je pense que cette définition est suffisamment claire. Reprenons tout de même quelques éléments :
D'après cette définition, un agent est capable de "raisonner", très bien, mais encore faut-il se mettre d'accord sur la notion de raisonnement. Pas question ici de passer trop de temps sur cette notion, mais visiblement l'agent va être capable d'accomplir des "tâches complexes". Complexe à quel point ? C'est une bonne question ! Je suis désolé, mais je ne vais pas chercher à répondre à toutes ces questions, tout simplement parce que je n'ai pas vraiment de réponses à vous apporter. La seule chose que j'aimerais que vous reteniez, c'est que ces histoires de "raisonnement" et de "tâches complexes" prêtent à discussion, même dans le monde de la recherche, donc attention, gardez toujours cela à l'esprit quand on vous parle de l'intelligence d'un agent.
On parle aussi dans cette définition de l'autonomie (ou de semi-autonomie) d'un agent. Un agent est donc capable de décider seul, sans intervention humaine (ou avec une intervention limitée). Nous reviendrons là-dessus dans un prochain chapitre.
Autre point important, la fin de la définition "dans un environnement donné". Cela veut-il dire que l'agent à "conscience" de son environnement ? Cela serait possible si par exemple on parlait de robot (avec ses capteurs capables d'analyser l'environnement), mais ce n'est pas cela qui est évoqué ici. Je crois que parler "d'interaction avec son environnement" serait plus approprié. Pour mettre en place cette interaction, l'agent va être amené à utiliser des outils. Comme cette notion d'outils est fondamentale, nous aurons l'occasion de revenir dessus dans le chapitre 9.
Voici un petit exemple :
Prenons un agent "recette de cuisine" : Demande : "Trouve-moi la recette du meilleur gâteau au chocolat, calcule les quantités pour 12 personnes et ajoute les ingrédients à ma liste de courses en ligne." Voici toutes les étapes qui vont amener l'agent à accomplir sa mission :
- utilisation du LLM : Le LLM comprend qu'il y a 3 étapes. Il décide de commencer par la première.
- utilisation d'un outil : utilise l'outil Recherche Web avec la requête "meilleure recette gâteau chocolat bien notée".
- utilisation du LLM : Il reçoit plusieurs recettes et choisit celle qui a les meilleures critiques. La recette est pour 6 personnes.
- utilisation du LLM : Il voit que la prochaine étape est d'adapter les quantités. Il lit les ingrédients (ex: 100g de chocolat, 2 œufs).
- utilisation d'un outil : utilise l'outil Calculatrice pour multiplier chaque ingrédient par deux (100g * 2 = 200g, etc.).
- utilisation du LLM : Il obtient la liste des ingrédients pour 12 personnes et adapte la recette en conséquence
- utilisation du LLM : L'étape finale est d'ajouter ces ingrédients à la liste de courses.
- utilisation d'un outil : utilise l'outil API de la liste de courses pour ajouter "200g de chocolat", "4 œufs", etc., à votre logiciel de liste de courses.
- utilisation du LLM : la tâche est terminée. L'agent vous répond : "C'est fait ! J'ai trouvé une excellente recette, adapté les quantités et ajouté les ingrédients à votre liste."
Vous pouvez constater que notre agent est principalement composé de 2 choses : un LLM (le "cerveau" de l'agent) et une "caisse à outils". Dans cette caisse à outils nous allons trouver 3 outils : un outil pour faire des recherches sur le web, un outil pour faire des calculs (même si les LLM modernes sont capables d'effectuer des calculs simples par eux-mêmes, cela n'a pas toujours été le cas) et un outil qui va être capable d'interagir avec l'application qui gère votre liste de courses.
Voilà, ce chapitre d'introduction est terminé. Si la notion d'agent est encore un peu floue pour vous, pas d'inquiétude, tout devrait s'éclaircir dans les prochains chapitres.