CrewAI : Framework de pointe pour orchestrer des agents d’IA autonomes de jeu de rôle. En favorisant l'intelligence collaborative, CrewAI permet aux agents de travailler ensemble de manière transparente, en abordant des tâches complexes.
Page d'accueil | Documents | Discutez avec Docs | Exemples | Discours
Pourquoi CrewAI ?
Commencer
Principales fonctionnalités
Exemples
Tutoriel rapide
Rédiger des descriptions de poste
Planificateur de voyage
Analyse des stocks
Connecter votre équipe à un modèle
Comment CrewAI se compare
Contribution
Télémétrie
Licence
La puissance de la collaboration par l’IA a trop à offrir. CrewAI est conçu pour permettre aux agents IA d'assumer des rôles, de partager des objectifs et d'opérer au sein d'une unité cohérente, un peu comme un équipage bien huilé. Que vous construisiez une plateforme d'assistant intelligent, un ensemble de service client automatisé ou une équipe de recherche multi-agents, CrewAI constitue l'épine dorsale d'interactions multi-agents sophistiquées.
Pour démarrer avec CrewAI, suivez ces étapes simples :
Assurez-vous que Python >=3.10 <=3.13 est installé sur votre système. CrewAI utilise UV pour la gestion des dépendances et la gestion des packages, offrant une expérience de configuration et d'exécution transparente.
Tout d’abord, installez CrewAI :
pip installer l'équipage
Si vous souhaitez installer le package « crewai » avec ses fonctionnalités facultatives qui incluent des outils supplémentaires pour les agents, vous pouvez le faire en utilisant la commande suivante :
pip install 'crewai[outils]'
La commande ci-dessus installe le package de base et ajoute également des composants supplémentaires qui nécessitent plus de dépendances pour fonctionner.
Pour créer un nouveau projet CrewAI, exécutez la commande CLI (Command Line Interface) suivante :
Crewai crée une équipe <nom_projet>
Cette commande crée un nouveau dossier de projet avec la structure suivante :
my_project/ ├── .gitignore ├── pyproject.toml ├── README.md ├── .env └── src/ └── my_project/ ├── __init__.py ├── main.py ├── crew.py ├── tools/ │ ├── custom_tool.py │ └── __init__.py └── config/ ├── agents.yaml └── tasks.yaml
Vous pouvez maintenant commencer à développer votre équipe en éditant les fichiers dans le dossier src/my_project
. Le fichier main.py
est le point d'entrée du projet, le fichier crew.py
est l'endroit où vous définissez votre équipe, le fichier agents.yaml
est l'endroit où vous définissez vos agents et le fichier tasks.yaml
est l'endroit où vous définissez vos tâches.
Modifiez src/my_project/config/agents.yaml
pour définir vos agents.
Modifiez src/my_project/config/tasks.yaml
pour définir vos tâches.
Modifiez src/my_project/crew.py
pour ajouter votre propre logique, vos outils et vos arguments spécifiques.
Modifiez src/my_project/main.py
pour ajouter des entrées personnalisées pour vos agents et tâches.
Ajoutez vos variables d'environnement dans le fichier .env
.
Instituez votre équipage :
Crewai crée le dernier développement de l'équipage
Modifiez les fichiers si nécessaire pour les adapter à votre cas d'utilisation :
agents.yaml
# src/my_project/config/agents.yamlresearcher : rôle : > {topic} Objectif du chercheur principal en données : > Découvrez les développements de pointe dans le contexte de {topic} : > Vous êtes un chercheur chevronné avec le don de découvrir les derniers développements dans {sujet}. Reconnu pour votre capacité à trouver l’information la plus pertinente et à la présenter de manière claire et concise. reporting_analyst : rôle : > {sujet} Objectif de l'analyste de reporting : > Créer des rapports détaillés basés sur l'analyse des données de {sujet} et les résultats de la recherche : > Vous êtes un analyste méticuleux avec un sens aigu du détail. Vous êtes reconnu pour votre capacité à transformer des données complexes en rapports clairs et concis, permettant ainsi aux autres de comprendre et d'agir facilement en fonction des informations que vous fournissez.
tâches.yaml
# src/my_project/config/tasks.yamlresearch_task : description : > Effectuez une recherche approfondie sur {sujet} Assurez-vous de trouver toute information intéressante et pertinente étant donné que l'année en cours est 2024. Expected_output : > Une liste avec 10 puces des plus informations pertinentes sur l'agent {sujet} : chercheurreporting_task : description : > Examinez le contexte que vous avez obtenu et développez chaque sujet dans une section complète pour un rapport. Assurez-vous que le rapport est détaillé et contient toutes les informations pertinentes. Expect_output : > Un rapport complet avec les principaux sujets, chacun avec une section complète d'informations. Formaté en démarque sans agent '```' : reporting_analyst fichier_de sortie : rapport.md
équipage.py
# src/my_project/crew.pyfrom crewai import Agent, Crew, Process, Taskfrom crewai.project import CrewBase, agent, crew, taskfrom crewai_tools import SerperDevTool@CrewBaseclass LatestAiDevelopmentCrew(): """LatestAiDevelopment crew"""@agentdef chercheur (self ) -> Agent : renvoyer l'agent ( config=self.agents_config['researcher'], verbeux=Vrai, outils=[SerperDevTool()] ) @agentdef reporting_analyst(self) -> Agent : return Agent( config=self.agents_config['reporting_analyst'], verbose=True ) @taskdef research_task(self) -> Tâche : return Task( config=self.tasks_config['research_task'], ) @taskdef reporting_task(self) -> Tâche : return Task( config=self.tasks_config['reporting_task'], output_file='report.md' ) @crewdef crew(self) -> Crew : """Crée l'équipe LatestAiDevelopment"""return Crew( agents=self.agents, # Créé automatiquement par l'@agent decoratortasks=self.tasks, # Créé automatiquement par la @task decoratorprocess=Process.sequential, verbose=True, )
main.py
#!/usr/bin/env python# src/my_project/main.pyimport sysfrom last_ai_development.crew import LatestAiDevelopmentCrewdef run():""" Exécuter l'équipe. """inputs = {'topic': 'AI Agents'}LatestAiDevelopmentCrew ().crew().kickoff(entrées=entrées)
Avant d'exécuter votre équipe, assurez-vous que les clés suivantes sont définies comme variables d'environnement dans votre fichier .env
:
Une clé API OpenAI (ou autre clé API LLM) : OPENAI_API_KEY=sk-...
Une clé API Serper.dev : SERPER_API_KEY=YOUR_KEY_HERE
Verrouillez les dépendances et installez-les à l'aide de la commande CLI, mais accédez d'abord au répertoire de votre projet :
cd mon_projet installation de Crewai (facultatif)
Pour exécuter votre équipe, exécutez la commande suivante à la racine de votre projet :
course d'équipage
ou
python src/mon_projet/main.py
Si une erreur se produit en raison de l'utilisation de la poésie, veuillez exécuter la commande suivante pour mettre à jour votre package Crewai :
mise à jour de l'équipage
Vous devriez voir le résultat dans la console et le fichier report.md
doit être créé à la racine de votre projet avec le rapport final complet.
En plus du processus séquentiel, vous pouvez utiliser le processus hiérarchique, qui affecte automatiquement un responsable à l'équipe définie pour coordonner correctement la planification et l'exécution des tâches par délégation et validation des résultats. En savoir plus sur les processus ici.
Conception d'agents basés sur les rôles : personnalisez les agents avec des rôles, des objectifs et des outils spécifiques.
Délégation autonome entre agents : les agents peuvent déléguer de manière autonome des tâches et se renseigner entre eux, améliorant ainsi l'efficacité de la résolution des problèmes.
Gestion flexible des tâches : définissez des tâches avec des outils personnalisables et attribuez-les aux agents de manière dynamique.
Piloté par les processus : ne prend actuellement en charge que l'exécution de tâches sequential
et les processus hierarchical
, mais des processus plus complexes, tels que consensuels et autonomes, sont en cours d'élaboration.
Enregistrer la sortie sous forme de fichier : enregistrez la sortie des tâches individuelles sous forme de fichier afin de pouvoir l'utiliser ultérieurement.
Analyser la sortie en tant que Pydantic ou Json : analysez la sortie de tâches individuelles en tant que modèle Pydantic ou en Json si vous le souhaitez.
Fonctionne avec des modèles Open Source : gérez votre équipe à l'aide d'Open AI ou de modèles open source. Reportez-vous à la page Connecter CrewAI aux LLM pour plus de détails sur la configuration des connexions de vos agents aux modèles, même ceux exécutés localement !
Vous pouvez tester différents exemples réels d'équipes d'IA dans le référentiel CrewAI-examples :
Générateur de pages de destination
Avoir une contribution humaine à l'exécution
Planificateur de voyage
Analyse des stocks
Consultez le code de cet exemple ou regardez une vidéo ci-dessous :
Consultez le code de cet exemple ou regardez une vidéo ci-dessous :
Consultez le code de cet exemple ou regardez une vidéo ci-dessous :
CrewAI prend en charge l'utilisation de divers LLM via une variété d'options de connexion. Par défaut, vos agents utiliseront l'API OpenAI lors de l'interrogation du modèle. Cependant, il existe plusieurs autres façons de permettre à vos agents de se connecter aux modèles. Par exemple, vous pouvez configurer vos agents pour utiliser un modèle local via l'outil Ollama.
Veuillez vous référer à la page Connecter CrewAI aux LLM pour plus de détails sur la configuration des connexions de vos agents aux modèles.
L'avantage de CrewAI : CrewAI est conçu en pensant à la production. Il offre la flexibilité des agents conversationnels d'Autogen et l'approche de processus structuré de ChatDev, mais sans la rigidité. Les processus de CrewAI sont conçus pour être dynamiques et adaptables, s'intégrant parfaitement aux flux de développement et de production.
Autogen : Bien qu'Autogen réussisse à créer des agents conversationnels capables de travailler ensemble, il lui manque un concept inhérent de processus. Dans Autogen, l'orchestration des interactions des agents nécessite une programmation supplémentaire, qui peut devenir complexe et fastidieuse à mesure que l'ampleur des tâches augmente.
ChatDev : ChatDev a introduit l'idée de processus dans le domaine des agents IA, mais sa mise en œuvre est assez rigide. Les personnalisations dans ChatDev sont limitées et ne sont pas adaptées aux environnements de production, ce qui peut entraver l'évolutivité et la flexibilité des applications du monde réel.
CrewAI est open source et nous apprécions les contributions. Si vous souhaitez contribuer, veuillez :
Forkez le référentiel.
Créez une nouvelle branche pour votre fonctionnalité.
Ajoutez votre fonctionnalité ou amélioration.
Envoyez une pull request.
Nous apprécions votre contribution !
verrouillage UV synchronisation UV
uv venv
installation préalable à la validation
uv exécutez pytest .
uvx mypy
construction UV
pip install dist/*.tar.gz
CrewAI utilise la télémétrie anonyme pour collecter des données d'utilisation dans le but principal de nous aider à améliorer la bibliothèque en concentrant nos efforts sur les fonctionnalités, intégrations et outils les plus utilisés.
Il est essentiel de comprendre qu'AUCUNE donnée n'est collectée concernant les invites, les descriptions de tâches, les antécédents ou les objectifs des agents, l'utilisation des outils, les appels API, les réponses, les données traitées par les agents, ou les secrets et variables d'environnement, à l'exception des conditions mentionnées. . Lorsque la fonctionnalité share_crew
est activée, des données détaillées, notamment des descriptions de tâches, des antécédents ou des objectifs des agents, ainsi que d'autres attributs spécifiques, sont collectées pour fournir des informations plus approfondies tout en respectant la confidentialité des utilisateurs. Nous ne proposons pas de moyen de le désactiver pour le moment, mais nous le ferons à l'avenir.
Les données collectées comprennent :
Version de CrewAI
Nous pouvons ainsi comprendre combien d'utilisateurs utilisent la dernière version
Version de Python
Nous pouvons donc décider des versions à mieux prendre en charge
Système d'exploitation général (par exemple nombre de processeurs, macOS/Windows/Linux)
Nous savons donc sur quel système d'exploitation nous devrions nous concentrer et si nous pouvons créer des fonctionnalités spécifiques liées au système d'exploitation.
Nombre d'agents et de tâches dans une équipe
Nous veillons donc à tester en interne avec des cas d'utilisation similaires et à informer les gens sur les meilleures pratiques.
Processus d'équipage utilisé
Comprendre où nous devons concentrer nos efforts
Si les agents utilisent de la mémoire ou autorisent la délégation
Comprendre si nous avons amélioré les fonctionnalités ou peut-être même les avons supprimées
Si les tâches sont exécutées en parallèle ou séquentiellement
Comprendre si nous devrions nous concentrer davantage sur l'exécution parallèle
Modèle de langage utilisé
Prise en charge améliorée sur les langues les plus utilisées
Rôles des agents dans un équipage
Comprendre les cas d'utilisation de haut niveau afin que nous puissions créer de meilleurs outils, intégrations et exemples à ce sujet
Noms d'outils disponibles
Comprendre parmi les outils accessibles au public, lesquels sont les plus utilisés afin que nous puissions les améliorer
Les utilisateurs peuvent opter pour Further Telemetry, en partageant les données de télémétrie complètes en définissant l'attribut share_crew
sur True
sur leurs équipages. L'activation share_crew
entraîne la collecte de données détaillées sur l'équipage et l'exécution des tâches, notamment goal
, backstory
, context
et output
des tâches. Cela permet d'avoir un aperçu plus approfondi des modèles d'utilisation tout en respectant le choix de partage de l'utilisateur.
CrewAI est publié sous la licence MIT.
R : CrewAI est un cadre de pointe pour orchestrer des agents d’IA autonomes de jeu de rôle. Il permet aux agents de travailler ensemble de manière transparente, en abordant des tâches complexes grâce à l'intelligence collaborative.
R : Vous pouvez installer CrewAI en utilisant pip :
pip installer l'équipage
Pour des outils supplémentaires, utilisez :
pip install 'crewai[outils]'
R : Oui, CrewAI prend en charge divers LLM, y compris les modèles locaux. Vous pouvez configurer vos agents pour utiliser des modèles locaux via des outils comme Ollama & LM Studio. Consultez la documentation des connexions LLM pour plus de détails.
R : Les fonctionnalités clés incluent la conception d'agents basés sur les rôles, la délégation autonome entre agents, la gestion flexible des tâches, l'exécution pilotée par les processus, l'enregistrement des résultats sous forme de fichiers et la compatibilité avec les modèles open source et propriétaires.
R : CrewAI est conçu pour la production, offrant une flexibilité similaire aux agents conversationnels et aux processus structurés d'Autogen comme ChatDev, mais avec plus d'adaptabilité aux applications du monde réel.
R : Oui, CrewAI est open source et accepte les contributions de la communauté.
R : CrewAI utilise la télémétrie anonyme pour collecter des données d'utilisation à des fins d'amélioration. Aucune donnée sensible (telle que les invites, les descriptions de tâches ou les appels d'API) n'est collectée. Les utilisateurs peuvent choisir de partager des données plus détaillées en définissant share_crew=True
sur leurs équipages.
R : Vous pouvez trouver divers exemples réels dans le référentiel CrewAI-examples, notamment des planificateurs de voyage, des outils d'analyse de stock, etc.
R : Les contributions sont les bienvenues ! Vous pouvez créer une branche pour le référentiel, créer une nouvelle branche pour votre fonctionnalité, ajouter votre amélioration et envoyer une pull request. Consultez la section Contribution dans le README pour plus de détails.