Passer au contenu principal
Ceci est un notebook interactif. Vous pouvez l’exécuter localement ou utiliser les liens suivants :
Ce tutoriel montre comment créer un système multi-agent qui utilise la fonctionnalité de sorties structurées d’OpenAI, ainsi que comment tracer les interactions entre agents avec Weave. Au terme de ce tutoriel, vous disposerez d’un pipeline d’analyse de données à quatre agents, dont les entrées et sorties intermédiaires sont visibles dans l’interface Weave. OpenAI a lancé Structured Outputs pour que le modèle génère toujours des réponses conformes au schéma JSON que vous fournissez, sans avoir recours à des prompts formulés de manière très directive. Avec Structured Outputs, vous n’avez pas besoin de valider ou de relancer les réponses mal formatées. En utilisant le paramètre strict: true, vous pouvez garantir que la réponse respecte le schéma fourni. Dans un système multi-agent, les sorties structurées produisent des données cohérentes, traitées de façon prévisible d’un agent à l’autre. Elles prennent également en charge les refus explicites et éliminent la nécessité de relancer ou de valider les réponses.
Source : Ce cookbook est basé sur un exemple de code des sorties structurées d’OpenAI, avec quelques modifications pour améliorer la visualisation avec Weave.

Installation des dépendances

Commencez par installer les bibliothèques dont dépend ce tutoriel. Ce tutoriel utilise les bibliothèques suivantes :
  • OpenAI pour créer le système multi-agent.
  • Weave pour suivre le flux de travail avec les LLM et évaluer les stratégies de prompt.
Ensuite, configurez les identifiants et initialisez Weave afin que les traces soient consignées dans votre projet W&B. Définissez WANDB_API_KEY dans votre environnement afin de pouvoir vous connecter avec wandb.login(). Fournissez-le à Colab en tant que secret. Définissez le projet dans W&B dans lequel vous souhaitez consigner les traces dans name_of_wandb_project.
name_of_wandb_project peut aussi être au format [YOUR-TEAM]/[YOUR-PROJECT] pour préciser l’équipe dans laquelle consigner les traces.
Nous récupérons ensuite un client Weave en appelant weave.init(). Puisque ce tutoriel utilise l’API OpenAI, vous avez également besoin d’une clé API OpenAI. Vous pouvez vous inscrire sur la plateforme OpenAI pour obtenir votre propre clé API. Fournissez-la aussi à Colab en tant que secret.

Configurer les agents

Une fois Weave initialisé, définissez les agents qui composent le système. Le cas d’usage de ce tutoriel est une tâche d’analyse de données. Commencez par configurer le système à quatre agents :
  • Agent de triage : décide quels agents appeler.
  • Agent de prétraitement des données : prépare les données pour l’analyse, par exemple en les nettoyant.
  • Agent d’analyse des données : effectue l’analyse des données.
  • Agent de visualisation des données : visualise les résultats de l’analyse afin d’en extraire des enseignements.
Commencez par définir les prompts système pour chacun de ces agents. Ces prompts définissent le rôle de chaque agent et les outils qu’il est autorisé à appeler.
Ensuite, définissez les outils de chaque agent. À l’exception de l’agent de triage, chaque agent dispose d’outils spécifiques à son rôle : Agent de prétraitement des données : nettoyer les données, transformer les données et agréger les données. Agent d’analyse des données : analyse statistique, analyse de corrélation et analyse de régression. Agent de visualisation des données : créer un graphique à barres, créer un graphique en courbes et créer un diagramme circulaire.

Activer le suivi multi-agent avec Weave

Une fois les agents et leurs outils définis, l’étape suivante consiste à les faire fonctionner ensemble et à activer le tracing de Weave. Écrivez la logique nécessaire pour :
  • Gérer la transmission de la requête de l’utilisateur au système multi-agent.
  • Gérer le fonctionnement interne du système multi-agent.
  • Exécuter les appels d’outil.
À partir de la requête de l’utilisateur, vous pouvez déduire que les outils à appeler sont clean_data, start_analysis et use_line_chart. Commencez par définir la fonction d’exécution chargée d’exécuter les appels d’outils. En décorant les fonctions Python avec @weave.op(), vous pouvez consigner et déboguer les entrées, les sorties et les traces du modèle de langage. Un système multi-agent implique de nombreuses fonctions, mais il suffit d’ajouter @weave.op() au-dessus de chacune d’elles.
Ensuite, créez les gestionnaires d’outils pour chacun des sous-agents. Chacun reçoit un prompt et un ensemble d’outils qui lui sont propres, transmis au modèle. Le résultat est ensuite transmis à une fonction d’exécution qui exécute les appels d’outil.
Enfin, créez l’outil principal qui gère le traitement de la requête de l’utilisateur. Cette fonction prend la requête de l’utilisateur, obtient une réponse du modèle, puis la transmet aux autres agents pour qu’ils l’exécutent.

Exécutez le système multi-agent et visualisez-le dans Weave

Une fois tous les agents, outils et gestionnaires en place, le système est prêt à être exécuté. Enfin, exécutez la fonction principale handle_user_message à partir de l’entrée de l’utilisateur’ et observez les résultats.
Lorsque vous cliquez sur l’URL Weave, vous pouvez voir la trace d’exécution. Sur la page Traces, vous pouvez consulter l’entrée et la sortie. Pour plus de clarté, l’illustration inclut des captures d’écran des résultats affichés lorsque vous cliquez sur chaque sortie. Weave s’intègre à l’API OpenAI et calcule automatiquement les coûts. Le coût et la latence sont également affichés pour chaque trace. Page Weave Traces montrant l’exécution multi-agent avec le coût et la latence Cliquez sur une ligne pour voir les processus intermédiaires exécutés au sein du système multi-agent. Par exemple, l’entrée et la sortie de analysis_agent apparaissent sous forme de sorties structurées. Les sorties structurées d’OpenAI aident les agents à collaborer, mais à mesure que le système gagne en complexité, le format de ces interactions devient plus difficile à suivre. Weave vous permet d’inspecter en détail ces processus intermédiaires ainsi que leurs entrées et sorties.
Détail d’une trace Weave montrant l’entrée et la sortie structurées de l’agent d’analyse
Examinez de plus près comment le tracing est géré dans Weave.

Conclusion

Dans ce tutoriel, vous avez appris à développer un système multi-agent à l’aide des sorties structurées d’OpenAI et de Weave pour suivre les entrées, les sorties finales et les formats de sortie intermédiaires. Vous disposez maintenant d’un exemple fonctionnel que vous pouvez enrichir avec des agents, des outils ou des schémas de réponse structurée supplémentaires.