{"id":5140,"date":"2026-02-19T21:52:57","date_gmt":"2026-02-20T05:52:57","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/semantic-kernel\/?p=5140"},"modified":"2026-02-19T21:52:57","modified_gmt":"2026-02-20T05:52:57","slug":"migrate-your-semantic-kernel-and-autogen-projects-to-microsoft-agent-framework-release-candidate","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/agent-framework\/migrate-your-semantic-kernel-and-autogen-projects-to-microsoft-agent-framework-release-candidate\/","title":{"rendered":"Migrate your Semantic Kernel and AutoGen projects to Microsoft Agent Framework Release Candidate"},"content":{"rendered":"<p>We&#8217;re thrilled to announce that <a href=\"https:\/\/devblogs.microsoft.com\/foundry\/microsoft-agent-framework-reaches-release-candidate\/\">Microsoft Agent Framework has reached <em>Release Candidate<\/em><\/a> status for both <a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.Agents.AI\/\">.NET<\/a> and <a href=\"https:\/\/pypi.org\/project\/agent-framework\/\">Python<\/a>. Release Candidate is an important milestone on the road to General Availability \u2014 it means the API surface is stable, and all features that we intend to release with version 1.0 are complete. Now is the time to move your Semantic Kernel project to Microsoft Agent Framework and give us your feedback before final release. Whether you&#8217;re building a single helpful assistant or orchestrating a team of specialized agents, Agent Framework gives you a consistent, multi-language foundation to do it.<\/p>\n<h2><strong>What is Microsoft Agent Framework?<\/strong><\/h2>\n<p>Microsoft Agent Framework is a comprehensive, open-source framework for building, orchestrating, and deploying AI agents. It&#8217;s the successor to Semantic Kernel and AutoGen, and it provides a unified programming model across .NET and Python with:<\/p>\n<ul>\n<li><strong>Simple agent creation<\/strong> \u2014 go from zero to a working agent in just a few lines of code<\/li>\n<li><strong>Function tools<\/strong> \u2014 give agents the ability to call your code with type-safe tool definitions<\/li>\n<li><strong>Graph-based workflows<\/strong> \u2014 compose agents and functions into sequential, concurrent, handoff, and group chat patterns with streaming, checkpointing, and human-in-the-loop support<\/li>\n<li><strong>Multi-provider support<\/strong> \u2014 works with Microsoft Foundry, Azure OpenAI, OpenAI, GitHub Copilot, Anthropic Claude, AWS Bedrock, Ollama, and more<\/li>\n<li><strong>Interoperability<\/strong> \u2014 supports A2A (Agent-to-Agent), AG-UI, and MCP (Model Context Protocol) standards<\/li>\n<\/ul>\n<h2><strong>Migration from Semantic Kernel and AutoGen<\/strong><\/h2>\n<p>If you&#8217;ve been building agents with Semantic Kernel or AutoGen, Agent Framework is the natural next step. We&#8217;ve published detailed migration guides to help you transition:<\/p>\n<ul>\n<li><a href=\"https:\/\/learn.microsoft.com\/en-us\/agent-framework\/migration-guide\/from-semantic-kernel\">Migration from Semantic Kernel<\/a><\/li>\n<li><a href=\"https:\/\/learn.microsoft.com\/en-us\/agent-framework\/migration-guide\/from-autogen\">Migration from AutoGen<\/a><\/li>\n<\/ul>\n<h2><strong>Create Your First Agent<\/strong><\/h2>\n<p>Getting started takes just a few lines of code. Here&#8217;s how to create a simple agent in both languages.<\/p>\n<p><strong>Python<\/strong><\/p>\n<pre><code>pip install agent-framework --pre<\/code><\/pre>\n<pre class=\"prettyprint language-py\"><code class=\"language-py\">import asyncio\r\nfrom agent_framework.azure import AzureOpenAIResponsesClient\r\nfrom azure.identity import AzureCliCredential\r\n\r\n\r\nasync def main():\r\n    agent = AzureOpenAIResponsesClient(\r\n        credential=AzureCliCredential(),\r\n    ).as_agent(\r\n        name=\"HaikuBot\",\r\n        instructions=\"You are an upbeat assistant that writes beautifully.\",\r\n    )\r\n\r\n    print(await agent.run(\"Write a haiku about Microsoft Agent Framework.\"))\r\n\r\nif __name__ == \"__main__\":\r\n    asyncio.run(main())<\/code><\/pre>\n<p><strong>.NET<\/strong><\/p>\n<pre><code>dotnet add package Microsoft.Agents.AI.OpenAI --prerelease\r\ndotnet add package Azure.Identity<\/code><\/pre>\n<pre class=\"prettyprint language-cs language-csharp\"><code class=\"language-cs language-csharp\">using System.ClientModel.Primitives;\r\nusing Azure.Identity;\r\nusing Microsoft.Agents.AI;\r\nusing OpenAI;\r\nusing OpenAI.Responses;\r\n\r\n\/\/ Replace &lt;resource&gt; and gpt-4.1 with your Azure OpenAI resource name and deployment name.\r\nvar agent = new OpenAIClient(\r\n    new BearerTokenPolicy(new AzureCliCredential(), \"https:\/\/ai.azure.com\/.default\"),\r\n    new OpenAIClientOptions() { Endpoint = new Uri(\"https:\/\/&lt;resource&gt;.openai.azure.com\/openai\/v1\") })\r\n    .GetResponsesClient(\"gpt-4.1\")\r\n    .AsAIAgent(name: \"HaikuBot\", instructions: \"You are an upbeat assistant that writes beautifully.\");\r\n\r\nConsole.WriteLine(await agent.RunAsync(\"Write a haiku about Microsoft Agent Framework.\"));<\/code><\/pre>\n<p>That&#8217;s it \u2014 a working AI agent in a handful of lines. From here you can add function tools, sessions for multi-turn conversations, streaming responses, and more.<\/p>\n<h2><strong>Multi-Agent Workflows<\/strong><\/h2>\n<p>Single agents are powerful, but real-world applications often need multiple agents working together. Agent Framework ships with a workflow engine that lets you compose agents into orchestration patterns \u2014 sequential, concurrent, handoff, and group chat \u2014 all with streaming support built in.<\/p>\n<p>Here&#8217;s a sequential workflow where a copywriter agent drafts a tagline and a reviewer agent provides feedback:<\/p>\n<p><strong>Python<\/strong><\/p>\n<pre><code>pip install agent-framework-orchestrations --pre<\/code><\/pre>\n<pre class=\"prettyprint language-py\"><code class=\"language-py\">import asyncio\r\nfrom typing import cast\r\n\r\nfrom agent_framework import Message\r\nfrom agent_framework.azure import AzureOpenAIChatClient\r\nfrom agent_framework.orchestrations import SequentialBuilder\r\nfrom azure.identity import AzureCliCredential\r\n\r\n\r\nasync def main() -&gt; None:\r\n    client = AzureOpenAIChatClient(credential=AzureCliCredential())\r\n\r\n    writer = client.as_agent(\r\n        instructions=\"You are a concise copywriter. Provide a single, punchy marketing sentence based on the prompt.\",\r\n        name=\"writer\",\r\n    )\r\n\r\n    reviewer = client.as_agent(\r\n        instructions=\"You are a thoughtful reviewer. Give brief feedback on the previous assistant message.\",\r\n        name=\"reviewer\",\r\n    )\r\n\r\n    # Build sequential workflow: writer -&gt; reviewer\r\n    workflow = SequentialBuilder(participants=[writer, reviewer]).build()\r\n\r\n    # Run and collect outputs\r\n    outputs: list[list[Message]] = []\r\n    async for event in workflow.run(\"Write a tagline for a budget-friendly eBike.\", stream=True):\r\n        if event.type == \"output\":\r\n            outputs.append(cast(list[Message], event.data))\r\n\r\n    if outputs:\r\n        for msg in outputs[-1]:\r\n            name = msg.author_name or \"user\"\r\n            print(f\"[{name}]: {msg.text}\")\r\n\r\n\r\nif __name__ == \"__main__\":\r\n    asyncio.run(main())<\/code><\/pre>\n<p><strong>.NET<\/strong><\/p>\n<pre><code>dotnet add package Microsoft.Agents.AI.Workflows --prerelease<\/code><\/pre>\n<pre class=\"prettyprint language-cs language-csharp\"><code class=\"language-cs language-csharp\">using System.ClientModel.Primitives;\r\nusing Azure.Identity;\r\nusing Microsoft.Agents.AI;\r\nusing Microsoft.Agents.AI.Workflows;\r\nusing Microsoft.Extensions.AI;\r\nusing OpenAI;\r\n\r\n\/\/ Replace &lt;resource&gt; and gpt-4.1 with your Azure OpenAI resource name and deployment name.\r\nvar chatClient = new OpenAIClient(\r\n    new BearerTokenPolicy(new AzureCliCredential(), \"https:\/\/ai.azure.com\/.default\"),\r\n    new OpenAIClientOptions() { Endpoint = new Uri(\"https:\/\/&lt;resource&gt;.openai.azure.com\/openai\/v1\") })\r\n    .GetChatClient(\"gpt-4.1\")\r\n    .AsIChatClient();\r\n\r\nChatClientAgent writer = new(chatClient,\r\n    \"You are a concise copywriter. Provide a single, punchy marketing sentence based on the prompt.\",\r\n    \"writer\");\r\n\r\nChatClientAgent reviewer = new(chatClient,\r\n    \"You are a thoughtful reviewer. Give brief feedback on the previous assistant message.\",\r\n    \"reviewer\");\r\n\r\n\/\/ Build sequential workflow: writer -&gt; reviewer\r\nWorkflow workflow = AgentWorkflowBuilder.BuildSequential(writer, reviewer);\r\n\r\nList&lt;ChatMessage&gt; messages = [new(ChatRole.User, \"Write a tagline for a budget-friendly eBike.\")];\r\n\r\nawait using StreamingRun run = await InProcessExecution.RunStreamingAsync(workflow, messages);\r\n\r\nawait run.TrySendMessageAsync(new TurnToken(emitEvents: true));\r\nawait foreach (WorkflowEvent evt in run.WatchStreamAsync())\r\n{\r\n    if (evt is AgentResponseUpdateEvent e)\r\n    {\r\n        Console.Write(e.Update.Text);\r\n    }\r\n}<\/code><\/pre>\n<h2><strong>What&#8217;s Next?<\/strong><\/h2>\n<p>This Release Candidate represents an important step toward General Availability. We encourage you to try the framework and share your feedback \u2014 your input is invaluable as we finalize the release in the coming weeks.<\/p>\n<p>For more information, check out our <a href=\"https:\/\/learn.microsoft.com\/en-us\/agent-framework\/\">documentation<\/a> and examples on <a href=\"https:\/\/github.com\/microsoft\/agent-framework\">GitHub<\/a>, and install the latest packages from <a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.Agents.AI\/\">NuGet (.NET)<\/a> or <a href=\"https:\/\/pypi.org\/project\/agent-framework\/\">PyPI (Python)<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>We&#8217;re thrilled to announce that Microsoft Agent Framework has reached Release Candidate status for both .NET and Python. Release Candidate is an important milestone on the road to General Availability \u2014 it means the API surface is stable, and all features that we intend to release with version 1.0 are complete. Now is the time [&hellip;]<\/p>\n","protected":false},"author":156732,"featured_media":5048,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[78,143,47,34],"tags":[],"class_list":["post-5140","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-net","category-agent-framework","category-announcement","category-python-2"],"acf":[],"blog_post_summary":"<p>We&#8217;re thrilled to announce that Microsoft Agent Framework has reached Release Candidate status for both .NET and Python. Release Candidate is an important milestone on the road to General Availability \u2014 it means the API surface is stable, and all features that we intend to release with version 1.0 are complete. Now is the time [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-json\/wp\/v2\/posts\/5140","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-json\/wp\/v2\/users\/156732"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-json\/wp\/v2\/comments?post=5140"}],"version-history":[{"count":2,"href":"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-json\/wp\/v2\/posts\/5140\/revisions"}],"predecessor-version":[{"id":5155,"href":"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-json\/wp\/v2\/posts\/5140\/revisions\/5155"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-json\/wp\/v2\/media\/5048"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-json\/wp\/v2\/media?parent=5140"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-json\/wp\/v2\/categories?post=5140"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-json\/wp\/v2\/tags?post=5140"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}