引言

微软正在积极构建其人工智能(AI)开发者生态系统,旨在为开发者提供从实验研究到生产部署的全方位支持。在这一宏大蓝图中,AutoGen、Semantic Kernel (SK) 和 Microsoft.Extensions.AI (MEAI) 是三个关键的框架组件,各自扮演着独特且相互关联的角色。
下图来自微软2025 Buid大会上 SK 和AutoGen首席产品经理(Shawn Henry)的分享:Building the digital workforce: Multi-agent apps with Azure AI Foundr

根据分享内容,及结合上图:我理解是微软会逐步把 ag 成熟的 feature 迁移到 sk 中,而不是 sk 与 ag 的互通。从定位来看,ag 用于研究开发预演 MVP,sk 是生产 ready。最近官方把 ag 的 multi-Agent 的 orchestration 迁移到 sk 就是一个很好的例证。
ag 用于预演,将成熟的功能迁移到 sk,再把 sk 中可以统一抽象的功能再下放到.NET,实现 AI 能力的合理分布。
ag -> sk <--> meai,能力逐级下放,sk 博采众长。
接下来,将具体展开介绍下微软在AI Agent 开发者生态的布局,特别是这三个框架的布局,明确它们之间的关系和演进方向,以期给广大.NET 开发者点名方向。
三者定位
微软正在构建一个分层且协同的 AI 开发平台:
- Microsoft.Extensions.AI (MEAI) 定位于.NET 生态系统的 AI 功能基础抽象层,提供如 IChatClient 和 IEmbeddingGenerator 等核心接口,旨在统一和简化.NET 应用与各类 AI 服务的集成方式 。
- Semantic Kernel (SK) 是微软企业级 AI 应用的核心编排框架,支持生产环境的智能应用(包括 Copilot 类应用和 Agent 系统)开发 。它不仅提供插件、内存管理、流程自动化等高级功能,还在积极整合 AutoGen 的多智能体研究成果,致力于成为一个统一的、生产就绪的智能体 AI 工具包 。
- AutoGen (AG) 则扮演着 AI 前沿研究和多智能体协作模式探索的"试验田"角色 。它为研究人员和开发者提供了一个灵活的环境,用于快速原型设计和验证复杂的、动态的多智能体工作流,其成熟的功能和模式会逐步迁移到 Semantic Kernel 中 。
三者之间的演进关系体现为一种战略性的能力整合与分层:AutoGen 的前沿多智能体功能在成熟后被吸纳进 Semantic Kernel,增强其生产级应用构建能力;而 Semantic Kernel 在其.NET 实现中,则构建于 Microsoft.Extensions.AI 提供的标准化基础抽象之上。

下表从不同特性,展示了三者的差异:
特性维度 | Microsoft.Extensions.AI (MEAI) | Semantic Kernel (SK) | AutoGen (AG) |
---|---|---|---|
主要目的 | 为.NET 提供基础 AI 抽象 | AI 编排和构建生产级智能体应用 | 研究和开发高级多智能体 AI 系统 |
核心功能 | IChatClient, IEmbeddingGenerator, 依赖注入/中间件模式 | 内核 (Kernel), 插件 (Plugins), 内存 (Memory), 智能体框架 (Agent Framework), 流程框架 (Process Framework), 多智能体编排, 连接器 | 多智能体对话, Core API (事件驱动, 分布式), AgentChat API, AutoGen Studio |
目标用例 | 生产环境 (作为基础库) | 生产环境 | 研究, 原型设计, MVP 开发 |
核心抽象/组件 | IChatClient, IEmbeddingGenerator<TInput, TEmbedding> | Kernel, KernelFunction (AI Function), Agent, ChatCompletionService (与 IChatClient 对齐) | Agent, ConversableAgent, AssistantAgent, UserProxyAgent |
语言支持 | C# (.NET) | C#, Python, Java | Python,.NET (通过 Core API 互操作) |
关键战略角色与相互关系 | 为.NET 生态系统提供标准化的 AI 构建模块;SK 在其.NET 实现中构建于其上。 | 微软核心的企业级 AI 框架,整合 AG 的创新成果,在.NET 中构建于 MEAI 之上。驱动微软 Copilot 产品。 | AI 智能体领域的创新引擎;成熟的特性和模式被迁移或合并到 SK 中,以供生产使用。 |
Microsoft.Extensions.AI (MEAI):.NET AI 集成的基石

