Microsoft Agent Framework 1.0 正式接棒,.NET AI 进入 Agent-Native 时代

📅 2026/6/29 20:12:08
Microsoft Agent Framework 1.0 正式接棒,.NET AI 进入 Agent-Native 时代
TL;DR2026 年 4 月 3 日Microsoft Agent FrameworkMAF1.0 正式 GA。随着 Semantic Kernel 1.77.0 版本合并 PR #13852 全面完成向 MAF 的迁移微软 .NET AI 技术栈迎来了自 Semantic Kernel 诞生以来最大的一次架构重组。本文从技术趋势深度解读视角解析 MAF 1.0 的五层架构设计、核心理念演化、关键 API 差异、开放协议集成以及 BUILD 2026 最新动态为 .NET 开发者和 AI 技术从业者提供一份完整的迁移认知地图。一、一个时代的谢幕一个时代的开启2026 年 4 月 3 日微软正式发布了Microsoft Agent Framework 1.0 General AvailabilityGA版本 (Microsoft Developer Blogs) 。这不是一次普通的 SDK 更新而是微软在 AI Agent 领域三年布局的集大成之作——它宣告了 AutoGen 和 Semantic Kernel 这两个累计收获75,000 GitHub Stars的项目正式完成历史使命将其精华融合为一个统一、生产就绪、跨语言.NET Python的企业级 Agent 开发平台 (digitalapplied.com) 。紧随其后Semantic Kernel 1.77.0版本合并了由开发者 rogerbarreto 提交的 PR #13852——.NET: Semantic Kernel - Agent Framework - Migration/Samples Update完成了底层代码和示例向 MAF 1.0 规范的全面对齐 (Github) 。这一动作标志着 SK 作为独立 Agent 开发框架的时代正式落幕其 Agent 与编排相关的能力已完整迁移至 MAF 生态。核心信号AutoGen 和 Semantic Kernel 已于 2025 年 10 月同步进入维护模式maintenance mode——微软将继续修复关键漏洞和安全问题但不再增加重大新功能 (cloudsummit.eu) 。对于企业开发者而言这意味着所有新功能、新协议支持和新编排能力都将在 MAF 上迭代继续投资 SK 的 Agent 相关代码将产生技术债务。二、MAF 1.0 的五层架构SK 不是被替代而是被重新定位理解 MAF 1.0 的最佳入口是其五层架构设计。这不是简单的新框架取代旧框架而是一次彻底的技术栈重组——Semantic Kernel 从万能的 AI SDK被重新定位为基础能力支撑层其上生长出全新的 Agent 抽象和 Workflow 编排引擎 (博客园) 。层级组件核心职责L5Orchestration Workflow Layer图结构工作流引擎提供确定性、可检查点的多智能体编排 (Microsoft Developer Blogs)L4Agent Layer (AIAgent)厂商中立的统一智能体抽象管理指令、工具、会话状态和中间件管道 (Microsoft Learn)L3Kernel Layer (Semantic Kernel)基础能力支撑层提供插件、过滤器、提示词模板和向量存储集成 (digitalapplied.com)L2Abstractions Interface (MEAI)标准抽象层定义IChatClient和IEmbeddingGenerator等通用接口 (Microsoft Developer Blogs)L1Service Connectors原生服务连接器Azure OpenAI、OpenAI、Anthropic Claude、Amazon Bedrock、Google Gemini、Ollama、Microsoft Foundry (Flowtivity)关键洞察SK 的核心价值插件系统、提示词模板、向量存储在 MAF 架构中得到了完整保留但 SK 的 Agent 抽象ChatCompletionAgent、AgentGroupChat等已被全新的AIAgent和WorkflowBuilder所取代 (Microsoft Learn) 。这种分层继承、上层重构的策略使得现有 SK 用户可以渐进式迁移而非一次性重写。三、核心理念跃迁从 Kernel/Plugin 到 Agent/Workflow3.1 传统 SK 的设计痛点在 Semantic Kernel 的体系中构建多智能体系统需要开发者编写大量繁琐的管道代码。以最常见的任务分配 → 审核 → 驳回/通过流程为例开发者必须手动实现SelectionStrategy、TerminationStrategy并自行维护对话历史上下文的传递 (博客园) 。更深层的问题在于职责耦合在 SK 中智能体的推理能力和执行策略被混在同一个Kernel对象中。开发者被迫在提示词工程中编写路由逻辑导致业务逻辑极易失控——提示词中的指令与代码中的控制流相互交织既难以测试也无法复用 (博客园) 。3.2 MAF 的职责分离设计MAF 1.0 引入了彻底的职责分离Separation of Responsibilities理念这是整个框架最具革命性的设计决策 (Microsoft Developer Blogs) 维度职责定位实现方式Agent智能体推理与理解Reasoning Interpretation利用 LLM 解释输入自主决定调用哪些工具返回结果 (Microsoft Developer Blogs)Workflow工作流执行策略与控制流Execution Policy Control Flow通过 C# 代码级有向图定义执行边界、顺序、重试和超时 (Microsoft Developer Blogs)这一转变使得多智能体编排变得极其直观。在旧版 SK 中需要数百行繁琐编排代码的序列协作模式在 MAF 中仅需通过AgentWorkflowBuilder.BuildSequential()的三行代码即可声明完成 (博客园) 。本质变化SK 时代Agent 的智能和流程混在一起MAF 时代Agent 只负责想Workflow 只负责走。四、API 映射与代码对比迁移究竟要改变什么4.1 核心抽象对比维度Semantic Kernel Agents (旧)Microsoft Agent Framework 1.0 (新)基础抽象强绑定的ChatCompletionAgent、OpenAIAssistantAgent等具体类 (Microsoft Learn)厂商中立的统一AIAgent由通用IChatClient转换而来 (devleader.ca)工具注册KernelPlugin→Kernel→Agent三级嵌套 (Microsoft Learn)AIFunctionFactory.Create()直接注册零嵌套 (Microsoft Learn)会话状态隐式线程状态手动管理服务端线程 ID (devleader.ca)显式AgentSession对象自动持久化 (devleader.ca)调用方法.InvokeAsync()返回ChatMessageContent流 (devleader.ca).RunAsync()返回AgentResponse.RunStreamingAsync()返回AgentResponseUpdate(devleader.ca)编排引擎InProcessRuntime或自定义复杂管道 (博客园)声明式WorkflowBuilder 预置多智能体构建器 (Microsoft Developer Blogs)4.2 迁移前后代码对比场景 A智能体创建与工具关联// Before: Semantic Kernel using Microsoft.SemanticKernel; using Microsoft.SemanticKernel.Agents; // 1. 创建 Kernel 并添加连接器 Kernel kernel Kernel.CreateBuilder() .AddAzureOpenAIChatCompletion(deploymentName, endpoint, apiKey) .Build(); // 2. 将类注册为 KernelPlugin kernel.Plugins.AddFromTypeSupportTools(); // 3. 实例化特定厂商的 Agent ChatCompletionAgent agent new() { Name SupportAssistant, Instructions You are a helpful support agent., Kernel kernel };// After: Microsoft Agent Framework 1.0 using Microsoft.Extensions.AI; using Microsoft.Agents.AI; // 1. 获取 IChatClient 抽象 IChatClient chatClient new AzureOpenAIClient(new Uri(endpoint), new DefaultAzureCredential()) .GetChatClient(deploymentName) .AsIChatClient(); // 2. 一键生成 AIAgent直接注入 standalone 工具 AIAgent agent chatClient.AsAIAgent( name: SupportAssistant, instructions: You are a helpful support agent., tools: [ AIFunctionFactory.Create(SupportTools.SearchKnowledgeBase), AIFunctionFactory.Create(SupportTools.CreateTicket) ] );场景 B会话管理与流式调用// Before: Semantic Kernel var chat new AgentGroupChat(agent); chat.AddChatMessage(new ChatMessageContent(AuthorRole.User, userInput)); await foreach (ChatMessageContent message in chat.InvokeAsync()) { Console.WriteLine(message.Content); }// After: Microsoft Agent Framework 1.0 // 1. 显式创建支持持久化的会话 AgentSession session await agent.CreateSessionAsync(); // 2. 执行流式运行接收丰富元数据 await foreach (AgentResponseUpdate update in agent.RunStreamingAsync(userInput, session)) { if (update.Text is not null) { Console.Write(update.Text); } } // 3. 提取持久化 ConversationId 用于服务重启恢复 string savedConversationId session.ConversationId;关键体会MAF 的代码更少、层级更扁平、职责更清晰。Kernel和KernelBuilder的消失意味着更少的概念负担而IChatClient的引入则带来了真正的厂商解耦——切换模型提供方只需修改客户端配置Agent 代码完全不变 (devleader.ca) 。五、图编排与持久化WorkflowBuilder DurableTask5.1 Executor工作流的基本计算单元MAF 工作流引擎的核心是ExecutorTInput, TOutput每个 Executor 都有严格的输入/输出类型约束并在编译期通过泛型进行类型安全校验 (Microsoft Developer Blogs) public class OrderLookup : ExecutorOrderRequest, OrderDetails { public OrderLookup() : base(OrderLookup) { } public override async ValueTaskOrderDetails HandleAsync( OrderRequest message, IWorkflowContext context, CancellationToken cancellationToken default) { return await FetchOrderDetailsAsync(message.OrderId); } }5.2 WorkflowBuilder声明式图编排利用WorkflowBuilder开发者可以像搭积木一样构建复杂的工作流拓扑 (Microsoft Developer Blogs) AddFanOutEdge将上游输出并发广播给多个下游 Executor并行执行AddFanInBarrierEdge创建栅栏Barrier挂起后续流直到所有并行分支完成AsAIAgent()将底层 AIAgent 无缝包装为图中的 Executor5.3 DurableTask长运行流程的持久化保障