Microsoft Agent Framework
TL;DR
Microsoft Agent Framework is Microsoft's MIT-licensed framework for agents and multi-agent workflows in Python and .NET, with a Go SDK in preview. Microsoft describes it as the successor to AutoGen and Semantic Kernel, adding graph workflows, checkpoints and built-in orchestrations. It suits teams on Azure or those needing resumable workflows with approvals.
Key facts
| Type | Framework |
|---|---|
| Languages / SDKs | Python, .NET, Go |
| License | MIT |
| Pricing model | Open core |
| Orchestration pattern | Graph |
| GitHub stars | 13,873 (as of 2026-09-30) |
| GitHub forks | 2,401 |
| Last push | 2026-09-30 |
| Latest release | python-1.19.0 |
| Repository | microsoft/agent-framework |
| Website | aka.ms |
| Documentation | learn.microsoft.com |
| Last verified | 2026-09-30 |
Key features
- Agents built on pluggable chat clients (Microsoft Foundry, Azure OpenAI, OpenAI, Anthropic, Ollama and others) with tools, MCP servers, middleware and sessions. (source)
- Built-in orchestrations on top of workflows: sequential, concurrent, handoff, group chat and Magentic (a manager agent coordinating specialists). (source)
- Workflow checkpoints taken at the end of each superstep, holding executor state, pending messages, pending requests and shared state. (source)
- Request/response handling in workflows so an executor can wait for a human or external system and then continue. (source)
- Tools can be marked as requiring approval (
approval_mode="always_require"in Python,ApprovalRequiredAIFunctionin .NET). (source) - A2A in both directions:
A2AAgentwraps a remote A2A agent, and hosting packages expose agents or workflows as A2A servers. (source) ClaudeAgent(agent-framework-claude) wraps the Claude Agent SDK and runs on the Claude Code CLI. (source)- Deployment paths include Foundry hosted agents, Azure Functions with the durable extension, and self-hosted endpoints. (source)
Architecture and orchestration pattern
Pattern: Graph
The framework has two main layers. An agent combines a chat client for a model provider with instructions, tools (function tools, local or hosted MCP tools), middleware and a session that carries conversation state. Chat history is kept in memory or in the model service, and context providers add longer-term memory. An opinionated harness agent adds planning, context compaction, file access and tool-approval defaults for long tasks.
A workflow is a graph of executors joined by edges. It runs in supersteps, and a checkpoint is written after each superstep with executor state, queued messages, pending requests and shared state, so runs can be resumed or restored. Agents can be executors, and a workflow can be wrapped back into the agent interface.
Multi-agent patterns are packaged as orchestrations built on workflows: sequential, concurrent, handoff, group chat and Magentic, where a manager agent plans and assigns work. Hosting options include Microsoft Foundry hosted agents, Azure Functions with a durable extension, and self-hosted A2A, MCP and OpenAI-compatible endpoints.
Human in the loop
Agents: a tool marked as approval-required makes the run end with an approval request instead of a final answer; the caller collects the decision and passes it back in the next run. Workflows: an executor sends a request (ctx.request_info() with a @response_handler in Python, a RequestPort in .NET), the workflow emits a request event, and the response is routed back to that executor. Since Python 1.13.0 checkpoints record delivered responses, so a human-in-the-loop continuation can be replayed from a checkpoint. The built-in orchestrations accept tool approvals and request-info pauses, and the AG-UI integration carries approvals to a web frontend.
Harnesses it can drive
- Claude Code (evidence)
Protocols
| Protocol | Support | Note |
|---|---|---|
| MCP | Yes evidence | Client in Python and .NET (stdio, Streamable HTTP and WebSocket MCP tools, plus hosted MCP tools); Python can also expose an agent as an MCP server, while .NET self-hosting is listed as coming soon. |
| A2A | Yes evidence | Client and server: A2AAgent calls remote A2A agents, and agent-framework-a2a / agent-framework-hosting-a2a (Python) and ASP.NET Core packages host agents or workflows as A2A servers; packages are pre-release. |
| AG-UI | Yes evidence | Server side: agent-framework-ag-ui (Python) and Microsoft.Agents.AI.Hosting.AGUI.AspNetCore (.NET) expose agents as AG-UI endpoints, both pre-release; the AG-UI README lists the framework as 1st party. |
Best for
- Organizations standardizing on Azure and Microsoft Foundry for hosting and governance
- Long-running workflows that must checkpoint, pause for approval and resume later
- Teams migrating from AutoGen or Semantic Kernel along Microsoft's documented path
- Delegating coding tasks to Claude Code from a Python agent or workflow via
ClaudeAgent
Not for
- Go-first teams needing full parity; the Go SDK is in public preview without declarative agents, RAG, CodeAct or functional workflows
- Projects that only need a single stateless chat call, where the workflow layer adds little
- Teams that cannot adopt pre-release packages, since the A2A, AG-UI, Claude and MCP-hosting integrations ship as
--pre
Quickstart
pip install agent-framework azure-identity import asyncio, os
from agent_framework.foundry import FoundryChatClient
from agent_framework.orchestrations import SequentialBuilder
from azure.identity import AzureCliCredential
async def main() -> None:
client = FoundryChatClient( # run `az login` first
project_endpoint=os.environ["FOUNDRY_PROJECT_ENDPOINT"],
model=os.environ["FOUNDRY_MODEL"],
credential=AzureCliCredential(),
)
writer = client.as_agent(name="writer", instructions="Write one punchy product sentence.")
reviewer = client.as_agent(name="reviewer", instructions="Give brief feedback on the sentence.")
workflow = SequentialBuilder(participants=[writer, reviewer]).build()
events = await workflow.run("Tagline for a budget-friendly eBike.")
for msg in events.get_outputs()[0].messages:
print(f"[{msg.author_name}] {msg.text}")
asyncio.run(main())
Common pitfalls
- The official quickstarts use Microsoft Foundry with Azure CLI credentials; run
az loginfirst or switch to another provider's chat client. pip install agent-frameworkinstalls the standard package set; experimental modules come fromagent-framework-lab, and several integrations (A2A, AG-UI, Claude, MCP hosting) need--pre.- On minimal Python installs, MCP tools may need
pip install mcp --pre. - Python 1.13.0 changed workflow checkpoint behavior; code that depends on superstep counts or checkpoint ordering should follow the upgrade guide.
- The docs warn that
DefaultAzureCredentialis meant for development; use a specific credential in production.
Pros
- Python and .NET implementations share consistent APIs. (source)
- Five multi-agent orchestration patterns ship ready to use and all support approvals. (source)
- Checkpoints capture pending requests and shared state, so long workflows can survive restarts. (source)
- Official migration guides from AutoGen and Semantic Kernel, whose teams built the framework. (source)
- MCP, A2A and AG-UI are all covered by first-party packages. (source)
Cons
- The Go SDK is in public preview and lacks declarative agents, RAG, CodeAct and functional workflows. (source)
- Several protocol and provider integrations are still pre-release packages installed with
--pre. (source) - Python 1.13.0 shipped minor breaking changes to workflow execution, including checkpoint placement and ordering. (source)
- Exposing an agent as an MCP server is Python-only for now; .NET support is listed as coming soon. (source)
- Official quickstarts are written against Microsoft Foundry and Azure credentials, so other providers need extra setup. (source)
Alternatives
FAQ
Is Microsoft Agent Framework the successor to AutoGen?
Yes. Microsoft's AutoGen migration guide calls it the direct successor, built by the same teams, and AutoGen's README puts AutoGen in maintenance mode and points new users here.
Does it support MCP and A2A?
Yes. Agents consume MCP tools in Python and .NET, Python can serve an agent over MCP, and A2A works as client (A2AAgent) and server through hosting packages.
What languages does it support?
Python and .NET in this repository. A Go SDK lives in microsoft/agent-framework-go and is in public preview.
Is it free?
The framework is MIT-licensed. Hosting on Microsoft Foundry, including Foundry hosted agents, is a paid Azure service.
Can it run Claude Code?
Yes. The agent-framework-claude package provides ClaudeAgent, which wraps the Claude Agent SDK and requires the Claude Code CLI to be installed.
Sources
- Microsoft Agent Framework GitHub repository
- Microsoft Agent Framework documentation (Microsoft Learn)
- Microsoft Agent Framework README
- Agent Framework overview
- Get started: your first agent
- Get started: memory and persistence
- Orchestrations overview
- Sequential orchestration
- Workflows: human-in-the-loop
- Tool approval
- Workflows: checkpoints and resuming
- Local MCP tools
- Self-hosting: MCP
- A2A agent integration
- Self-hosting: A2A
- AG-UI integration overview
- Anthropic Claude agent integration (ClaudeAgent)
- Foundry hosted agents
- Python 1.13.0 workflow checkpoint upgrade guide
- Migration guide: from AutoGen
- Migration guide: from Semantic Kernel
- Microsoft Foundry pricing
- Microsoft Agent Framework for Go
- AG-UI README, supported integrations