PermissiveMITTested by Geekflare

Microsoft Agent Framework review

Microsoft's framework for agents and multi-agent workflows in Python and .NET, the successor to AutoGen and Semantic Kernel

Data refreshedMethodologyHow we tested
Director of Geekflare

Rity Anand is a director of Geekflare. She has extensive experience managing business technology and a special interest in emerging technologies.

Verdict

Microsoft Agent Framework replaces both AutoGen and Semantic Kernel, and it is the natural choice for .NET shops and teams already on Azure. It reached 1.0 in April 2026 and covers workflows, checkpoints, approvals and tracing without a paid tier. Many samples assume Azure, and the DevUI is still in beta.

Best for

.NET and Python teams on Azure, and anyone moving off AutoGen or Semantic Kernel

Not for

TypeScript teams, or teams that want a hosted visual builder

Pros

  • Python and .NET with consistent APIs
  • Graph workflows with checkpointing, human-in-the-loop and time travel
  • OpenTelemetry tracing built in, with no paid service needed
  • Migration guides from AutoGen and Semantic Kernel

Cons

  • Most samples and quickstarts start from Azure and Foundry
  • DevUI is still a beta package
  • No TypeScript version, and Go is in preview
Ask Sparkian

Is Microsoft Agent Framework right for your project?

Describe what you need and AI will check the fit against this review.

Microsoft Agent Framework features and capabilities

Graph workflows

Agents and functions connect through typed edges in sequential, concurrent, handoff and group patterns, so multi-agent processes run in a fixed, testable order.

Checkpoints and time travel

Workflows save checkpoints you can resume from or rewind to, which helps with long processes and with debugging a bad step.

Tools, MCP and approvals

Agents call functions and MCP servers, and calls can wait for a person's approval, which keeps risky actions under control.

OpenTelemetry tracing

Agent runs, model calls and tool calls are emitted as OpenTelemetry spans, so they show up in Azure Monitor, Aspire or any OTel backend you already run.

DevUI for local testing

A local web UI lets developers chat with agents, run workflows and inspect events while they build.

Any model providerWorks with OpenAI, Anthropic, Google and local models, not one vendor
Yes
Multi-agentSeveral agents can hand off or work together
YesSequential, concurrent, handoff and group chat patterns
MCP toolsCan use tools from MCP servers
Yes
Durable stateSaves progress so a run can resume after a crash or a pause
YesWorkflow checkpoints
Human approvalCan pause for a person to approve or edit before continuing
Yes
TracingShows each step, tool call and token use
YesOpenTelemetry to any backend
Visual studioA UI to build, run or debug agents
YesDevUI, a local web UI, in beta

At a glance

Type
Agent and workflow framework
Stack
Python 3.10+ / .NET
SSO
No
Roles and permissions
No
Audit logs
No

Free vs paid editions

What you get when you self-host, and what needs a paid plan.

Everything in the framework is free under MIT, including workflows with checkpoints, human-in-the-loop, OpenTelemetry tracing and the DevUI. There is no paid edition. Microsoft sells hosting through Foundry, where hosted agents are billed by container compute and you pay for models separately.

Self-hosting Microsoft Agent Framework

The Python packages need Python 3.10 or later, and the .NET packages install from NuGet.

New cloud server to ready

1 min 38 s

Research task, median of 3

20.3 s, 362 MB peak

Version tested

1.22.0 · Oct 19, 2026

  • Installing the full agent-framework package took 78 seconds and peaked at 362 MB, the longest install of the seven.
  • The default OpenAIChatClient calls OpenAI's stateful Responses API, so OpenRouter rejected it with previous_response_id is not supported. OpenAIChatCompletionClient, from the same package, works with any OpenAI-compatible provider.
  • With that client all three runs passed in about 20 seconds, at $0.0007 to $0.0023 each. The answer text also kept the agent's interim remarks, such as saying it would check another page, ahead of the final answer.
agent.py, after pip install agent-framework httpx
# tools.py holds the shared web_search and read_page functions over Geekflare's APIs,
# common.py the model name, OpenRouter key, system prompt and task.
import asyncio

from agent_framework.openai import OpenAIChatCompletionClient

import tools
from common import BASE_URL, KEY, MODEL, SYSTEM

# OpenAIChatClient uses OpenAI's stateful Responses API, which OpenRouter doesn't
# support; the Chat Completions client works with any OpenAI-compatible provider.
client = OpenAIChatCompletionClient(MODEL, api_key=KEY, base_url=BASE_URL)
agent = client.as_agent(name="Researcher", instructions=SYSTEM, tools=[tools.web_search, tools.read_page])
loop = asyncio.new_event_loop()


def run(task: str) -> str:
    result = loop.run_until_complete(agent.run(task, options={"temperature": 0, "max_tokens": 1024}))
    return result.text
Agent's answerPassedRun 2 of 3 · 21.4 s · $0.0009
Asked: What is the latest stable release of Scrapy, when was it released, and what are two notable changes in it? Use the tools, cite the release notes URL, and answer in under 120 words.

The latest stable release is Scrapy 2.19.0, released 10 September 2026 (the docs list it as 2026-09-10). The GitHub releases page marks it as "Latest."

Two notable changes:

  1. A new RemoteControl extension lets you inspect and control a running crawl over HTTP.
  2. The default priority queue is now DownloaderAwarePriorityQueue.

Sources: https://docs.scrapy.org/en/latest/news.html and https://github.com/scrapy/scrapy/releases. I could only see part of the release notes, so the second change comes from a search snippet of the GitHub release page rather than the full notes.