Microsoft.Extensions.AI (MEAI) 是一系列旨在为.NET 开发者提供与各种人工智能服务进行集成和交互的统一方法的库 。它的核心目标是提供一组通用的抽象,从而简化.NET 应用程序中生成式 AI 组件的表示,并实现与不同 AI 服务的无缝集成和互操作性。
MEAI 的核心功能主要围绕两个关键接口展开:IChatClient 和 IEmbeddingGenerator<TInput, TEmbedding> 。
- IChatClient 定义了与提供聊天功能的 AI 服务交互的客户端抽象。它包含了发送和接收消息的方法,这些消息可以包含文本、图像和音频等多模态内容,并且可以作为完整集合或增量流式传输 。任何提供大语言模型 (LLM) 客户端的.NET 库都可以实现 IChatClient 接口,以便与消费代码无缝集成。
- IEmbeddingGenerator<TInput, TEmbedding> 则代表了一个通用的嵌入生成器接口,允许开发者为各种类型的输入数据生成向量嵌入 。
MEAI 的设计目标是促进.NET 生态系统中 AI 功能的标准化和可移植性。通过提供这些核心抽象,MEAI 使得库开发者可以使其 AI 服务客户端轻松集成到.NET 应用中;服务消费者可以构建不依赖于特定 AI 服务的库;应用开发者则可以更方便地在不同 AI 模型和服务之间切换,并简化测试和模拟过程 。此外,MEAI 充分利用了.NET 中成熟的依赖注入 (DI) 和中间件模式,使开发者能够轻松地将自动函数工具调用、遥测和缓存等组件集成到其应用程序中 。
这种标准化的底层抽象为更高级别的 AI 框架(如 Semantic Kernel)在.NET 环境中运行提供了坚实的基础。MEAI 的出现,标志着微软致力于降低.NET 开发者使用 AI 技术的门槛,并推动形成一个更加统一和强大的.NET AI 生态系统。
Semantic Kernel (SK):企业级 AI 编排与智能体构建的引擎

