AutoGen — le framework multi-Agent conversationnel de Microsoft
Microsoft AutoGen modélise les systèmes multi-Agent comme des conversations entre rôles (AssistantAgent, UserProxyAgent, CodeExecutorAgent). Flexible, bien documenté côté recherche, et l’implémentation de référence pour la coordination d’Agents par chat.
Why AutoGen
AutoGen est le pont entre l’académique et l’industriel. Microsoft Research a publié le framework en 2023 et l’a fait évoluer agressivement depuis — l’actuelle v0.4 (fin 2024) est une réécriture complète avec acteurs asynchrones, messages fortement typés et exécution distribuée native. C’est le framework de choix quand vous tenez à la traçabilité recherche et à la stabilité à long terme assurée par un grand éditeur.
Le modèle mental, c’est les Agents comme participants d’un chat de groupe. Un AssistantAgent représente le côté LLM. Un UserProxyAgent exécute les appels d’outils (y compris l’exécution de code). Un GroupChat gère la boucle — choix du prochain intervenant, injection des conditions de terminaison, capture de la conversation. On compose le comportement en configurant la sélection des intervenants, plutôt qu’en câblant un graphe explicite à la LangGraph.
AutoGen excelle sur les tâches de code et de recherche où le chemin vers la solution n’est pas connu d’avance. Donnez un objectif à un duo d’Agents ; ils brainstorment, critiquent, exécutent du code et itèrent jusqu’au bout. L’inconvénient, c’est moins de déterminisme que les frameworks par rôles — pour des pipelines à structure figée, CrewAI y arrive avec moins de code d’orchestration.
Quick Start — AutoGen v0.4 AssistantAgent + RoundRobinGroupChat
La v0.4 est async-first — notez le asyncio.run(). RoundRobinGroupChat fait tourner les intervenants ; SelectorGroupChat utilise un LLM pour choisir le prochain intervenant. Les conditions de terminaison sont composables (TextMention, MaxMessage, FunctionCall, etc.). La v0.2 (encore très utilisée) a une API différente — alignez soigneusement votre version installée avec la documentation.
# pip install -U "autogen-agentchat>=0.4" "autogen-ext[openai]"
import asyncio
from autogen_agentchat.agents import AssistantAgent
from autogen_agentchat.teams import RoundRobinGroupChat
from autogen_agentchat.conditions import TextMentionTermination
from autogen_ext.models.openai import OpenAIChatCompletionClient
async def main():
llm = OpenAIChatCompletionClient(model="gpt-4o-mini")
planner = AssistantAgent(
name="planner",
model_client=llm,
system_message="Break the user's goal into 2-3 concrete steps. Hand off to writer.",
)
writer = AssistantAgent(
name="writer",
model_client=llm,
system_message="Execute the plan in clear prose. Say 'APPROVE' when done.",
)
critic = AssistantAgent(
name="critic",
model_client=llm,
system_message="Find one concrete improvement or respond 'APPROVE' if good enough.",
)
team = RoundRobinGroupChat(
participants=[planner, writer, critic],
termination_condition=TextMentionTermination("APPROVE"),
max_turns=8,
)
result = await team.run(task="Write a 150-word intro to multi-agent frameworks.")
for msg in result.messages:
print(f"[{msg.source}] {msg.content[:120]}")
asyncio.run(main())Fonctionnalités clés
Coordination par conversation
Les Agents s’échangent des messages. Le GroupChat décide qui parle ensuite. Les conditions de terminaison arrêtent la boucle. Naturel pour les tâches ouvertes où la solution émerge par le dialogue.
Runtime acteur v0.4
Runtime asynchrone de niveau production : messages typés, acteurs distribués, hooks de tracing. Bâti sur les leçons des déploiements v0.2 chez Microsoft.
AutoGen Studio
Interface visuelle no-code pour construire et exécuter des workflows d’Agents. Pratique pour les parties prenantes non-développeurs et pour prototyper rapidement avant de convertir en code.
Exécution de code
CodeExecutorAgent (ou UserProxyAgent avec code_execution_config) exécute du Python généré dans des sandbox Docker. Permet de vraies boucles « l’Agent résout une tâche de code ».
Choix d’intervenant par sélecteur
SelectorGroupChat utilise un sélecteur basé LLM pour choisir le prochain intervenant à partir de l’état de la conversation. Plus flexible que le round-robin ; non déterministe.
Support de modèles étendu
OpenAI, Azure OpenAI, Anthropic, Gemini, Ollama, LM Studio, Together, Fireworks de première classe. Configurez via model_client ; changez de fournisseur sans toucher à la logique des Agents.
Comparaison
| Abstraction | Determinism | Code Execution | Maintainer | |
|---|---|---|---|---|
| AutoGencelui-ci | Conversation | Low-medium | Built-in | Microsoft Research |
| CrewAI | Role + task | High | Via tools | CrewAI Inc |
| LangGraph | State graph | High | Via tool nodes | LangChain |
| OpenAI Swarm | Handoff tool calls | Medium | Via tools | OpenAI |
Cas d'usage
01. Recherche en codage agentique
Planifier → écrire du code → l’exécuter → déboguer → recommencer. Le couple exécution de code + conversation d’AutoGen est le pattern le mieux éprouvé pour les prototypes de recherche et les soumissions à des benchmarks.
02. Brainstorming ouvert
Tâches de type débat (critique vs. rédacteur, analyste haussier vs. baissier) où la valeur réside dans les allers-retours multi-tours, pas dans un enchaînement strict de tâches.
03. Systèmes d’Agents distribués
Le runtime acteur de la v0.4 est prêt pour la production sur des déploiements multi-processus ou multi-hôtes — rare dans le multi-Agent. Utile quand vos Agents appellent des services qui ne doivent pas vivre dans le même processus.
Tarification et licence
AutoGen : sous licence MIT. Gratuit. Maintenu par Microsoft Research avec des contributions actives de la communauté. Pas d’offre commerciale dédiée en 2026.
Coût d’infra : vos factures d’API LLM, plus (en option) un hôte Docker pour l’exécution de code. AutoGen lui-même est une bibliothèque Python/TypeScript ; aucun serveur à exploiter.
Coût caché : la boucle de conversation déclenche beaucoup d’appels LLM. Comptez 5 à 20 appels par tour d’Agent pour des tâches réalistes. Utilisez des modèles petits/bon marché pour les tours intermédiaires et un modèle capable pour la synthèse finale.
Assets associés sur TokRepo
AutoGen — Microsoft Multi-Agent Conversation Framework
Framework by Microsoft Research for building multi-agent conversational AI systems. Agents chat with each other to solve tasks collaboratively. Supports human-in-the-loop and code execution. 40,000+ stars.
AutoGen — Multi-Agent Conversation Framework
Microsoft framework for building multi-agent conversational AI systems. Agents chat with each other to solve tasks. Supports tool use, code execution, and human feedback. 56K+ stars.
AG2 — Open-Source AgentOS for Multi-Agent Systems
AG2 (formerly AutoGen) is an open-source framework for building cooperating AI agents with tool use, human-in-the-loop workflows, and patterns.
AgentOps — Observability for AI Agents
Python SDK for AI agent monitoring. LLM cost tracking, session replay, benchmarking, and error analysis. Integrates with CrewAI, LangChain, AutoGen, and more. 5.4K+ stars.
Questions fréquentes
AutoGen v0.2 vs v0.4 — laquelle utiliser ?+
Nouveaux projets : commencez par la v0.4. Elle apporte le runtime asynchrone, les messages typés et une meilleure observabilité. La v0.2 reste supportée pour l’existant et dispose d’une base d’exemples communautaire plus large — mais Microsoft a clairement indiqué que la v0.4 est la direction future.
AutoGen prend-il en charge Claude et les modèles non-OpenAI ?+
Oui. Les paquets autogen-ext fournissent des clients pour OpenAI, Anthropic, Azure OpenAI, Gemini, Ollama, LM Studio, HuggingFace. Configurez via model_client — la logique d’Agent est indépendante du modèle.
À quel point AutoGen est-il déterministe ?+
Moins que CrewAI/LangGraph par conception. La boucle conversationnelle est flexible, donc les exécutions varient. En production : utilisez RoundRobinGroupChat avec des plafonds max_turns et des conditions de terminaison structurées. Tracez tout — la non-déterminisme rend le tracing critique.
AutoGen Studio est-il fait pour la production ?+
AutoGen Studio est un constructeur visuel et un outil de démo. Utilisez-le pour prototyper et démontrer des flux ; convertissez en code pour la production. Il n’est pas conçu comme une plateforme d’exécution pour des applications grand public.
Les Agents AutoGen peuvent-ils exécuter des commandes shell ?+
Oui via le LocalCommandLineCodeExecutor (dangereux — sandbox !) ou le DockerCommandLineCodeExecutor (recommandé). Ne donnez jamais d’accès shell à des Agents qui exécutent des instructions non vérifiées ; l’exécuteur Docker est le défaut pour une raison.