Ce guide vous montre comment utiliser Weave pour surveiller et tracer des applications multi-agents CrewAI, y compris les Crews et les Flows.
CrewAI est un framework Python destiné à créer des agents d’IA autonomes. Il est indépendant de LangChain et des autres frameworks d’agents, et prend en charge deux abstractions : les Crews de haut niveau et les Flows de bas niveau.
Les applications CrewAI se composent souvent de plusieurs agents qui collaborent entre eux, ce qui rend essentiel de comprendre comment ils coopèrent et communiquent. Weave capture automatiquement les traces de vos applications CrewAI afin que vous puissiez surveiller et analyser les performances et les interactions de vos agents.
Les sections suivantes expliquent le traçage d’un Crew, le suivi de l’utilisation des outils, le traçage d’un Flow et l’encapsulation d’une fonction de garde-fou en tant qu’op Weave.
Pour exécuter cet exemple, installez CrewAI et Weave. Pour plus d’informations sur l’installation de CrewAI, voir le guide d’installation de CrewAI.
L’exemple suivant crée un Crew CrewAI et suit l’exécution à l’aide de Weave. Pour activer le traçage, appelez weave.init() au début de votre script. L’argument de weave.init() est le nom du projet dans lequel Weave journalise les traces.
Weave suit et consigne tous les appels effectués via la bibliothèque CrewAI, y compris les interactions entre agents, les exécutions de tâches et les appels LLM. Vous pouvez consulter les traces dans l’interface web de Weave.
CrewAI fournit plusieurs méthodes pour mieux contrôler le processus de kickoff : kickoff(), kickoff_for_each(), kickoff_async() et kickoff_for_each_async(). L’intégration prend en charge la journalisation des traces pour toutes ces méthodes.
Les outils CrewAI offrent aux agents des capacités telles que la recherche sur le Web, l’analyse de données, la collaboration et la délégation de tâches entre collègues. L’intégration en assure également le traçage.
L’exemple suivant améliore la qualité du rapport généré à partir de l’exemple précédent en donnant à l’agent accès à un outil capable d’effectuer des recherches sur Internet et de renvoyer les résultats les plus pertinents.
Commencez par installer la dépendance supplémentaire :
Cet exemple utilise SerperDevTool pour permettre à l’agent ‘Research Analyst’ d’effectuer des recherches d’informations pertinentes sur Internet. Pour plus d’informations sur cet outil et sur les exigences de l’API, voir la documentation de SerperDevTool.
Exécuter ce Crew avec un agent ayant accès à Internet produit un résultat plus pertinent. Weave trace automatiquement l’utilisation des outils, comme illustré dans l’image suivante.
L’intégration applique automatiquement un patch à tous les outils disponibles dans le dépôt crewAI-tools.
L’exemple suivant définit un Flow CrewAI et le trace avec Weave. Comme pour les Crews, appelez weave.init() avant de définir le Flow afin que Weave capture automatiquement le point d’entrée Flow.kickoff, ainsi que les décorateurs @start, @listen, @router, @or_ et @and_.
L’intégration applique automatiquement un patch au point d’entrée Flow.kickoff, ainsi que tous les décorateurs disponibles (@start, @listen, @router, @or_ et @and_).
Garde-fou Crew : suivez vos propres ops
Les garde-fous de tâche vous permettent de valider et de transformer les résultats d’une tâche avant que CrewAI ne les transmette à la suivante. Vous pouvez utiliser une fonction Python pour valider l’exécution de l’agent à la volée.
En décorant la fonction de garde-fou avec @weave.op, vous capturez ses entrées, ses sorties et la logique de l’application afin de pouvoir déboguer la manière dont les données sont validées par vos agents. Cela gère également automatiquement le versionnement du code pendant que vous expérimentez, en capturant des détails ad hoc qui n’ont pas encore été validés dans Git.
L’exemple suivant étend le Crew d’analyste de recherche et de rédacteur en ajoutant un garde-fou qui valide la longueur du rapport généré.
En décorant la fonction de garde-fou avec @weave.op, vous pouvez suivre les entrées et les sorties de cette fonction, ainsi que le temps d’exécution, les informations sur les tokens si la fonction utilise un LLM, la version du code, et bien plus encore.
Vous disposez maintenant d’une application CrewAI tracée avec Weave qui capture les interactions des agents, l’utilisation des outils, l’exécution des Flow et les validations des garde-fous. Pour suggérer des améliorations ou signaler des problèmes avec cette intégration, ouvrez une issue sur GitHub.
Pour en savoir plus sur la création de systèmes multi-agents avec CrewAI, consultez les exemples et la documentation de CrewAI.