{"id":4789,"date":"2025-05-27T09:54:32","date_gmt":"2025-05-27T16:54:32","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/semantic-kernel\/?p=4789"},"modified":"2025-05-27T09:57:27","modified_gmt":"2025-05-27T16:57:27","slug":"semantic-kernel-multi-agent-orchestration","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/agent-framework\/semantic-kernel-multi-agent-orchestration\/","title":{"rendered":"Semantic Kernel: Multi-agent Orchestration"},"content":{"rendered":"<p>The field of AI is rapidly evolving, and the need for more sophisticated, collaborative, and flexible agent-based systems is growing. With this in mind, Semantic Kernel introduces a new multi-agent orchestration framework that enables developers to build, manage, and scale complex agent workflows with ease. This post explores the new orchestration patterns, their capabilities, and how you can leverage them in your own projects.<\/p>\n<div><div class=\"alert alert-success\"><p class=\"alert-divider\"><i class=\"fabric-icon fabric-icon--Lightbulb\"><\/i><strong>Optional reading<\/strong><\/p><a href=\"https:\/\/devblogs.microsoft.com\/semantic-kernel\/semantic-kernel-agents-are-now-generally-available\/\">Semantic Kernel Agents are now Generally Available<\/a><\/div><\/div>\n<h3>Why Multi-agent Orchestration?<\/h3>\n<p>Traditional single-agent systems are limited in their ability to handle complex, multi-faceted tasks. By orchestrating multiple agents, each with specialized skills or roles, we can create systems that are more robust, adaptive, and capable of solving real-world problems collaboratively. Multi-agent orchestration in Semantic Kernel provides a flexible foundation for building such systems, supporting a variety of coordination patterns.<\/p>\n<h3>Orchestration Patterns<\/h3>\n<div>Semantic Kernel now supports several orchestration patterns, each designed for different collaboration scenarios. These patterns are available as part of the framework and can be easily extended or customized.<\/div>\n<p>&nbsp;<\/p>\n<h4>1. Sequential Orchestration<\/h4>\n<p>In the sequential pattern, agents are organized in a pipeline. Each agent processes the task in turn, passing its output to the next agent in the sequence. This is ideal for workflows where each step builds upon the previous one, such as document review, data processing pipelines, or multi-stage reasoning.<\/p>\n<h5>Use case example<\/h5>\n<p>A document passes through a summarization agent, then a translation agent, and finally a quality assurance agent, each building on the previous output:<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/semantic-kernel\/wp-content\/uploads\/sites\/78\/2025\/05\/sequential.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-4810\" src=\"https:\/\/devblogs.microsoft.com\/semantic-kernel\/wp-content\/uploads\/sites\/78\/2025\/05\/sequential.png\" alt=\"sequential image\" width=\"339\" height=\"594\" srcset=\"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-content\/uploads\/sites\/78\/2025\/05\/sequential.png 339w, https:\/\/devblogs.microsoft.com\/agent-framework\/wp-content\/uploads\/sites\/78\/2025\/05\/sequential-171x300.png 171w\" sizes=\"(max-width: 339px) 100vw, 339px\" \/><\/a><\/p>\n<h4>2. Concurrent Orchestration<\/h4>\n<p>The concurrent pattern enables multiple agents to work on the same task in parallel. Each agent processes the input independently, and their results are collected and aggregated. This approach is well-suited for scenarios where diverse perspectives or solutions are valuable, such as brainstorming, ensemble reasoning, or voting systems.<\/p>\n<h5>Use case example<\/h5>\n<p>Multiple agents generate different solutions to a problem, and their responses are collected for further analysis or selection:<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/semantic-kernel\/wp-content\/uploads\/sites\/78\/2025\/05\/concurrent.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-4808\" src=\"https:\/\/devblogs.microsoft.com\/semantic-kernel\/wp-content\/uploads\/sites\/78\/2025\/05\/concurrent.png\" alt=\"concurrent image\" width=\"744\" height=\"350\" srcset=\"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-content\/uploads\/sites\/78\/2025\/05\/concurrent.png 744w, https:\/\/devblogs.microsoft.com\/agent-framework\/wp-content\/uploads\/sites\/78\/2025\/05\/concurrent-300x141.png 300w\" sizes=\"(max-width: 744px) 100vw, 744px\" \/><\/a><\/p>\n<h4>3. Group Chat Orchestration<\/h4>\n<p>Group chat orchestration models a collaborative conversation among agents, optionally including a human participant. A group chat manager coordinates the flow, determining which agent should respond next and when to request human input. This pattern is powerful for simulating meetings, debates, or collaborative problem-solving sessions.<\/p>\n<h5>Use case example<\/h5>\n<p>Agents representing different departments discuss a business proposal, with a manager agent moderating the conversation and involving a human when needed:<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/semantic-kernel\/wp-content\/uploads\/sites\/78\/2025\/05\/group_chat.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-4809\" src=\"https:\/\/devblogs.microsoft.com\/semantic-kernel\/wp-content\/uploads\/sites\/78\/2025\/05\/group_chat.png\" alt=\"group chat image\" width=\"743\" height=\"379\" srcset=\"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-content\/uploads\/sites\/78\/2025\/05\/group_chat.png 743w, https:\/\/devblogs.microsoft.com\/agent-framework\/wp-content\/uploads\/sites\/78\/2025\/05\/group_chat-300x153.png 300w\" sizes=\"(max-width: 743px) 100vw, 743px\" \/><\/a><\/p>\n<h4>4. Handoff Orchestration<\/h4>\n<p>Handoff orchestration allows agents to transfer control to one another based on the context or user request. Each agent can &#8220;handoff&#8221; the conversation to another agent with the appropriate expertise, ensuring that the right agent handles each part of the task. This is particularly useful in customer support, expert systems, or any scenario requiring dynamic delegation.<\/p>\n<h5>Use case example<\/h5>\n<p>A customer support agent handles a general inquiry, then hands off to a technical expert agent for troubleshooting, or to a billing agent if needed:<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/semantic-kernel\/wp-content\/uploads\/sites\/78\/2025\/05\/Handoff-1.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-4837\" src=\"https:\/\/devblogs.microsoft.com\/semantic-kernel\/wp-content\/uploads\/sites\/78\/2025\/05\/Handoff-1.png\" alt=\"Handoff image\" width=\"825\" height=\"649\" srcset=\"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-content\/uploads\/sites\/78\/2025\/05\/Handoff-1.png 825w, https:\/\/devblogs.microsoft.com\/agent-framework\/wp-content\/uploads\/sites\/78\/2025\/05\/Handoff-1-300x236.png 300w, https:\/\/devblogs.microsoft.com\/agent-framework\/wp-content\/uploads\/sites\/78\/2025\/05\/Handoff-1-768x604.png 768w\" sizes=\"(max-width: 825px) 100vw, 825px\" \/><\/a><\/p>\n<h4>5. Magentic Orchestration<\/h4>\n<p>Magentic orchestration is designed based on the <a href=\"https:\/\/microsoft.github.io\/autogen\/stable\/user-guide\/agentchat-user-guide\/magentic-one.html\">MagenticOne<\/a> pattern invented by AutoGen. It is a flexible, general-purpose multi-agent pattern designed for complex, open-ended tasks that require dynamic collaboration. In this pattern, a dedicated Magentic manager coordinates a team of specialized agents, selecting which agent should act next based on the evolving context, task progress, and agent capabilities.<\/p>\n<p>The Magentic manager maintains a shared context, tracks progress, and adapts the workflow in real time. This enables the system to break down complex problems, delegate subtasks, and iteratively refine solutions through agent collaboration. The orchestration is especially well-suited for scenarios where the solution path is not known in advance and may require multiple rounds of reasoning, research, and computation.<\/p>\n<h5>Use case example<\/h5>\n<p>A user requests a comprehensive report comparing the energy efficiency and CO\u2082 emissions of different machine learning models. The Magentic manager first assigns a research agent to gather relevant data, then delegates analysis and computation to a coder agent. The manager coordinates multiple rounds of research and computation, aggregates the findings, and produces a detailed, structured report as the final output.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/semantic-kernel\/wp-content\/uploads\/sites\/78\/2025\/05\/magentic.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-4826\" src=\"https:\/\/devblogs.microsoft.com\/semantic-kernel\/wp-content\/uploads\/sites\/78\/2025\/05\/magentic.png\" alt=\"magentic image\" width=\"2263\" height=\"1493\" srcset=\"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-content\/uploads\/sites\/78\/2025\/05\/magentic.png 2263w, https:\/\/devblogs.microsoft.com\/agent-framework\/wp-content\/uploads\/sites\/78\/2025\/05\/magentic-300x198.png 300w, https:\/\/devblogs.microsoft.com\/agent-framework\/wp-content\/uploads\/sites\/78\/2025\/05\/magentic-1024x676.png 1024w, https:\/\/devblogs.microsoft.com\/agent-framework\/wp-content\/uploads\/sites\/78\/2025\/05\/magentic-768x507.png 768w, https:\/\/devblogs.microsoft.com\/agent-framework\/wp-content\/uploads\/sites\/78\/2025\/05\/magentic-1536x1013.png 1536w, https:\/\/devblogs.microsoft.com\/agent-framework\/wp-content\/uploads\/sites\/78\/2025\/05\/magentic-2048x1351.png 2048w\" sizes=\"(max-width: 2263px) 100vw, 2263px\" \/><\/a><\/p>\n<p><em>*Image by <a href=\"https:\/\/microsoft.github.io\/autogen\/stable\/user-guide\/agentchat-user-guide\/magentic-one.html\">AutoGen<\/a><\/em><\/p>\n<p><div class=\"alert alert-success\"><p class=\"alert-divider\"><i class=\"fabric-icon fabric-icon--Lightbulb\"><\/i><strong>More orchestration patterns<\/strong><\/p>Semantic Kernel is also actively exploring additional popular agentic patterns to further enrich the framework. We encourage the community to share feedback and propose unique use cases, helping us continuously expand and improve the orchestration capabilities. Your insights and experiences are invaluable as we work together to make multi-agent development even more powerful and accessible.<\/div><\/p>\n<h3>Simplicity and Developer-friendly<\/h3>\n<p>All orchestration patterns share a unified interface for construction and invocation. No matter which orchestration you choose, you:<\/p>\n<ul>\n<li>Define your agents and their capabilities, see <a href=\"https:\/\/devblogs.microsoft.com\/semantic-kernel\/semantic-kernel-agents-are-now-generally-available\/\">Semantic Kernel Agents<\/a>.<\/li>\n<li>Create an orchestration by passing the agents (and, if needed, a manager).<\/li>\n<li>Optionally provide callbacks or transforms for custom input\/output handling.<\/li>\n<li>Start a runtime and invoke the orchestration with a task.<\/li>\n<li>Await the result in a consistent, asynchronous manner.<\/li>\n<\/ul>\n<p>This unified approach means you can easily switch between orchestration patterns, without learning new APIs or rewriting your agent logic. The framework abstracts away the complexity of agent communication, coordination, and result aggregation, letting you focus on your application&#8217;s goals.<\/p>\n<p>Python<\/p>\n<pre class=\"prettyprint language-py\"><code class=\"language-py\"># Choose an orchestration pattern with your agents\r\norchestration = SequentialOrchestration(members=[agent_a, agent_b])\r\n# or ConcurrentOrchestration, GroupChatOrchestration, HandoffOrchestration, MagenticOrchestration, ...\r\n\r\n# Start the runtime\r\nruntime = InProcessRuntime()\r\nruntime.start()\r\n\r\n# Invoke the orchestration\r\nresult = await orchestration.invoke(task=\"Your task here\", runtime=runtime)\r\n\r\n# Get the result\r\nfinal_output = await result.get()\r\n\r\nawait runtime.stop_when_idle()<\/code><\/pre>\n<p>.Net<\/p>\n<pre class=\"prettyprint language-cs language-csharp\"><code class=\"language-cs language-csharp\">\/\/ Choose an orchestration pattern with your agents\r\nSequentialOrchestration orchestration = new(agentA, agentB)\r\n{\r\n    LoggerFactory = this.LoggerFactory\r\n};  \/\/ or ConcurrentOrchestration, GroupChatOrchestration, HandoffOrchestration, MagenticOrchestration, ...\r\n\r\n\/\/ Start the runtime\r\nInProcessRuntime runtime = new();\r\nawait runtime.StartAsync();\r\n\r\n\/\/ Invoke the orchestration and get the result\r\nOrchestrationResult&lt;string&gt; result = await orchestration.InvokeAsync(task, runtime);\r\nstring text = await result.GetValueAsync();\r\n\r\nawait runtime.RunUntilIdleAsync();<\/code><\/pre>\n<p>This consistency makes orchestrating multi-agent solutions easier than ever before\u2014whether you are building simple pipelines or advanced, dynamic agent teams. Developers can rapidly prototype, experiment, and scale their multi-agent systems with minimal friction.<\/p>\n<h3>Getting Started<\/h3>\n<p>To help you get started, Semantic Kernel provides a set of samples demonstrating each orchestration pattern. These samples showcase how to define agents, configure orchestrations, and run collaborative workflows. You can find them via the following links:<\/p>\n<ul>\n<li>Python: <a href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/tree\/main\/python\/samples\/getting_started_with_agents\/multi_agent_orchestration\">semantic-kernel\/python\/samples\/getting_started_with_agents\/multi_agent_orchestration at main \u00b7 microsoft\/semantic-kernel<\/a><\/li>\n<li>.Net: <a href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/tree\/main\/dotnet\/samples\/GettingStartedWithAgents\/Orchestration\">semantic-kernel\/dotnet\/samples\/GettingStartedWithAgents\/Orchestration at main \u00b7 microsoft\/semantic-kernel<\/a><\/li>\n<\/ul>\n<p>For more in-depth documentations, please visit the <a href=\"https:\/\/learn.microsoft.com\/en-us\/semantic-kernel\/frameworks\/agent\/agent-orchestration\/\">Microsoft Learn site<\/a> for Semantic Kernel Multi-agent Orchestration.<\/p>\n<h3>Conclusion<\/h3>\n<p>Multi-agent orchestration in Semantic Kernel unlocks new possibilities for building intelligent, collaborative systems. Whether you need sequential processing, parallel brainstorming, group conversations, or dynamic handoffs, the new orchestration framework provides the tools you need to design and implement advanced agent workflows.<\/p>\n<p>Explore the samples, experiment with different patterns, and start building your own multi-agent solutions today!<\/p>\n<p>&nbsp;<\/p>\n<p><em>The Semantic Kernel team is dedicated to empowering developers by providing access to the latest advancements in the industry. We encourage you to leverage your creativity and build remarkable solutions with SK! Please reach out if you have any questions or feedback through our\u00a0<a href=\"https:\/\/github.com\/microsoft\/semantic-kernel\/discussions\/categories\/general\" target=\"_blank\" rel=\"noopener\">Semantic Kernel GitHub Discussion Channel<\/a>. We look forward to hearing from you!\u00a0We would also love your support, if you\u2019ve enjoyed using Semantic Kernel, give us a star on\u00a0<a href=\"https:\/\/github.com\/microsoft\/semantic-kernel\" target=\"_blank\" rel=\"noopener\">GitHub<\/a>.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The field of AI is rapidly evolving, and the need for more sophisticated, collaborative, and flexible agent-based systems is growing. With this in mind, Semantic Kernel introduces a new multi-agent orchestration framework that enables developers to build, manage, and scale complex agent workflows with ease. This post explores the new orchestration patterns, their capabilities, and [&hellip;]<\/p>\n","protected":false},"author":165150,"featured_media":2364,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-4789","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-semantic-kernel"],"acf":[],"blog_post_summary":"<p>The field of AI is rapidly evolving, and the need for more sophisticated, collaborative, and flexible agent-based systems is growing. With this in mind, Semantic Kernel introduces a new multi-agent orchestration framework that enables developers to build, manage, and scale complex agent workflows with ease. This post explores the new orchestration patterns, their capabilities, and [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-json\/wp\/v2\/posts\/4789","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\/165150"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-json\/wp\/v2\/comments?post=4789"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-json\/wp\/v2\/posts\/4789\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-json\/wp\/v2\/media\/2364"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-json\/wp\/v2\/media?parent=4789"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-json\/wp\/v2\/categories?post=4789"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/agent-framework\/wp-json\/wp\/v2\/tags?post=4789"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}