CrewAI : orchestration multi-agents
CrewAI est un framework Python qui permet de créer des équipes d'agents IA collaboratifs. Chaque agent a un rôle, un objectif, et des outils spécifiques. Ils travaillent ensemble pour accomplir des tâches complexes.
Concepts clés
Agents
Un agent est défini par son rôle, son objectif et son backstory :
from crewai import Agent
researcher = Agent(
role="Chercheur Senior",
goal="Trouver les informations les plus pertinentes et récentes",
backstory="Expert en recherche avec 10 ans d'expérience en veille technologique.",
tools=[search_tool, scrape_tool],
llm=ChatOpenAI(model="gpt-4o"),
verbose=True
)
writer = Agent(
role="Rédacteur Technique",
goal="Produire du contenu clair et structuré à partir des recherches",
backstory="Rédacteur technique spécialisé en IA et machine learning.",
llm=ChatOpenAI(model="gpt-4o")
)Tasks
Les tâches définissent ce que chaque agent doit accomplir :
from crewai import Task
research_task = Task(
description="Recherche les dernières avancées en RAG pour 2025.",
expected_output="Un rapport structuré avec sources et citations.",
agent=researcher
)
write_task = Task(
description="Rédige un article de blog basé sur la recherche.",
expected_output="Article de 800 mots, format markdown.",
agent=writer,
context=[research_task] # Dépend du résultat de la recherche
)Crew
Le crew orchestre les agents et leurs tâches :
from crewai import Crew, Process
crew = Crew(
agents=[researcher, writer],
tasks=[research_task, write_task],
process=Process.sequential, # ou Process.hierarchical
verbose=True
)
result = crew.kickoff()Modes d'exécution
- Sequential : Les tâches s'exécutent dans l'ordre, chaque agent passe le relais
- Hierarchical : Un agent manager délègue et supervise les autres agents
Fonctionnalités avancées
Outils custom
from crewai.tools import tool
@tool
def query_database(query: str) -> str:
"""Exécute une requête SQL sur la base de données produit."""
return db.execute(query)Delegation
Les agents peuvent déléguer entre eux :
agent = Agent(
role="Manager",
allow_delegation=True, # Peut demander à d'autres agents
# ...
)Cas d'usage typiques
- Rédaction de contenu (recherche + rédaction + relecture)
- Analyse de données (collecte + analyse + synthèse)
- Support client (classification + réponse + escalade)
- Veille concurrentielle (scraping + analyse + rapport)