Repository navigation
03Mas
Nous adoptons ici une approche multi-agents avec des agents spécialistes : un agent chargé de l’orchestration délègue les opérations, d’autres agents exécutent les actions, et un agent critique valide le résultat. Ce pipeline peut être implémenté à l’aide de la bibliothèque LangGraph.
En partant de la requête de l’utilisateur, vous demandez à un agent orchestrateur de déterminer un plan de résolution.
Le diagramme ci-dessous illustre le plan de l’orchestrateur :
- l’orchestrateur reçoit la question de l’utilisateur et planifie les délégations ;
- le chercheur collecte les faits pertinents via les outils externes ;
- l’analyste raisonne sur ces faits pour construire une réponse ;
- le critique valide la réponse ou renvoie le chercheur en cas d’insuffisance ;
- le synthétiseur produit la réponse finale approuvée à destination de l’utilisateur.
Le premier Système Multi-Agents (SMA) est implémenté dans le fichier mas.py.
La structure de données AgentState représente l’état global du
système à la manière d’un modèle de « tableau noir » (blackboard).
Le SMA est composé de 5 agents spécialistes :
- l’orchestrateur décompose la question initiale en tâches pour les agents suivants ;
- le chercheur collecte des faits via DuckDuckGo et les soumet au LLM enrichi de ce contexte ;
- l’analyste raisonne sur ces faits pour produire une analyse approfondie ;
- Le critique évalue la qualité factuelle et la rigueur de
l’analyse, et retourne soit
APPROVEDsoitRETRYaccompagné d’instructions correctives ; - le synthétiseur produit la réponse finale structurée à destination de l’utilisateur.
La fonction de routage should_retry relance le processus ou demande
une synthèse selon la valeur retournée par l’agent critique. Le schéma
d’orchestration workflow est défini à l’aide de la bibliothèque
LangGraph.
Exécutez le premier système multi-agents (SMA) implémenté dans le fichier mas.py. Combien d’itérations sont déclenchées ?
Dans un second SMA, qui est défini dans le fichier
masScore.py,
la fonction should_retry est modifiée pour intégrer un score de
confiance numérique (0-10) plutôt qu’un APPROVED=/=RETRY binaire, et
le critique retourne ce score dans sa réponse. Quel score obtenez-vous ?
Dans un troisième SMA, qui est défini dans le fichier
masFactChecker.py,
un nœud FactChecker est intercalé entre Researcher et Analyst :
il extrait de 3 à 5 affirmations clés des recherches, vérifie
chacune d’elles par une nouvelle recherche DuckDuckGo et l’étiquette
CONFIRMED, UNCERTAIN ou REFUTED avant de transmettre ce rapport
à l’analyste. Exécutez ce troisième SMA et comparez
les résultats obtenus.
© 2026 Maxime MORGE, Wassila OUERDANE, Nicolas SABOURET