Microsoft Agent Framework: The Agent Stack Settles
Microsoft is consolidating Semantic Kernel and AutoGen into Agent Framework, while both predecessors enter maintenance mode. We separate mechanical API changes from behavioral drift and present a migration playbook with parity tests for a controlled cutover.
Two Frameworks Were One Too Many
Since 2023, Microsoft has maintained two agent stacks with different strengths. Semantic Kernel is the enterprise SDK; its .NET version reached 1.0 in December 2023 with a commitment to stable APIs. AutoGen emerged from Microsoft Research, shaped multi-agent orchestration, and reached v0.4 in January 2025 with an event-driven architecture. Teams therefore had to choose between production support and research-led orchestration patterns while both roadmaps continued in parallel.
On October 1, 2025, Microsoft ended that fork. Agent Framework entered public preview as an open-source SDK and runtime for .NET and Python, built by the combined Semantic Kernel and AutoGen teams. Both predecessors moved to maintenance mode the same day: bug fixes, security patches, and stability updates continue, but new features do not. The direction for existing systems is now clear. Only the timing and method of migration remain to be chosen.
What Microsoft Agent Framework Is
Agent Framework is a set of libraries for building, orchestrating and deploying agents. On .NET the packages live under Microsoft.Agents.AI on NuGet and target .NET 8 through 10, .NET Standard 2.0 and .NET Framework 4.7.2. The core abstraction is AIAgent; model access goes through the IChatClient interface from Microsoft.Extensions.AI, so any conforming provider SDK plugs in. On Python, agent-framework on PyPI is a meta package over agent-framework-core plus per-provider packages. There is no Java version.
The framework has two layers. Agents cover single-assistant scenarios: instructions, tools, threads. Workflows cover multi-agent scenarios as typed graphs with checkpointing and built-in request-response for human-in-the-loop steps — AutoGen's group-chat patterns rebuilt with production controls. At Ignite on November 18, 2025 Microsoft added durable execution, AG-UI and ChatKit protocol support, and hosted agents in Foundry Agent Service, all in preview.
Maintenance Mode Is a Deadline
Maintenance mode is precisely defined. AutoGen is community-managed and will receive no new features; its repository says so in a warning banner. Semantic Kernel 1.x continues to receive critical fixes, and Microsoft commits to supporting it for at least one year after Agent Framework reaches general availability. That commitment starts a clock. It begins at GA, and GA has not happened yet.
Maintenance mode means neither forced breaking changes nor shutdown; existing workloads keep running. Its consequence is subtler: new model capabilities, connectors, and protocol integrations land only in Agent Framework. Staying therefore does not buy short-term instability. It creates a widening feature gap and, once the support window closes, unpatched dependencies.
What Changes in the Code
Parts of the migration are mechanical. Namespaces move to Microsoft.Agents.AI; message and content types come from Microsoft.Extensions.AI. The Kernel object disappears — dependency injection is plain .NET. Service-specific agent classes collapse into a single ChatClientAgent. The table shows the mapping we use as a checklist.
Other parts cannot be transferred mechanically. Prompt filters, memory connectors, and custom planners have no one-to-one equivalents. AutoGen's AssistantAgent is also single-turn by default, whereas an Agent Framework agent iterates over tool calls until it can answer. A port can overlook those differences, compile cleanly, and still behave differently in production.
| Before (SK / AutoGen) | Agent Framework |
|---|---|
| Microsoft.SemanticKernel namespaces | Microsoft.Agents.AI |
| Kernel as service container | standard DI plus IChatClient |
| ChatCompletionAgent / AzureAIAgent / OpenAIAssistantAgent | ChatClientAgent |
| AutoGen Team and GroupChat | typed workflow graph |
| semantic-kernel / autogen on PyPI | agent-framework |
A Migration Playbook
Our playbook has six steps. First, inventory every agent, tool, connector, memory store, and filter, together with its owner. Second, pin the current Semantic Kernel or AutoGen version so the baseline stops moving. Third, create a seam by routing model access through IChatClient while still on Semantic Kernel; this reduces the later diff. Fourth, port leaf agents before orchestration. Single agents translate almost directly, while group chats need redesign as workflow graphs.
Fifth, run both stacks in parallel behind a feature flag and route a fixed share of traffic to the port. Sixth, cut over one agent at a time rather than one system at a time, and keep rollback available for one release cycle. Rewrite is deliberately absent from the playbook. Where a component needs redesign, do it after parity has been established, not during migration.
Parity Testing Before Cutover
Parity testing compares behavior, not code: the same inputs run against both stacks. Freeze the model version and sampling parameters. On the old stack, record golden transcripts — system prompts, tool-call sequences with arguments, termination reasons, final answers, and token counts — then replay the cases on Agent Framework. Compare structure first: did the same tools run with the same arguments? Only then compare text through embedding similarity or an LLM judge with explicit thresholds. Both stacks emit OpenTelemetry, so their traces can be compared directly.
Parity tests do not prove equivalence. Language-model output is not deterministic, even at temperature zero, so identical answers are the wrong success criterion. What the tests reliably catch is drift you caused: a dropped system prompt, a changed tool schema, lost memory wiring, a different tool-iteration default. That class of bug is the migration risk.
What the Preview Does Not Give You
The preview is not a frozen API. The .NET release of December 19, 2025 — 1.0.0-preview.251219.1 — still contained breaking namespace changes. Some AutoGen model clients have no equivalent yet, and AutoGen's experimental distributed runtime has no counterpart; Agent Framework composes in a single process today. Semantic Kernel's Java SDK has no successor path at all. Teams on these edges should build the parity harness now and defer the port.
Outlook From January 2026
Microsoft said in October that the preview would run for several months, and package releases have arrived roughly every two weeks since. Our January 2026 expectation is therefore a release candidate within weeks and general availability in the first half of the year, most likely in spring. That timing would guarantee Semantic Kernel maintenance into 2027.
The larger development is clearer than the exact date: the framework question in the Microsoft ecosystem is settled. Competition is moving up the stack into hosted runtimes, workflow durability, and governance. At Blue IT Systems, we are applying the playbook above to our own Semantic Kernel codebases and will migrate after the API freeze, not before. We are building the parity harness now because its value does not depend on the GA date.
Sources
- Introducing Microsoft Agent Framework — Microsoft Azure Blog (October 1, 2025)
- Introducing Microsoft Agent Framework (Preview) — .NET Blog (October 1, 2025)
- Semantic Kernel and Microsoft Agent Framework — Agent Framework Blog (October 7, 2025)
- Foundry Agent Service at Ignite 2025 — Microsoft Tech Community (November 18, 2025)
- Agent Framework release dotnet-1.0.0-preview.251219.1 — GitHub (December 19, 2025)
