CrewAI Python : guide pratique pour démarrer
Découvrez CrewAI en Python avec architecture, installation minimale, exemple de code, objets clés et bonnes pratiques pour lancer un workflow multi-agent.
CrewAI Python : guide pratique pour démarrer
Introduction
CrewAI est un framework Python open source dédié aux workflows multi-agents coordonnés. Chaque agent a un rôle précis, dispose d'outils dédiés et exécute des tâches au sein d'un flux orchestré par un crew.
Dans ce guide : installation, création d'un premier agent, orchestration de plusieurs agents sur une tâche concrète. À la fin, vous aurez un projet fonctionnel et une vision claire des bonnes pratiques.
📊 Vous hésitez entre CrewAI et une autre approche ? Consultez notre comparatif OpenClaw vs CrewAI pour choisir en connaissance de cause.
Résumé rapide
| Critère | Détail |
|---|---|
| Langage | Python uniquement |
| Licence | Apache 2.0 |
| LLM compatibles | OpenAI, Anthropic, Azure, Gemini, Ollama… |
| Concepts clés | Agent, Task, Crew, Tool |
| Cas d'usage | Veille automatisée, extraction de données, pipelines SEO |
Les 4 objets centraux de CrewAI
CrewAI repose sur quatre abstractions clés — une bibliothèque Python pour les workflows multi-agents :
- Agent — entité avec un
role, ungoalet unbackstoryqui contextualise son comportement. - Task — tâche assignée à un agent, avec
descriptionetexpected_output. - Crew — conteneur qui orchestre agents et tâches (processus séquentiel ou hiérarchique).
- Tool — outil attaché à un agent (recherche web, lecture de fichier, appel API…).
Pourquoi ne pas coder soi-même ? CrewAI élimine le boilerplate d'orchestration et offre une mémoire partagée entre agents — sans manipulation manuelle de prompts.
Installation
pip install crewai
Dépendances optionnelles par provider :
pip install crewai[openai] # OpenAI
pip install crewai[anthropic] # Anthropic
pip install crewai[gemini] # Google Gemini
🔧 Prérequis système et configuration des variables d'environnement sont détaillés dans notre guide d'installation de CrewAI.
Créer un agent
from crewai import Agent
researcher = Agent(
role="Research Analyst",
goal="Trouver les 3 dernières tendances en IA générative",
backstory=(
"Tu es un analyste spécialisé en IA. "
"Tu surveilles les publications académiques et les sorties de modèles."
),
verbose=True,
)
Les 3 paramètres essentiels :
role— titre du poste, influence le routing vers les tâches.goal— objectif mesurable de l'agent.backstory— contexte narratif qui façonne le ton et la profondeur des réponses.
Définir une tâche
from crewai import Task
task = Task(
description="Recherche les 3 dernières tendances en IA générative et fais un résumé de 100 mots.",
agent=researcher,
expected_output="Un résumé de 100 mots environ.",
)
Une tâche est distincte de l'agent. Elle peut être assignée explicitement ou distribuée dynamiquement par le crew.
Créer le crew et exécuter
from crewai import Crew
crew = Crew(
agents=[researcher],
tasks=[task],
process="sequential", # ou "hierarchical"
verbose=True,
)
result = crew.kickoff()
print(result)
crew.kickoff() bloque jusqu'à complétion et retourne le résultat du dernier agent.
Processus hiérarchique — définissez un manager_agent :
manager = Agent(
role="Project Manager",
goal="S'assurer que le deliverable final est cohérent",
backstory="Manager senior avec 10 ans d'expérience en gestion de projets IA.",
)
crew = Crew(
agents=[researcher, manager],
tasks=[task],
process="hierarchical",
manager_agent=manager,
verbose=True,
)
Exemple concret : veille SEO en deux étapes
Crew qui (1) recherche les tendances SEO de la semaine, puis (2) rédige un tweet de synthèse.
from crewai import Agent, Task, Crew
researcher = Agent(
role="SEO Researcher",
goal="Identifier 3 tendances SEO récentes",
backstory="Expert SEO avec veille constante sur les algorithmes.",
)
writer = Agent(
role="Social Media Writer",
goal="Rédiger un tweet informatif et engageant",
backstory="Copywriter spécialisé Twitter/X pour le secteur tech.",
)
research_task = Task(
description="Trouve 3 actualités SEO importantes de la semaine écoulée.",
agent=researcher,
expected_output="Liste de 3 tendances avec source.",
)
write_task = Task(
description="À partir des tendances trouvées, écris un tweet de 280 caractères max.",
agent=writer,
expected_output="Texte du tweet, pas plus de 280 caractères.",
)
crew = Crew(
agents=[researcher, writer],
tasks=[research_task, write_task],
process="sequential",
verbose=True,
)
result = crew.kickoff()
print(result)
💡 L'output du
researcherest automatiquement passé auwritervia la mémoire partagée du crew. Aucun code de shuttle de données nécessaire.
Bonnes pratiques
Définissez des goals mesurables. "Rédiger un tweet" est moins utile que "Rédiger un tweet de 280 caractères maximum". Un goal vague produit des outputs inconsistants.
Un agent, une responsabilité. Si un agent fait deux choses distinctes, scindez-le. Chaque agent doit avoir un rôle assez étroit pour que son goal soit atteignable en une passe.
Structurez votre projet dès le départ :
my-crew/
├── agents/
│ ├── researcher.py
│ └── writer.py
├── tasks/
│ ├── research_task.py
│ └── write_task.py
├── crew.py
├── .env
└── requirements.txt
Mockez les appels LLM pour valider le flux sans coût API :
from crewai.utilities import MockLLM
researcher = Agent(
role="Researcher",
goal="Find trends",
backstory="...",
llm=MockLLM(responses=["Trend 1", "Trend 2", "Trend 3"]),
)
⚠️ Limite connue : la mémoire contextuelle du crew est limitée par la fenêtre de contexte du LLM sous-jacent. Pour les workflows longs, planifiez des étapes de résumé intermédiaire.
Questions fréquentes
Comment utiliser CrewAI en Python ?
pip install crewai, puis définissez des agents (rôle + goal), créez des tâches, assemblez-les dans un Crew et lancez crew.kickoff(). Le framework gère le routing et la mémoire partagée.
CrewAI est-il gratuit ?
La bibliothèque est open source (Apache 2.0) et gratuite. Seuls les appels aux LLM (OpenAI, Anthropic…) sont payants. Certains providers proposent des quotas gratuits.
Différence avec des appels LLM directs dans un script ?
CrewAI formalise l'orchestration multi-agent avec des abstractions pensées pour la collaboration (rôles, goals, mémoire partagée, processus séquentiel/hierarchique). Un script maison réinvente ces mécanismes à chaque projet.
CrewAI avec un LLM en local ?
Oui — Ollama, LM Studio ou tout provider compatible OpenAI-style. Configurez OPENAI_API_BASE vers votre endpoint local pour un run self-hosted sans frais externes.
Aller plus loin
Restez informé sur les agents IA
Nouveaux tutoriels, comparatifs et guides pratiques directement dans votre boîte mail.