Generative AI

How to migrate from Semantic Kernel to Microsoft Agent Framework

This is a practical guide to migrating a Semantic Kernel system to Microsoft Agent Framework, written for teams that have decided to do it. That qualifier matters, because migration timing depends on your situation. Semantic Kernel is in maintenance and done getting new features, so new work belongs on Agent Framework and a Semantic Kernel system hitting its limits should move, the argument we make in build new .NET agents on Microsoft Agent Framework. So the first step of any migration is confirming you actually want its results: the improved multi-agent orchestration, durable execution, or native MCP and A2A that Agent Framework added. If you have made that call, the good news is that this is an evolution rather than a from-scratch rebuild, because the two frameworks share a foundation. This walks through what carries over, what changes, and how to sequence the work.

We migrate .NET agent systems between these frameworks, so this is the practitioner's version, not a changelog.

Step zero: confirm you should migrate

The most important step happens before you touch any code, because the wrong reason to migrate leads to work with no payoff. Migrating because Agent Framework is newer is not a reason; migrating because you need something it has is. Good reasons: you want the unified multi-agent orchestration (sequential, concurrent, handoff, group patterns) that is more capable than Semantic Kernel's, you need durable execution and checkpointing for long-running workflows that must survive restarts, or you want native MCP and A2A rather than building that integration yourself.

Weak reasons: the system works fine but you feel you should be on the latest thing, or a blog post said Semantic Kernel is dead. A functioning Semantic Kernel application that does not need the new capabilities gains little from migration and costs real effort, which is the over-automation trap of doing work that costs more than it returns, covered in the cost of over-automation. So before planning the migration, write down the specific Agent Framework capability you are migrating to get. If you cannot name one, the migration is probably not worth doing yet. If you can, the rest of this guide is for you.

What carries over

The reason this is a migration and not a rewrite is that the foundation is shared, and knowing what stays stable tells you where not to spend effort. Both Semantic Kernel and Agent Framework build on Microsoft.Extensions.AI, the provider-agnostic abstraction layer (IChatClient, embeddings, tools), so the layer where your code connects to models is largely unchanged, the layer we cover in Microsoft.Extensions.AI explained. Your model provider configuration, your embedding setup, and much of the surrounding infrastructure carry over with little change.

The conceptual model carries over too, which makes the migration mostly a matter of translating between two dialects rather than learning a new language. Semantic Kernel and Agent Framework both have the concepts of agents, tools (plugins), and function calling; what changes is the API used to express them, not the ideas. And the non-AI parts of your application, business logic, data access, web layer, are untouched entirely. So the migration is contained: it touches the agent and orchestration code specifically, and leaves the model-access layer and the rest of the application largely alone. That containment is what makes it plannable.

What changes, layer by layer

The work sorts into three layers by effort:

  • Packages and namespaces (mechanical). Swap Semantic Kernel packages for the Microsoft.Agents.AI family and update namespaces and using directives. This is find-and-replace-adjacent, tedious but low-risk, and it is where you start.
  • Agent construction and plugins (moderate). How you define and instantiate an agent changes to Agent Framework's API, and Semantic Kernel plugins map to Agent Framework's tool model with updated registration. The concepts are preserved, so this is translation: the same agent, expressed in the new API. Function-calling logic is largely conceptual-stable.
  • Orchestration (the real work, and the payoff). This is where the effort concentrates and where the benefit is. If you used Semantic Kernel's orchestration, or AutoGen's, you move to Agent Framework's unified model (sequential, concurrent, handoff, group chat), which is also your opportunity to adopt durable execution and checkpointing. This layer is rewritten rather than translated, but it is rewritten into something more capable, which is presumably why you are migrating.

The shape of the work: mechanical at the bottom, translation in the middle, genuine redesign at the top, where the new capabilities live.

How to sequence it: incremental, not big-bang

The failure mode is trying to migrate everything at once and losing the ability to tell what broke. The approach that works is incremental, with verification at each step:

  • Start with the abstraction layer. Confirm your code depends cleanly on Microsoft.Extensions.AI abstractions, since that shared base makes everything above it easier to move.
  • Do the mechanical layer next. Packages and namespaces, in one pass, so the project builds against Agent Framework before you change behavior.
  • Migrate agents one at a time. Move individual agent definitions and their tools, verifying each against its old behavior before moving on, rather than converting all agents simultaneously.
  • Rebuild orchestration deliberately. This is the substantive part, so treat it as real design work, and adopt durable execution or MCP/A2A here if those were your reasons to migrate.
  • Verify at every step. Apply the same verification discipline you would to any production change, comparing new behavior against old, the principle in how AI agents write production code.

Sequenced this way, you always have a working system and a clear picture of what each change did, which is what keeps a migration from becoming a rewrite in disguise.

The takeaway

Migrating from Semantic Kernel to Microsoft Agent Framework starts with confirming you should: Semantic Kernel is in maintenance, not dead, so migrate only to get a specific capability, improved multi-agent orchestration, durable execution, or native MCP and A2A, not because the newer framework exists. Once you have decided, it is an evolution rather than a rewrite, because both share the Microsoft.Extensions.AI foundation: the model-access layer and non-AI code largely carry over, and the work sorts into mechanical package and namespace changes, moderate agent and plugin translation, and the real effort of rebuilding orchestration, which is also where the new capabilities pay off. Do it incrementally with verification at each step, and it stays a controlled migration rather than a big-bang rebuild.

If you want a Semantic Kernel system migrated to Microsoft Agent Framework cleanly, or help deciding whether the migration is worth it for your case, that is worth a conversation. Book a 15-minute call and we will scope it for your codebase.

FAQ

Should I migrate from Semantic Kernel to Microsoft Agent Framework? Only if you need a capability Agent Framework added: improved multi-agent orchestration, durable execution and checkpointing, or native MCP and A2A. Semantic Kernel is in maintenance but still works and is supported, so a system that does not need those features is fine to leave in place. Migrate to get something specific, not because the newer framework exists.

Is migrating from Semantic Kernel a full rewrite? No. Both frameworks build on the same Microsoft.Extensions.AI foundation, so your model-access layer and non-AI code largely carry over, and the core concepts (agents, tools, function calling) are preserved with changed APIs. The real work is in the agent construction, plugin-to-tool mapping, and orchestration layers, not the whole application.

What is the hardest part of the migration? The orchestration layer. Package and namespace changes are mechanical, and agent and plugin migration is mostly translation between APIs, but orchestration is rewritten into Agent Framework's unified model. That is also where the payoff is, since it is where durable execution and the improved multi-agent patterns live, the capabilities you migrated to get.

How long does a Semantic Kernel to Agent Framework migration take? It depends on how much orchestration you have, since that is the substantive layer. The mechanical and translation layers are fast; the orchestration rebuild scales with complexity. Doing it incrementally, one agent at a time with verification, spreads the work and keeps a working system throughout rather than concentrating risk in a big-bang cutover.

Can I run Semantic Kernel and Agent Framework side by side during migration? Yes. Because both build on Microsoft.Extensions.AI, they can coexist in the same estate, which is what makes an incremental migration possible, you move agents one at a time rather than converting everything at once, keeping the system running throughout.

You know what you want to build. Let's go ship it.

Book a 15-min call
Book a 15-min call
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.