You are currently viewing CrewAI, orchestrer une équipe d’agents IA

CrewAI, orchestrer une équipe d’agents IA

CrewAI : orchestrer une équipe d’agents IA spécialisés en open source

LangGraph modélise des graphes d’états, AutoGen pousse la conversation entre agents, mais beaucoup d’usages métier tiennent dans une métaphore plus simple : une équipe. Un chef de projet répartit le travail, un analyste creuse, un rédacteur synthétise, un vérificateur valide. CrewAI, framework Python sous licence MIT publié par João Moura, propose exactement cette abstraction : on déclare des agents par leur rôle, on leur confie des tâches, on choisit un mode d’orchestration, et on regarde la « crew » produire un livrable.

Ce que CrewAI apporte par rapport aux autres frameworks

CrewAI se distingue par une API très lisible et fortement orientée « casting de rôles ». Là où LangGraph demande de penser en machine à états, et où LangChain reste très bas niveau, CrewAI privilégie la description déclarative : un agent est défini par un role, un goal, une backstory, et un ensemble d’outils. Cette structure pousse à expliciter qui fait quoi, ce qui se traduit par des prompts plus stables et un comportement plus prévisible en production.

Le projet est neutre côté modèles : il s’appuie sur LiteLLM, ce qui permet de connecter au choix Ollama, vLLM, SGLang, Claude, GPT, Mistral ou n’importe quel backend compatible OpenAI. La couche mémoire intègre short-term, long-term et entity memory, branchables sur Qdrant ou pgvector pour la persistance.

Les briques principales

Une Crew est l’unité d’exécution : elle rassemble une liste d’agents, une liste de tâches et un processus d’orchestration. Trois modes sont disponibles : sequential où chaque tâche s’enchaîne, hierarchical où un manager LLM répartit dynamiquement le travail, et consensual où les agents délibèrent. Le mode hiérarchique reste le plus puissant pour les chaînes longues, car il combine planification dynamique et délégation.

Les Agents portent l’intelligence métier. Ils peuvent appeler des outils Python décorés ou des outils MCP via la passerelle crewai-tools, qui couvre lecture de fichiers, recherche web via SearXNG ou Serper, scraping via Crawl4AI, exécution de code dans des sandboxes type Daytona ou microsandbox. La compatibilité MCP, ajoutée mi-2025, permet de réutiliser n’importe quel serveur MCP existant comme outil.

Les Tasks décrivent ce qu’il faut produire, avec un format de sortie attendu (texte, JSON validé, fichier). On peut chaîner les tâches en passant le contexte de l’une à l’autre, ce qui évite la sur-utilisation du LLM pour repasser des données qu’il a déjà vues.

Cas d’usage où CrewAI brille

  • Veille et rédaction automatisée : un agent collecte, un autre filtre, un troisième rédige, un quatrième relit. Idéal pour des bulletins internes ou des fiches de synthèse.
  • Pré-instruction de dossiers : un agent extrait des champs d’un PDF via Docling, un autre interroge une base ou un portail open data via MCP, un troisième produit un compte rendu structuré.
  • Génération de contenu marketing ou technique multi-étapes, avec validation explicite avant publication.
  • Analyse comparative sur plusieurs sources : utile pour des études de marché, des veilles concurrentielles, ou la cartographie d’un écosystème open source.

Limites à connaître avant d’engager un projet

CrewAI consomme beaucoup de tokens quand le mode hiérarchique délègue largement, car le manager relit régulièrement l’état des tâches. Pour un POC sur Ollama c’est gratuit, pour un déploiement sur API cloud les coûts peuvent grimper vite, ce qui rend la combinaison avec LLMLingua ou des modèles servis par SGLang particulièrement pertinente.

La traçabilité dépend de l’instrumentation : sans Langfuse ou Phoenix branchés, le debug d’une crew qui tourne en rond peut être douloureux. À configurer dès le départ, pas après coup.

Enfin, CrewAI n’est pas un orchestrateur de workflows durables : pour des chaînes qui s’étalent sur des heures avec reprise sur incident, on garde Temporal ou Prefect en dessous, et on déclenche les crews comme étapes courtes et idempotentes.

Stack open source recommandée autour de CrewAI

Un déploiement maîtrisé combine plusieurs briques déjà éprouvées : Ollama ou vLLM pour servir les modèles, LiteLLM en proxy unifié, Qdrant pour la mémoire long terme, Langfuse pour l’observabilité, SearXNG pour les yeux sur le web, Daytona ou microsandbox pour l’exécution sécurisée de code, et un orchestrateur de tâches comme n8n ou Temporal pour les déclencheurs externes. CrewAI devient alors la couche « raisonnement collectif » au-dessus d’une infrastructure entièrement libre.

Pour commencer concrètement

Le code minimal tient en quelques lignes : pip install crewai, on définit deux ou trois agents, une ou deux tâches, on lance crew.kickoff(). La documentation officielle propose des templates « researcher + writer » et « support agent » qui servent de bons points de départ. La communauté maintient un répertoire d’exemples sur GitHub, et l’écosystème crewai-tools évite de réécrire les intégrations classiques.

Pour un POC sérieux, l’enchaînement raisonnable est : maquette locale sur Ollama, instrumentation Langfuse dès le premier jour, passage en mode hiérarchique seulement après avoir validé le mode séquentiel, puis externalisation des outils sensibles via MCP. Cette progression garde le contrôle sur les coûts et la qualité de raisonnement, ce qui est exactement ce que CrewAI permet de faire sans cérémonie inutile.