AutoGen
TL;DR
AutoGen is Microsoft's Python and .NET framework for multi-agent applications built from conversing agents, group-chat teams and an event-driven core runtime. It is in maintenance mode: no new features, community managed, and Microsoft points new users to Microsoft Agent Framework. It mainly suits teams maintaining existing AutoGen code.
Key facts
| Type | Framework |
|---|---|
| Languages / SDKs | Python, .NET |
| License | CC-BY-4.0 |
| Pricing model | Open source, free |
| Orchestration pattern | Blackboard |
| GitHub stars | 61,246 (as of 2026-10-01) |
| GitHub forks | 9,275 |
| Last push | 2026-04-15 |
| Latest release | python-v0.7.5 |
| Repository | microsoft/autogen |
| Website | microsoft.github.io |
| Documentation | microsoft.github.io |
| Last verified | 2026-09-30 |
Key features
- Layered packages: Core (event-driven agents and runtime), AgentChat (high-level agents and teams) and Extensions (model clients, code execution, tools). (source)
- Team presets:
RoundRobinGroupChat,SelectorGroupChat(a model picks the next speaker),MagenticOneGroupChatandSwarm. (source) Swarmteams where agents pass control withHandoffMessageinstead of a central selector. (source)GraphFlow, a team that follows a directed graph with sequential, parallel, conditional and looping steps (marked experimental). (source)- MCP tools through
McpWorkbenchinautogen_ext.tools.mcp, for example a Playwright MCP server over stdio. (source) save_state()/load_state()on agents and teams for persisting a conversation between requests. (source)- A
Memoryprotocol with a simpleListMemoryimplementation for injecting stored facts into model context. (source) - AutoGen Studio, a no-code GUI for prototyping multi-agent workflows. (source)
Architecture and orchestration pattern
Pattern: Blackboard
The Python codebase is split into three layers. autogen-core is an event-driven, actor-style runtime where agents exchange messages and can run locally or across processes; it also has a .NET implementation. autogen-agentchat sits on top and provides ready-made agents (AssistantAgent, UserProxyAgent, CodeExecutorAgent) and teams. autogen-ext holds model clients, code executors and tool integrations such as MCP.
The main multi-agent model in AgentChat is a group chat: participants share one conversation and a policy decides who speaks next (fixed rotation, a model-based selector, handoff messages in Swarm, or the Magentic-One orchestrator). Termination conditions such as text mentions, token limits or handoffs end a run. GraphFlow adds an explicit directed-graph workflow on the same team interface.
State is held in memory during a run. Agents and teams expose save_state() and load_state() so an application can store and restore them, and the Memory protocol lets an agent pull stored items into its context. There is no built-in durable execution layer.
Human in the loop
The AgentChat tutorial describes two approaches. During a run, a UserProxyAgent participates in the team and asks for input through a configurable input_func (console input() by default, or an async function wired to a web UI); while it waits, the whole team is blocked, so the docs advise using it only for short exchanges. Between runs, the team stops on a termination condition such as max_turns, TextMentionTermination or HandoffTermination, and the user's reply is passed as the next task; the team keeps its context. ExternalTermination and cancellation tokens let application code stop a run from outside. The docs link sample integrations for FastAPI, ChainLit and Streamlit.
Protocols
| Protocol | Support | Note |
|---|---|---|
| MCP | Yes evidence | Client: McpWorkbench and StdioServerParams from autogen_ext.tools.mcp give an AssistantAgent the tools of an MCP server (README example uses the Playwright MCP server). |
| A2A | Unknown | Not in AutoGen's README or AgentChat docs; repo code search found no A2A implementation, only an open, unmerged community pull request (#6669). The README mentions A2A only for Microsoft Agent Framework. |
| AG-UI | Unknown | Searched README, AgentChat docs and repo code for 'ag-ui'/'ag_ui' with no hits; the AG-UI README lists AG2 but not AutoGen. |
Best for
- Maintaining or extending an existing AutoGen 0.4+ codebase before a planned migration
- Experimenting with group-chat, selector and Magentic-One style teams in research settings (shortlist)
- Prototyping multi-agent workflows visually with AutoGen Studio on a local machine (shortlist)
Not for
- New projects that need new features or long-term vendor support; Microsoft directs these to Microsoft Agent Framework
- Workflows that require durable, resumable execution without writing your own state storage
- Deploying AutoGen Studio as a user-facing production app, which the README says it is not meant for
Quickstart
pip install -U "autogen-agentchat" "autogen-ext[openai]" import asyncio
from autogen_agentchat.agents import AssistantAgent
from autogen_agentchat.conditions import TextMentionTermination
from autogen_agentchat.teams import RoundRobinGroupChat
from autogen_ext.models.openai import OpenAIChatCompletionClient
async def main() -> None:
client = OpenAIChatCompletionClient(model="gpt-4.1") # reads OPENAI_API_KEY
writer = AssistantAgent("writer", model_client=client,
system_message="Draft a two-line product blurb.")
critic = AssistantAgent("critic", model_client=client,
system_message="Critique the draft. Say APPROVE when it is good.")
team = RoundRobinGroupChat([writer, critic], max_turns=6,
termination_condition=TextMentionTermination("APPROVE"))
result = await team.run(task="Blurb for a solar-powered kettle")
print(result.messages[-1].content)
await client.close()
asyncio.run(main())
Common pitfalls
- Python 3.10 or later is required.
- The README samples call the OpenAI API and expect
OPENAI_API_KEYto be exported. - The 0.4+ packages (
autogen-agentchat,autogen-core,autogen-ext) are a rewrite; code written for AutoGen 0.2 must follow the migration guide. - The project is in maintenance mode, so fixes are limited to bugs, security patches and docs; check the date of the latest release before depending on it.
- Only connect to trusted MCP servers; the README warns they can run commands locally.
Pros
- Can be used at different levels, from the high-level AgentChat API down to the event-driven Core runtime. (source)
- Several team strategies are available out of the box, from round-robin to model-selected speakers and Magentic-One. (source)
- MCP servers can be attached to an agent with a few lines via
McpWorkbench. (source) - Agents and teams can be serialized with
save_state()and restored later, which suits stateless web endpoints. (source) - Code is MIT-licensed (
LICENSE-CODE); no paid tier is attached to it. (source)
Cons
- In maintenance mode: no new features, community managed, contributions limited to fixes and docs; Microsoft recommends Microsoft Agent Framework instead. (source)
- The latest Python release on GitHub is python-v0.7.5, published 2025-09-30. (source)
GraphFlow, the structured workflow option, is labelled experimental. (source)- A
UserProxyAgentblocks the whole team while waiting for input, so the docs limit it to short interactions. (source) - AutoGen Studio is explicitly not meant to be a production application. (source)
Alternatives
FAQ
Is AutoGen still maintained?
Only in maintenance mode. The README says it gets no new features, is community managed, and accepts bug fixes, security patches and docs changes. New users are pointed to Microsoft Agent Framework.
Does AutoGen support MCP?
Yes, as a client. McpWorkbench in autogen-ext connects an agent to an MCP server's tools. No A2A or AG-UI support was found in the official repo or docs.
What license is AutoGen under?
GitHub reports CC-BY-4.0 because the main LICENSE file covers documentation. The code is under the MIT License in LICENSE-CODE.
How is AutoGen different from AG2?
AutoGen is Microsoft's repository, rewritten in 0.4 into Core, AgentChat and Extensions, now in maintenance mode. AG2 is a separate, community-run project that diverged from the AutoGen codebase in November 2024 and has since moved to its own async API.
What should I migrate to?
Microsoft publishes an AutoGen to Microsoft Agent Framework migration guide and recommends that framework for new projects.
Sources
- AutoGen GitHub repository
- AutoGen documentation (stable)
- AutoGen README (maintenance-mode notice, install, MCP example)
- AgentChat installation (AutoGen docs)
- AgentChat quickstart (AutoGen docs)
- Teams tutorial (AutoGen docs)
- Human-in-the-loop tutorial (AutoGen docs)
- Managing state (AutoGen docs)
- Memory and RAG (AutoGen docs)
- SelectorGroupChat (AutoGen docs)
- Swarm (AutoGen docs)
- GraphFlow (AutoGen docs)
- AutoGen releases
- AutoGen python-v0.7.5 release
- Migration guide: AutoGen to Microsoft Agent Framework
- AutoGen LICENSE-CODE (MIT)
- AutoGen LICENSE (CC-BY-4.0, documentation)
- Open pull request: A2A support (#6669)
- AG-UI README, supported integrations
- AG2 overview: relationship to AutoGen (AG2 docs)