Semantic Kernel (SK) 是微软推出的一个开源 SDK,旨在帮助 C#、Python 和 Java 开发者构建智能、可扩展的应用程序,包括 Copilot 类应用和智能体系统 。它在微软的 AI 战略中占据核心地位,不仅驱动着微软自身的 Copilot 系统(如 Microsoft 365 Copilot 和 Bing),更被定位为"微软企业 AI 故事的核心" ,并计划整合来自 AutoGen 的高级多智能体功能,最终形成一个统一的智能体 AI 工具包 。
Semantic Kernel 的核心概念包括:
- Kernel (内核):作为框架的中心协调者,负责管理插件、内存和执行流程 。
- Plugins (插件):允许开发者将现有代码(无论是原生函数还是提示工程)封装为可供 AI 调用的技能。SK 支持通过 OpenAPI 规范导入插件,增强了其模块化和可扩展性 。
- Memory (记忆):为 AI 应用提供短期和长期记忆能力,使其能够基于上下文进行更智能的交互 。
SK 提供了强大的框架支持,包括 Agent Framework (智能体框架) 和 Process Framework (流程框架) ,使开发者能够设计和实现复杂的、目标驱动的智能体和自动化工作流。其对企业级应用的支持体现在对稳定性的承诺(例如 v1.0+ 版本对非破坏性变更的承诺)、以及内置的企业组件,如可观测性(Observability)和安全筛选器(Filters)。
Semantic Kernel 的战略意义远不止一个 SDK。它正在被打造为微软企业级 AI 开发的中心枢纽。微软期望企业通过这个可信赖的平台来构建和部署复杂的 AI 解决方案,该平台不仅集成了来自 AutoGen 等研究项目的前沿创新,也与 Microsoft.Extensions.AI 等基础组件实现了标准化对接。
值得注意的是,Semantic Kernel 正从一个强大的 LLM 编排器迅速演变为一个全面的智能体框架。随着 Agent Framework 1.0 的正式发布以及对 AutoGen 多智能体模式(如 Magentic 编排模式 )的集成计划 ,SK 的能力边界正在不断扩展。这一战略演进使得 SK 能够从简单的任务自动化迈向支持更复杂的协作式智能体系统,与 AI 领域向智能体架构发展的广泛趋势保持一致。
"Semantic Kernel 是我们 AI 应用的、生产就绪的、稳定的框架......Semantic Kernel 将是我们合并所有通过 AutoGen 开发的、先进的、研究驱动的多智能体功能的主要场所,从而创建一个单一、统一的智能体 AI 工具包"
-- 微软 Semantic Kernel 和 AutoGen 的产品负责人 Shawn Henry
AutoGen:高级智能体 AI 的孵化器与试验场
AutoGen 是微软推出的一个旨在简化 AI 智能体(尤其是多智能体协作)应用开发的框架 。它为开发者提供了构建能够通过相互对话来解决复杂任务的多个智能体的能力。
AutoGen 的核心功能通过几层 API 提供:
- Core API:实现了事件驱动的、分布式的、可扩展的智能体系统。它支持异步消息传递,并允许 Python 和.NET 智能体之间的互操作,为构建复杂和强大的多智能体应用奠定了基础 。
- AgentChat API:在 Core API 之上构建,提供了一个更简单、更具主见性的 API,用于快速原型设计常见的对话式多智能体模式,如双智能体聊天或群聊 。
- AutoGen Studio:提供了一个基于 Web 的低代码/无代码用户界面,帮助用户快速原型化智能体,用工具增强它们,将它们组成团队并与之交互以完成任务 。
AutoGen 的设计目标是推动多智能体方法的研究和应用,探索新的智能体模式,并为处理需要动态协作的复杂任务(如商业流程中的确定性和动态智能体工作流、多智能体协作研究等)提供支持 。微软的 AI Frontier 团队正是利用 AutoGen 来"推动多智能体方法的边界" 。
在微软的 AI 生态中,AutoGen 主要面向研究人员和那些希望探索复杂多智能体系统、动态工作流以及新型智能体模式的开发者 。AutoGen Studio 被明确指出"并非意在成为一个生产就绪的应用",而是为了"帮助您快速原型化多智能体工作流" 。这一定位使得 AutoGen 成为一个理想的"创新引擎"或"研究试验田",用于孵化尖端的智能体 AI 概念,特别是在复杂的多智能体协作领域。 例如,像 MagenticOne 这样的新型智能体编排模式就是在 AutoGen 中率先开发和验证的 。
将 AutoGen 作为一个相对独立(尽管正在趋向融合)的框架,微软得以在快速发展且充满不确定性的智能体 AI 领域中鼓励快速创新,而不会直接影响其面向生产环境的 Semantic Kernel 的稳定性。这种策略性的分离使得 Semantic Kernel 能够保持其 API 的稳定性和企业级的可靠性,同时又能从 AutoGen 中吸收经过验证和打磨的成熟功能。这体现了微软在平衡前沿探索与企业级应用需求之间的一种深思熟虑。
Semantic Kernel 与 Microsoft.Extensions.AI:构建于共同基础之上
Semantic Kernel (SK) 与 Microsoft.Extensions.AI (MEAI) 之间展现出一种共生演进的紧密关系,其中 SK 在其.NET 实现中战略性地利用 MEAI 作为其基础能力层。SK 已经更新以原生支持 MEAI 的核心抽象,如 IChatClient
和 IEmbeddingGenerator<string, Embedding<float>>
。这意味着 SK 中原有的聊天完成和嵌入生成等功能,现在可以直接利用这些标准化的.NET AI 接口来实现 。
为了实现这种对齐,SK 中与 MEAI 功能重叠的自有原生抽象(例如其最初的嵌入接口)正在被逐步淘汰或标记为过时 。在过渡期间,SK 提供了转换方法以确保向后兼容性,鼓励开发者迁移到新的标准化类型 。
这种整合的根本原因在于,它确保了"更平滑的集成体验" ,使得 SK 能够充分受益于围绕 MEAI 构建的更广泛的.NET AI 生态系统,并为同时使用这两个框架的开发者简化了开发流程 。有趣的是,MEAI 本身的设计也受到了 SK 早期抽象的启发,甚至可以说是"源自 Microsoft.SemanticKernel.Abstractions" 。这表明两者之间存在一种共同演进和相互促进的关系。
SK 与 MEAI 的整合是微软为.NET 生态系统打造一个内聚且统一的 AI 开发体验的关键举措。它避免了 SK 成为一个孤立的技术栈,而是将其定位为通用.NET AI 基础之上的强大扩展。这种策略不仅加强了微软在.NET AI 平台上的整体实力,也为.NET 开发者提供了一条从使用 MEAI 进行简单 AI 任务到利用 SK 处理复杂场景的平滑路径,整个过程都使用一致的设计模式和类型。
更深一层看,这种关系揭示了一种双向影响和标准化的成熟平台演进模式。SK 作为先行者,在实践中探索并验证了有效的 AI 应用抽象。这些经过验证的模式随后被提炼并固化到 MEAI 中,成为面向整个.NET 生态系统的标准。之后,SK 再反过来遵循并采用这些标准,以确保其与更广泛生态的兼容性和互操作性。这个循环: SK 创新 -> 抽象被识别以供更广泛使用 -> MEAI 将其标准化 -> SK 采用标准,确保了基础层是健壮且广泛适用的,并且是基于高级工具中已证明的模式。
AutoGen 与 Semantic Kernel:迈向统一的智能体工具包
微软正在积极推动 AutoGen (AG) 的高级智能体功能向生产就绪的 Semantic Kernel (SK) 整合,目标是"将这些框架融合到一个统一的运行时和一套设计原则之上" 。Shawn Henry 明确指出,Semantic Kernel 将是"我们合并所有通过 AutoGen 开发的、先进的、研究驱动的多智能体功能的主要场所",最终目标是创建一个"单一、统一的智能体 AI 工具包" 。
这种整合通过多种机制实现 :
- 融合智能体运行时 (Converging Agent Runtimes):双方团队正积极协调 AutoGen 和 Semantic Kernel 之间的核心组件,并已建立一个(即将公开的)共享运行时仓库,用于开发可跨两个框架工作的包。
- 在 Semantic Kernel 中托管 AutoGen 智能体 (Hosting AutoGen agents in Semantic Kernel):Semantic Kernel 正在增加连接器,以支持托管来自其他服务和库的智能体,包括 AutoGen 智能体(从 AutoGen v0.2 智能体开始,此功能将在 SK Python 1.20.0 版本中提供)。这为已使用 AutoGen 的开发者提供了一条将其智能体迁移到 SK 生态系统的路径。
- AutoGen 集成 Semantic Kernel (AutoGen integrates with Semantic Kernel):AutoGen 现在可以利用 Semantic Kernel 强大的连接器库来扩展其功能,例如使用 SK 的 Anthropic AI 连接器作为 AutoGen 中的模型客户端,并支持基于 SK 的 AutoGen 助手智能体。
在实践中,这意味着在 AutoGen 中开发和验证的先进多智能体编排模式,例如著名的"MagenticOne"模式,已被吸纳并整合到 Semantic Kernel 自身的多智能体编排框架中 。
最后
简而言之,ag -> sk <-> meai,能力逐级下放,sk 博采众长。理解了这一定位,就彻底识破了微软在AI Agent上的布局。即:"致力于打造一个从实验到生产、从基础库到高级框架的完整 AI 开发链条。"
这种分层、整合与演进的策略,旨在平衡快速创新与企业级应用的稳定性需求,同时最大限度地发挥其在.NET 生态和企业服务领域的优势。通过构建这样一个内聚且强大的 AI 开发者平台,微软正积极塑造未来 AI 应用的开发范式,并力图巩固其在人工智能时代的领导地位。对于开发者和企业而言,理解并适应这一生态,将是驾驭 AI浪潮、释放创新潜能的关键。
而这正是我们广大.NET开发者的福音,因此抓住这波平台福利,将助力你在AI 时代立于不败之地。如需快人一步学习.NET AI知识,可前往评论区了解详情。