Choix d’un framework d’IA agente : LangGraph, CrewAI, OpenAI SDK, ADK
Omettez les tableaux des fonctionnalités. Organisez votre projet selon l’une des cinq formes, comparez quatre styles d’orchestration et consultez des exemples minimalistes des SDK LangGraph, CrewAI et OpenAI.
Choisir un framework d’agents en 2026 semble plus difficile qu’il ne le devrait. Si l’on cherche un tel outil, on tombe sur LangGraph, CrewAI, le OpenAI Agents SDK, le Google Agent Development Kit, le Claude Agent SDK, AG2, PydanticAI et quelques autres, chacun se présentant comme le choix par défaut logique.
Cette confusion n’est pas due à une faille dans vos recherches. Ce domaine est fragmenté, et le choix relève davantage d’une question philosophique que technique, car chaque framework intègre une vision différente quant au degré de contrôle à exercer sur l’exécution d’un agent et aux modalités de communication entre ces derniers. Une phrase tirée d’une explication d’IBM résume bien la meilleure façon d’aborder le problème : cessez de vous demander quel framework est le meilleur, et demandez plutôt quel type de système d’agents vous souhaitez construire.
Ce qui suit s’adresse aux développeurs et architectes de niveau intermédiaire et senior qui connaissent déjà ce qu’est un agent : un modèle doté d’outils, d’instructions et d’une certaine mémoire capable de réaliser plusieurs étapes pour atteindre un objectif. Il est présumé que vous savez lire du Python et avoir déjà essayé au moins un cycle d’appel d’outils pour un agent unique. Il classe les projets en cinq catégories, compare ensuite quatre philosophies d’orchestration, et présente enfin trois exemples de code minimalistes afin que vous puissiez percevoir les différences entre les modèles de programmation avant d’engager des modifications dans une base de code.
De quoi un framework vous protège réellement
Vous pouvez créer un agent sans aucun framework pour une démonstration. Cependant, quelques problèmes réapparaissent dans presque tous les systèmes sérieux, et un framework existe principalement pour éviter de devoir les résoudre à nouveau :
- Le cycle de raisonnement. Appeler le modèle, exécuter les outils qu’il choisit, renvoyer les résultats et répéter jusqu’à ce que une condition d’arrêt soit remplie.
Tous les frameworks présentés couvrent ces quatre domaines. Ils diffèrent selon l’insistance avec laquelle ils imposent leur propre solution.
Partir du cas d’usage
Au lieu de comparer les fonctionnalités, demandez-vous ce que vous construisez réellement. Cinq catégories englobent la plupart des projets, et chacune propose une liste différente de choix possibles.
- Flux de travail linéaires. Les étapes s’exécutent dans un ordre prévisible et généralement fixe : un agent de support recherche une base de connaissances, rédige une réponse et ouvre éventuellement un ticket. Il n’est pas nécessaire que les agents débattent de quoi que ce soit ici. Ce qui est requis, c’est la fiabilité. LangChain convient aux séquences, LlamaIndex s’adapte aux tâches axées sur la récupération d’informations, tandis que LangGraph prend son rôle lorsque la séquence nécessite des conditions ou des boucles.
- Équipes autonomes de multiples agents. L’objectif est défini, puis un groupe d’agents négocie la manière de l’atteindre, par exemple un planificateur, un programmeur et un réviseur qui s’occupent ensemble d’une tâche de programmation. Ces problèmes sont par nature ouverts. AG2 (le successeur maintenu d’AutoGen) et CrewAI sont les solutions les plus courantes.
Un tel tri transforme la question « quel framework ? » en quelque chose de plus concis. Le processus est-il prévisible, exploratoire, encadré par des rôles, destiné à la production, ou n’est-ce qu’une hypothèse ?
Quatre manières dont les frameworks modélisent la coordination
Même au sein d’une liste restreinte, les frameworks diffèrent dans la manière dont ils représentent la coordination. En général, ils suivent l’une de quatre philosophies.
- Basé sur les graphes. Les agents et la logique sont des nœuds dans un graphe orienté, et des arêtes explicites, conditionnelles ou cycliques, déterminent ce qui s’exécute ensuite. LangGraph en est l’exemple le plus clair : on définit en fait une machine à états.
- Basé sur les rôles. Chaque agent est un membre d’équipe ayant un rôle, un objectif et un contexte historique, tandis qu’une couche de processus située au-dessus décide de la manière dont les tâches sont distribuées entre eux. CrewAI est organisé exactement selon cette idée.
Aucune philosophie ne l’emporte définitivement. Votre choix doit tenir compte du modèle mental existant de votre équipe concernant le problème, ainsi que du niveau de contrôle explicite sur les chemins d’exécution que vous souhaitez réellement.
La place d’un framework dans la pile technologique
Chaque framework repose sur un ou plusieurs fournisseurs de modèles et gère le cycle de raisonnement. Par-dessus cela s’ajoute l’appel d’outils, qui est de plus en plus standardisé grâce à MCP. Selon certaines sources, il est géré par la Agentic AI Foundation de la Linux Foundation depuis décembre 2025, et chaque framework présent ici le prend en charge d’une manière ou d’une autre. Lorsque des agents doivent communiquer entre différentes processus ou services, le protocole Agent2Agent (A2A) émerge comme un standard similaire, avec un support intégré dans ADK et d’autres fonctionnalités en cours d’ajout ailleurs.
On trouve d’abord la persistance des états, comme les points de contrôle de LangGraph vers une base de données ou un historique de chat simple en mémoire, ainsi qu’une couche d’observabilité, telle que LangSmith pour LangGraph ou le suivi intégré dans l’OpenAI Agents SDK. Ces éléments sont bien plus importants lorsque l’agent interagit avec des utilisateurs réels qu’auparavant dans un notebook. Aucun de ces frameworks n’est lié à un cloud en particulier. L’OpenAI Agents SDK et Google ADK penchent naturellement vers les modèles de leurs propres fournisseurs, tandis que LangGraph et CrewAI visent à rester indépendants des modèles.
Trois exemples minimalistes
Ces extraits sont délibérément très courts. Ils illustrent le modèle de programmation de chaque framework et ne représentent pas des systèmes en production. Les noms de paquets et les étapes d’installation évoluent rapidement dans ce domaine, il est donc conseillé de consulter d’abord la documentation actuelle de chaque projet.
LangGraph : un graphe à deux nœuds
# pip install langgraph
from langgraph.graph import StateGraph, END
from typing import TypedDict
class State(TypedDict):
question: str
answer: str
def research(state: State) -> State:
state["answer"] = f"Researched: {state['question']}"
return state
def write(state: State) -> State:
state["answer"] = f"Written up: {state['answer']}"
return state
graph = StateGraph(State)
graph.add_node("research", research)
graph.add_node("write", write)
graph.set_entry_point("research")
graph.add_edge("research", "write")
graph.add_edge("write", END)
app = graph.compile()
result = app.invoke({"question": "What is agentic AI?", "answer": ""})
print(result["answer"])
# Output: Written up: Researched: What is agentic AI?
Le code définit un état typé partagé entre les nœuds, ajoute deux nœuds en tant que fonctions Python ordinaires et les relie par une arête explicite. Rien ici ne fait appel à un LLM. LangGraph est intentionnellement neutre sur ce point, vous pouvez donc intégrer le client de modèle que vous souhaitez à chaque nœud.
CrewAI : une équipe de deux agents
# pip install crewai
from crewai import Agent, Task, Crew
researcher = Agent(
role="Researcher",
goal="Find accurate information on the given topic",
backstory="An experienced analyst who values accuracy over speed."
)
writer = Agent(
role="Writer",
goal="Turn research into a clear summary",
backstory="A technical writer who favours plain language."
)
research_task = Task(
description="Research agentic AI frameworks",
expected_output="A short list of key considerations",
agent=researcher
)
write_task = Task(
description="Summarise the research for a developer audience",
expected_output="A concise paragraph",
agent=writer
)
crew = Crew(agents=[researcher, writer], tasks=[research_task, write_task])
result = crew.kickoff()
Il n’y a ni nœuds ni arêtes à connecter. Deux agents sont définis par leur rôle et leur objectif, et chacun reçoit une tâche. Le processus par défaut de l’équipe exécute les tâches une après l’autre, en transmettant chaque résultat à celui qui suit. CrewAI s’occupe de la coordination que LangGraph vous obligerait à modéliser explicitement.
OpenAI Agents SDK : transmission d’une conversation entre agents
# pip install openai-agents
from agents import Agent, Runner
billing_agent = Agent(
name="Billing",
instructions="Handle billing questions concisely."
)
triage_agent = Agent(
name="Triage",
instructions="Answer general questions; hand off billing questions to Billing.",
handoffs=[billing_agent]
)
result = Runner.run_sync(triage_agent, "Why was I charged twice this month?")
print(result.final_output)
Dans l’exemple, un agent de triage est informé d’un seul autre agent à qui il peut transférer du travail. Si le modèle détermine que le message concerne la facturation, l’exécuteur du SDK transfère automatiquement la conversation à l’agent chargé de la facturation. Aucun graphe, aucune métaphore liée aux rôles : seulement des agents ainsi que les outils et transferts qu’ils peuvent utiliser. Google ADK présente une structure similaire à cette échelle, avec un agent racine possédant des sub_agents, mais ses sous-agents forment un arbre explicite pouvant inclure des agents distants via A2A, tandis que la liste de transferts mentionnée ci-dessus est plate.
Adapter chaque framework à votre situation
Préférez LangGraph lorsque :
- votre flux de travail comporte des boucles, des tentatives répétées ou des branches conditionnelles que vous souhaitez modéliser explicitement ;
- vous avez besoin d’un état persistant qui survive à un redémarrage, ou pour le débogage par « voyage dans le temps » ;
- votre équipe utilise déjà des composants LangChain.
Préférez CrewAI lorsque :
- le problème se divise naturellement en rôles, et cette structuration aide les personnes extérieures au domaine de l’ingénierie à suivre ;
- vous souhaitez que quelque chose fonctionne en quelques heures ;
- vous êtes prêt à utiliser un cadre de niveau inférieur pour les éléments critiques si la séquenciation basée sur les rôles devient insuffisante ;
Préférez le OpenAI Agents SDK lorsque :
- vous développez principalement à l’aide de modèles OpenAI et souhaitez la couche la plus légère possible par-dessus le cycle de raisonnement ;
- votre besoin de coordination se limite à une simple délégation entre quelques spécialistes.
Préférez le Google ADK lorsque :
- vous travaillez déjà dans Google Cloud ou dans l’écosystème Gemini ;
- les agents concernent plusieurs équipes ou services, un scénario où le modèle de agent distant d’A2A convient bien.
Recherchez ailleurs lorsque :
- La sécurité de type est plus importante que la flexibilité d’orchestration ; dans ce cas, PydanticAI, qui valide les entrées et sorties des agents à l’aide de modèles Pydantic, pourrait surpasser les quatre autres solutions ;
- Vous êtes à l’étape de prototype pour l’un des cinq cas d’usage ; dans ce cas, LangFlow ou Flowise constituent un meilleur point de départ avant même d’écrire du code de framework.
Erreurs commises par les équipes
- Choisir avant de définir. Les équipes choisissent le framework ayant le plus d’étoiles et tentent de faire rentrer le problème dans ce cadre. Définir d’abord la catégorie permet généralement de déterminer clairement les options possibles, bien mieux que de lire quatre ensembles de documentation.
- Ignorer les coûts de changement. Les prompts, la logique des agents et les modèles d’orchestration sont rarement facilement transférables d’un système à un autre. Si vous pensez que le premier choix ne suffira pas à long terme, prévoyez une réécriture partielle et ne comptez pas sur un changement rapide.
Vos prochaines étapes
- Décidez à quelle des cinq catégories appartient votre projet avant d’ouvrir la documentation d’un framework : linéaire, multi-agent autonome, basé sur des rôles, orchestration en production ou prototype rapide.
- Installez l’un des frameworks mentionnés ci-dessus et recréez un exemple simplifié en utilisant votre propre cas d’usage plutôt que celui présenté.
- Recherchez des serveurs d’outils MCP existants pour les systèmes que vous devez connecter, et évitez de développer des solutions personnalisées lorsque celles-ci sont disponibles.
- Convenez à l’avance d’une règle de passage à un autre système, par exemple passer à LangGraph dès que les conditions de branchement sont remplies trois fois.
La version courte
Avant de vous demander quel framework est le meilleur, demandez-vous quelle de ces cinq formes familières décrit votre projet : un flux linéaire prévisible, une équipe autonome sans limite, une équipe dont les rôles sont définis, une tâche d’orchestration de production ou une idée en phase de prototype.
Y répondre réduit déjà le champ des possibilités avant même d’ouvrir une table des fonctionnalités. Par la suite, il ne reste plus guère qu’une question de philosophie. Choisissez LangGraph pour un contrôle explicite des branches, CrewAI pour une pensée basée sur les rôles et des itérations rapides, l’OpenAI Agents SDK pour la simplicité avec les modèles OpenAI, ou ADK si vous êtes déjà intégré à l’écosystème Google. MCP et A2A s’imposent comme des normes courantes pour les outils et la communication entre agents, de sorte que changer de direction plus tard sera un peu moins coûteux, même si cela ne sera jamais gratuit.