Le pattern multi-agents : collaborer pour réussir
Bienvenue dans la dernière leçon de la série Agentic Patterns ! À ce stade, vous êtes déjà familiarisé avec l’Agent de Réflexion, les Outils, et la Technique ReAct. Mais vous êtes probablement curieux de connaître les frameworks comme CrewAI, AutoGen, ou OpenAI Swarm — ces outils géniaux pour construire des applications multi-agents.
Ces frameworks ne sont que des variantes du Multiagent Pattern, où les tâches sont décomposées en sous-tâches plus petites et traitées par des agents ayant des rôles spécifiques — comme un ingénieur logiciel, un chef de projet, etc.
Dans cette leçon, nous passons au niveau supérieur en construisant un framework multi-agents minimaliste de zéro.
C’est parti ! 🚀
Ceci est la quatrième leçon du cours Agentic Patterns from Scratch. Cette leçon s’appuie sur la théorie et le code abordés dans les précédentes, alors assurez-vous de les consulter si ce n’est pas déjà fait !
Un framework multi-agents minimaliste
Le framework que nous allons développer s’inspire de deux concepts fondamentaux de CrewAI : la Crew (l’équipage) et l’Agent.
Dans CrewAI, une Crew représente un groupe collaboratif d’agents travaillant à l’unisson pour accomplir un ensemble de tâches. Un Agent, quant à lui, représente l’unité autonome responsable de l’exécution de tâches spécifiques.
Introduction - CrewAI
Je me suis également inspiré de la philosophie de design d’Apache Airflow, particulièrement l’utilisation des opérateurs >> et << pour établir des dépendances entre les agents. Dans ce micro-framework CrewAI, les agents sont analogues aux Airflow Tasks, tandis que la Crew correspond à un Airflow DAG.
DAGs — Airflow Documentation
Commençons par la classe Agent 👇
La classe Agent
Tout d’abord, nous avons besoin d’une Classe Agent. Cette classe représentera un agent, intégrant la technique ReAct en interne (consultez la Leçon 3 pour voir cette technique en détail !).
Créons un exemple d’agent pour démontrer son fonctionnement.
Vous pouvez également équiper l’agent d’outils, comme nous l’avons fait dans la Leçon 2. Par exemple, construisons un outil qui écrit du texte dans un fichier CSV.
Comme vous pouvez l’imaginer, l’exécution de ce Tool Agent créera un nouveau fichier nommé tool_agent_example.txt dans le répertoire courant, contenant le texte “This is a Tool Agent”.
Maintenant que nous savons comment fonctionne la classe Agent, voyons comment définir les dépendances entre agents.
Définition des dépendances entre agents
Supposons que nous voulions définir deux agents, où le second dépend du premier.
Nous pouvons définir les dépendances en utilisant l’opérateur >>.
agent_1 >> agent_2Cela signifie que agent_2 dépend de agent_1. On peut alors vérifier les dépendances de chaque agent.
Désormais, si nous lançons agent_1, ses résultats seront ajoutés au contexte de agent_2. Ensuite, quand nous lancerons agent_2, il utilisera le contexte reçu de agent_1 pour générer sa sortie.
La Crew
Une fois les agents et leurs dépendances définis, la dernière pièce manquante est la Crew, c’est-à-dire l’objet session qui nous permettra d’orchestrer les agents.
Notre Crew s’occupera de lancer les agents dans le bon ordre, en appliquant un algorithme appelé Topological Sorting. Elle permet également de visualiser le graphe des dépendances.
Voyons la Crew en action :
Si nous voulons voir le graphe de dépendances, nous pouvons simplement lancer crew.plot(). Cette commande générera un diagramme comme celui-ci :
Ensuite, nous n’avons plus qu’à lancer la crew et attendre les résultats !
crew.run()Vous devriez voir une sortie comme celle-ci, où le Poet Agent génère un poème sur la vie, le Poem Translator Agent le traduit en espagnol, et enfin le Writer Agent écrit le poème traduit dans un fichier poem.txt !
Et voilà ! Nous avons réussi à mettre en place un framework multi-agents opérationnel ! Ça mérite bien un petit meme… 🤣
Pourquoi ça marche si bien ?
- Spécialisation : Chaque agent peut être “expert” dans une tâche très précise.
- Collaboration : Les agents partagent leur contexte pour construire une solution globale.
- Orchestration : La Crew gère la complexité de l’ordre d’exécution pour vous.
Ressources
- Article original : What is a Multiagent system?
- Vidéo YouTube couvrant le Multiagent Pattern
- GitHub de la série









