Semantic Kernel(Microsoft)平台研究
1. 介绍
1.1 平台定位
Semantic Kernel(SK)是 Microsoft 于 2023-03 发布的企业级 AI SDK,MIT 许可,定位为「把 LLM 与传统代码结合的插件化内核」。它的目标用户是需要把 AI 能力嵌入既有企业应用的 .NET / Java / Python 工程团队。
按项目参数卡的统一口径,Semantic Kernel 是第二代「工具与编排时代」的企业级代表。它的历史价值在于:在「Prompt 工程」向「Agent 工程」过渡的窗口期,第一个把依赖注入、类型安全、插件模型、遥测、过滤器管线这些企业级软件工程实践带进了 LLM 应用开发。
但在 2026 年,Semantic Kernel 的定位已经转变为:「遗留但受支持」的轨道——它是理解 Microsoft Agent Framework(MAF)的基础层,但不应作为新项目的起点。
1.2 基本信息
| 项 | 值 |
|---|---|
| 开发商 | Microsoft |
| 首发时间 | 2023-03 |
| 许可证 | MIT |
| 最新版本 | Microsoft.SemanticKernel 1.77.0(2026-05-28) |
| 状态 | 维护模式(maintenance mode) |
| 维护范围 | 仅关键 bug 修复与安全补丁,不再新增特性 |
| 支持期限 | 至少支持到 2027-04(即 MAF GA 后至少一年) |
| 语言 | C#(primary)、Python、Java |
| 定位 | 企业级 SDK:依赖注入、插件、遥测、.NET 一等公民 |
| AutoGen 状态 | 同样进入维护模式;2026-06 起仓库标注「由社区管理」 |
版本号以 2026-09 检索时点为准。
1.3 维护模式状态说明
维护模式(maintenance mode)的确切含义,需要在选型时准确理解:
| 维度 | 状态 |
|---|---|
| 新增特性 | 不再新增 |
| Bug 修复 | 仅关键 bug |
| 安全补丁 | 提供 |
| 支持期限 | 至少到 2027-04 |
| 生产可用性 | 存量负载可稳定运行 |
这意味着:已经跑在 SK 上的生产系统不需要恐慌性迁移,它们至少还能稳定运行到 2027-04;但任何新特性需求都不会在 SK 上得到满足。
2025 年末至 2026 年初,微软启动统一战略:SK 与 AutoGen 双双进入维护模式,能力合流至 Microsoft Agent Framework。
1.4 与 AutoGen 的融合:Microsoft Agent Framework
融合时间线(详见 09-autogen.md 第 1.3 节):
| 时间 | 事件 |
|---|---|
| 2025-10-01 | 宣布 MAF public preview;SK 与 AutoGen 进入 maintenance mode |
| 2025-10-22 | 双框架 1.0 承诺 |
| 2026-02 | RC(API 冻结,发布迁移指南) |
| 2026-04-02/03 | MAF 1.0 GA |
| 2026-06 起 | AutoGen 仓库标注「由社区管理」 |
两个前身框架在 MAF 中的遗产分工:
| 来源 | 贡献给 MAF 的部分 |
|---|---|
| Semantic Kernel | 基础层:Kernel 抽象与 DI 集成、插件模型、连接器系统、Prompt 模板语言 |
| AutoGen | 图工作流:多 Agent 对话模式、Group Chat / 角色、任务交接与状态协调、带类型边的图工作流 |
因此存在一句被反复引用的判断:「今天学 Semantic Kernel,就是在学 Agent Framework 的基础层」。这句话在工程上是准确的——Kernel、插件、连接器、过滤器全部存活于 MAF,只是 Kernel 从「god object」降级为可选项。
关键 API 迁移对照:
| Semantic Kernel | Microsoft Agent Framework |
|---|---|
ChatCompletionAgent / AzureAIAgent / OpenAIAssistantAgent(多种 Agent 类型) | 统一为单一 ChatClientAgent |
手动 new 对应 Thread 子类 | agent.CreateSessionAsync() |
必须经构建好的 Kernel 连接 | Kernel 不再是强制入口 |
| Filters(函数调用与提示渲染前后拦截) | Middleware 管线(继承并演进) |
2. 名词解释
| 术语 | 英文 | 释义 |
|---|---|---|
| Kernel | Kernel | 核心对象(DI 容器与配置面);所有 Agent 必须经构建好的 Kernel 连接——在 MAF 中被取消的「god object」 |
| Plugin | Plugin | 具名函数容器:可由原生代码、OpenAPI 规范、文本搜索实现(RAG)或提示模板创建 |
| Native Function | Native Function | 用 [KernelFunction](.NET)/ @kernel_function(Python)标注的原生函数 |
| Semantic Function | Semantic Function | YAML 提示模板定义的函数 |
| Planner | Planner | Stepwise Planner(顺序任务分解)/ Handlebars Planner(复杂计划)/ 自定义 Planner;由 LLM 动态组合函数调用序列 |
| Filter | Filter | 函数调用与提示渲染前后的拦截点,用于安全控制、负责任 AI 检查与遥测 |
| Memory | Memory | 语义记忆 / 长期记忆 / 实体记忆抽象;向量数据库连接(Azure Cognitive Search、Chroma、Qdrant、pgvector) |
| ChatCompletionAgent | ChatCompletionAgent | SK 的 Agent 类型之一(另有 AzureAIAgent、OpenAIAssistantAgent);MAF 中统一为单一 ChatClientAgent |
| Thread | Thread | 会话线程:调用方需手动 new 对应线程子类(MAF 改为 agent.CreateSessionAsync()) |
| Process Framework | Process Framework | 结构化业务工作流的流程框架 |
| Vector Store Connectors | Vector Store Connectors | Azure AI Search、Elasticsearch 等向量存储的统一接口,可暴露为插件做检索与语义搜索 |
| Handlebars Planner | Handlebars Planner | 用 Handlebars 模板表达复杂计划的 Planner,适合多步骤、带变量的计划 |
| Stepwise Planner | Stepwise Planner | 逐步分解顺序任务的 Planner |
| Maintenance Mode | Maintenance Mode | 维护模式:仅关键 bug 修复与安全补丁,不再新增特性 |
3. 功能说明
3.1 插件化内核
SK 的核心组织原则是插件:把 LLM 能力与传统代码统一封装为「具名函数容器」,再由 Kernel 统一调度。插件可由四种方式创建:
| 创建方式 | 说明 |
|---|---|
| 原生代码 | 用 [KernelFunction] / @kernel_function 标注的原生函数 |
| OpenAPI 规范 | 从 OpenAPI 定义自动生成插件 |
| 文本搜索(RAG) | 把检索能力封装为插件 |
| 提示模板 | YAML 定义的 Semantic Function |
这一设计在 2023 年是相当超前的——它把「工具」从一种特殊机制变成了与业务代码同构的一等公民。
3.2 AI 服务连接器
覆盖 Azure OpenAI / OpenAI / Amazon Bedrock,能力面包括聊天、文本生成、嵌入、图像、音频。
重要特征:SK 不要求使用 Azure,可运行在任何云或本地。这一点在企业选型时常被误解——SK 是微软的产品,但不是一个 Azure-only 产品。
3.3 Planner 驱动编排
SK 的编排方式是 Planner:由 LLM 动态组合函数调用序列。这与 LangGraph 的显式状态图形成鲜明对照:
| 编排范式 | 代表 | 优点 | 缺点 |
|---|---|---|---|
| Planner 动态组合 | Semantic Kernel | 无需预先枚举路径 | 路径不可预测,难调试 |
| 显式状态图 | LangGraph / MAF Workflow | 路径可枚举、可重现 | 需要预先设计拓扑 |
这一对照正是「灵活性 ↔ 可预测性」张力的经典体现,而 SK 在 2023 年站到了灵活性一侧。2026 年的行业共识是:在需要可靠性保证的生产场景,显式图优于动态 Planner——这也是 MAF 最终采用图工作流的现实原因。
3.4 企业级能力
| 能力 | 说明 |
|---|---|
| 类型安全 | 强类型函数定义与参数绑定 |
| 中间件 / 过滤器管线 | 函数调用与提示渲染前后拦截 |
| OpenTelemetry 遥测 | 标准化可观测性输出 |
| Entra ID / Managed Identity | 企业级认证 |
| 错误处理与重试韧性 | 生产级韧性设计 |
3.5 多语言 SDK 与功能对等性
SK 提供三语言官方 SDK:C#(primary)、Python、Java。这是它相对多数 Python 优先框架的独特优势,尤其对 .NET 与 Java 企业栈意义重大。
需要说明的是:三语言的功能对等性未获详细对比资料,各语言版本在插件生态、Memory 抽象、Planner 实现上的具体差距缺少官方对照表。这是明确的信息缺口。
4. 平台架构
4.1 分层架构
图 4-1|Semantic Kernel 五层架构:以 Kernel 为中心的插件化内核
数据来源:基于本文分析绘制的示意图。
Client / Application(Web / Console / Teams Bot / 后台服务)
↑
Agent 层(ChatCompletionAgent / AzureAIAgent / OpenAIAssistantAgent)
↑
Runtime 层(Session 管理 / Middleware 管线 / Memory & Context / 执行循环)
↑
Tool / Integration 层(Function Tools / MCP 客户端 / 外部 API / 数据库)
↑
Model Provider 层(Azure OpenAI / OpenAI / Anthropic / Gemini / Ollama) 说明:此五层为 MAF 继承并演进后的形态。SK 的原形态以 Kernel 为中心,Agent 层为后加,且始终处于实验形态。
4.2 Kernel 中心模型
SK 原形态的核心特征是:一切都必须经构建好的 Kernel 连接。Kernel 承担 DI 容器、配置面、插件注册表、服务选择器多重职责,因此被称为「god object」。
这个设计的代价是样板代码多——哪怕只是跑一个最简单的 Agent,也需要先构建 Kernel、注册服务、添加插件。这正是 MAF 明确要消除的摩擦。
4.3 MAF 继承与演进
| SK 概念 | 在 MAF 中的命运 |
|---|---|
| Kernel 抽象与 DI 集成 | 保留,但不再是强制入口 |
| 插件模型 | 保留并演进 |
| 连接器系统 | 保留,统一实现 IChatClient |
| Prompt 模板语言 | 保留 |
| Filters | 演进为 Middleware 管线 |
| 多种 Agent 类型 | 统一为 ChatClientAgent |
| 手动 Thread 管理 | 改为 agent.CreateSessionAsync() |
| Planner 编排 | 被图工作流 + 五大编排模式取代 |
5. Harness 设计
5.1 六层能力总览
| 层 | 名称 | 评级 | 一句话判断 |
|---|---|---|---|
| L1 | 上下文工程层 | 中 | Prompt 模板语言 + 文本搜索插件做 RAG;无原生自动上下文压缩 / compaction |
| L2 | 工具与执行层 | 中强 | 原生插件 + OpenAPI 导入 + 向量存储连接器;MCP 支持不完整,需迁到 MAF |
| L3 | 编排与控制层 | 中 | Planner 动态组合 + Process Framework;Agent 编排始终停留在实验形态 |
| L4 | 记忆与状态层 | 中 | Thread + Memory 抽象(语义/长期/实体)+ 向量存储连接器;无持久 checkpoint |
| L5 | 评估与观测层 | 中 | OpenTelemetry 遥测 + Filters 拦截点;无内置评估集 |
| L6 | 治理与安全层 | 中强 | Filters(安全控制与负责任 AI 检查)+ Entra ID / Managed Identity + 部署模式 + 韧性 |
5.2 L1 上下文工程层
评级:中。
提供的机制:Prompt 模板语言(Handlebars 等)做结构化提示组装;文本搜索插件做 RAG。
缺失的机制:无原生自动上下文压缩 / compaction。在 2023 年的技术背景下这是可理解的(当时上下文窗口是主要约束,Agent 任务链也短),但在 2026 年的长程任务场景下,这是硬缺口。
工程含义:SK 上的长对话必须自行实现摘要或窗口截断,且无法与 Planner 的中间步骤协同——因为 Planner 的路径本身就是动态的,你不知道该在哪一步截断。
5.3 L2 工具与执行层
评级:中强。
- 原生插件:
[KernelFunction]/@kernel_function标注。 - OpenAPI 规范导入:自动从 API 定义生成插件。
- 向量存储连接器:Azure AI Search、Elasticsearch 等,可暴露为插件做检索与语义搜索。
关键缺口:MCP 支持在 SK 侧不完整。MCP 已成为 2026 年工具互操作的事实标准,SK 处于维护模式不会补齐此能力——需要使用 MCP 的团队必须迁到 MAF。这是本平台最具决定性的技术淘汰因素。
5.4 L3 编排与控制层
评级:中。
- Planner 动态组合:Stepwise / Handlebars / 自定义。
- Process Framework:结构化业务工作流。
- Agent 编排始终停留在实验形态——这是 SK 最致命的定位问题。它提供 Agent 类型(
ChatCompletionAgent等),但从未把这些 Agent 类型组织成生产级的多 Agent 编排体系。MAF 才补上生产级编排与持久 checkpoint。
张力一(灵活性 ↔ 可预测性):SK 的 Planner 是纯灵活性取向——由 LLM 动态决定调哪些函数、什么顺序。这在 2023 年是创新,在 2026 年被视为可靠性反模式。行业已经用脚投票:MAF 用「五大模式 + 显式图」取代了 Planner。
5.5 L4 记忆与状态层
评级:中。
- Thread:会话线程抽象(但需手动 new 对应子类)。
- Memory 抽象:语义记忆 / 长期记忆 / 实体记忆三层。
- 向量存储连接器:Azure Cognitive Search、Chroma、Qdrant、pgvector。
无持久 checkpoint:长流程无法跨进程恢复。这是第二代框架的共同短板,也是 LangGraph 凭 Checkpointer 建立优势的地方。
5.6 L5 评估与观测层
评级:中。
- OpenTelemetry 遥测与诊断:标准化可观测输出,这是 SK 在企业侧最扎实的能力之一。
- Filters:提供拦截点,可用于埋点与质量检测。
无内置评估集。SK 提供「你能观测到什么」的基础设施,但不提供「你该怎么评判好坏」的方法论或工具集。
5.7 L6 治理与安全层
评级:中强。
这是 SK 相对其年代最超前的部分,也是它被 MAF 完整继承的原因:
| 机制 | 作用 |
|---|---|
| Filters | 函数调用与提示渲染前后拦截,用于安全控制、负责任 AI 检查与遥测 |
| Entra ID / Managed Identity | 企业级认证 |
| 部署模式 | Azure Container Apps、Functions |
| 错误处理与重试韧性 | 生产级韧性 |
Filters 机制值得单独强调:它在 2023 年就提出了「在每个 LLM/函数调用前后插入企业策略检查」这一模式。这一模式后来成为行业标配——CrewAI 的 runtime hooks、MAF 的 Middleware、阿里云百炼的 Middleware 都是同一思想的不同实现。
成本护栏方面:未检索到 SK 提供任务级预算上限机制。Filters 理论上可用于计数与限流(需自行实现),但无开箱即用能力。
5.8 三条内在张力在 Semantic Kernel 上的投影
| 张力 | 在 SK 上的具体表现 | 平台给出的答案 | 剩余风险 |
|---|---|---|---|
| 灵活性 ↔ 可预测性 | Planner 纯动态,路径不可枚举 | 选择了灵活性一侧 | 2026 年已被行业判定为可靠性反模式;MAF 用图工作流纠正 |
| 开放性 ↔ 治理 | 无 MCP / A2A 原生支持,开放性受限 | Filters 提供调用级治理(超前但孤岛化) | 治理强而开放弱,无法接入 MCP 生态的工具 |
| 成本 ↔ 深度 | 无预算机制 | 无(需自建) | 动态 Planner 的路径不可预测导致 token 消耗不可预测 |
一个值得记录的历史观察:SK 在「治理」上超前,在「开放」上滞后。它用 Filters 把治理做到了调用级(比多数 2026 年平台还细),却因为没有 MCP 而在工具互操作上被边缘化。这说明 Harness 的竞争力不是单点深度,而是六层的同步演进——任何一层掉队,都会拖垮整体。
6. 实际案例
未检索到带量化效果数据的企业落地案例。 检索到的材料均为框架对比与迁移指南。
可用的定性论据:
- Semantic Kernel 自 2023-03 发布至进入维护模式,积累了约三年的企业现场经验。
- SK 与 AutoGen 合计积累超过 75,000 GitHub stars,这部分工程资产被 MAF 继承。
- SK 的企业级能力(类型安全、过滤器管线、遥测、多语言)在 .NET 与 Java 企业栈中有实际部署基础,但未检索到可公开引用的客户名与效果指标。
诚实标注:以上均为定性描述,不构成落地效果证据。
7. 总结
7.1 优点
- 稳定、生产就绪:长期支持到至少 2027-04,存量负载可安心运行。
- 企业级类型安全与遥测:OpenTelemetry 原生,Filters 提供调用级拦截。
- 不强绑定 Azure:可运行在任何云或本地。
- 多语言 SDK(C# / Python / Java):对 .NET 与 Java 企业栈意义重大,在 Python 主导的生态中稀缺。
- 学习它等于学习 MAF 的基础层:Kernel、插件、连接器、过滤器全部存活于 MAF,学习投资不完全沉没。
- MIT 许可,无商用限制。
7.2 缺点
- 维护模式,无新特性:任何新需求都不会在 SK 上得到满足。
- Agent 编排实验化:从未形成生产级多 Agent 编排体系。
- 无 MCP / A2A 原生支持:在 2026 年的工具互操作标准下被边缘化。
- 无持久 checkpoint:长流程无法跨进程恢复。
- 必须经 Kernel god object 构建:样板代码多。
- 无原生上下文压缩:长程任务需自行管理上下文预算。
- Planner 动态编排的可靠性问题:路径不可枚举,难调试。
- 未检索到公开量化落地数据。
7.3 适用边界
新项目不应选用 Semantic Kernel。 应直接使用 Microsoft Agent Framework。
仍可保留的场景:
- 存量 SK 生产负载,且无新增特性需求——可稳定运行一年以上到 2027-04。
- 仅需「LLM + 插件 + 遥测」的简单集成,不涉及多 Agent 编排,且团队已熟悉 SK。
- 作为学习 MAF 基础层的路径(但这不构成生产选型的理由)。
7.4 选型与迁移建议
推荐策略:「新 Agent 用新框架,存量 Agent 在触碰时机会性迁移」。
| 决策点 | 建议 |
|---|---|
| 新项目 | 直接选 Microsoft Agent Framework,不选 SK |
| 存量 SK 负载,运行稳定、无新需求 | 保持现状,规划 2027-04 前的迁移窗口 |
| 存量 SK 负载,需要 MCP / 多 Agent 编排 / checkpoint | 立即迁移——这些能力 SK 永远不会提供 |
| 仅用 SK 做「LLM + 插件」简单集成 | 可延后,但应在下次重构时一并迁移 |
| 团队技能投资 | 继续学 SK 的 Kernel / 插件 / 过滤器概念(MAF 继承),但新代码用 MAF API |
迁移的技术可用性判断:由于 MAF 保留了 Kernel、插件模型、连接器与过滤器,且发布了官方迁移指南(2026-02 RC 时期),SK → MAF 的迁移属于「概念可直接映射、API 需重写」的类型,而非推倒重来。主要改动点:
- 多种 Agent 类型 → 统一
ChatClientAgent。 - 手动 Thread 管理 →
agent.CreateSessionAsync()。 - Kernel 强制构建 → 可选。
- Filters → Middleware(概念一致,API 不同)。
- Planner → 图工作流 / 五大编排模式(这是唯一需要重新设计的部分)。
一句话结论:Semantic Kernel 是企业级 LLM SDK 的重要奠基者,Filters 与插件模型至今仍是行业标杆设计;但它在 2026 年已是「遗留但受支持」的轨道——它是理解 MAF 的钥匙,而不是通往 MAF 的路。
信息缺口声明
- 企业落地案例与量化效果数据:3 轮检索后未检索到带量化效果数据的企业落地案例。检索到的均为框架对比与迁移指南。
- 各语言功能对等性:C# / Python / Java 三个 SDK 在插件生态、Memory 抽象、Planner 实现上的具体差距,未检索到官方详细对比表。
- 维护模式结束的确切日期:仅知「至少支持到 2027-04」(即 MAF GA 后至少一年),确切终止支持日期未公开。
- MCP 支持的准确边界:报告记载「MCP 支持在 SK 侧不完整」,但未检索到官方关于「支持到什么程度」的说明,标注 。
- 任务级成本护栏:未检索到 SK 提供预算上限机制,标注 。
- 版本号时点敏感:Microsoft.SemanticKernel 1.77.0(2026-05-28)为 2026-09 检索时点版本。
- Transparency / AI 生成内容标注:未检索到 Semantic Kernel 官方关于透明度说明或 AI 生成内容标注政策的公开资料。
- SK 与 MAF 的 API 迁移完整对照表:检索到的迁移指南覆盖了主要改动点(Agent 类型、Thread、Kernel、Filters),但缺少逐 API 的完整对照,标注 。
8. 参考资料
- Semantic Kernel: Enterprise Agent Framework — Agent DevPro。https://agentdevpro.com/frameworks/semantic-kernel
- Microsoft's Quiet Shift: Why Semantic Kernel Is Moving to Maintenance Mode — FrontierNews。https://www.frontiernews.ai/news/article/microsofts-quiet-shift-why-semantic-kernel-is-movi-23683b05
- Migrate a Semantic Kernel App to Microsoft Agent Framework 1.0 — Start Debugging。https://startdebugging.net/2026/07/migrate-a-semantic-kernel-app-to-microsoft-agent-framework-1-0
- Microsoft Agent Framework vs Semantic Kernel for a Greenfield .NET Agent — Start Debugging。https://startdebugging.net/2026/06/microsoft-agent-framework-vs-semantic-kernel-for-a-greenfield-net-agent
- Microsoft Agent Framework 1.0 Ends the Semantic Kernel Era — SourceFeed。https://sourcefeed.dev/a/microsoft-agent-framework-10-ends-the-semantic-kernel-era
- Microsoft Agent Framework — Microsoft Learn 官方文档。https://learn.microsoft.com/en-us/agent-framework/overview/
- Microsoft Agent Framework 1.0: .NET and Python 2026 — DigitalApplied。https://www.digitalapplied.com/blog/microsoft-agent-framework-1-0-dotnet-python-guide
- Microsoft Agent Framework Developer Guide 2026 — Developer's Digest。https://www.developersdigest.tech/blog/microsoft-agent-framework-developer-guide-2026
- Microsoft Agent Framework at BUILD 2026 — Microsoft 官方。https://aka.ms/Build2026MicrosoftAgentFramework
Semantic Kernel (Microsoft) Platform Research
1. Introduction
1.1 Platform Positioning
Semantic Kernel (SK) is an enterprise-grade AI SDK released by Microsoft in 2023-03 under the MIT license, positioned as a “pluggable kernel that integrates LLMs with traditional code.” Its target users are .NET / Java / Python engineering teams that need to embed AI capabilities into existing enterprise applications.
By the unified framing of the project parameter card, Semantic Kernel is the enterprise-grade representative of the second, “tools & orchestration era”. Its historical value lies in being the first to bring enterprise software engineering practices such as dependency injection, type safety, the plugin model, telemetry, and the filter pipeline into LLM application development, during the window of transition from “Prompt engineering” to “Agent engineering”.
But by 2026, Semantic Kernel’s positioning has shifted to a “legacy but supported” track — it is the foundational layer for understanding Microsoft Agent Framework (MAF), but it should not be the starting point for new projects.
1.2 Basic Information
| Item | Value |
|---|---|
| Developer | Microsoft |
| Initial release | 2023-03 |
| License | MIT |
| Latest version | Microsoft.SemanticKernel 1.77.0 (2026-05-28) |
| Status | Maintenance mode |
| Maintenance scope | Critical bug fixes and security patches only; no new features |
| Support period | Supported for at least until 2027-04 (i.e., at least one year after MAF GA) |
| Languages | C# (primary), Python, Java |
| Positioning | Enterprise SDK: dependency injection, plugins, telemetry, .NET first-class citizen |
| AutoGen status | Also entered maintenance mode; repository marked “community-managed” from 2026-06 |
Version numbers are as of the 2026-09 retrieval date.
1.3 Clarifying Maintenance Mode Status
The exact meaning of “maintenance mode” needs to be well understood when selecting a framework:
| Dimension | Status |
|---|---|
| New features | No longer added |
| Bug fixes | Critical bugs only |
| Security patches | Provided |
| Support period | At least until 2027-04 |
| Production usability | Existing workloads can run reliably |
This means: production systems already running on SK do not need a panicked migration — they can keep running reliably until at least 2027-04. But no new feature requests will be fulfilled on SK.
From late 2025 to early 2026, Microsoft launched a unification strategy: both SK and AutoGen entered maintenance mode, and their capabilities converged into Microsoft Agent Framework.
1.4 Convergence with AutoGen: Microsoft Agent Framework
Convergence timeline (see section 1.3 of 09-autogen.md):
| Date | Event |
|---|---|
| 2025-10-01 | MAF public preview announced; SK and AutoGen enter maintenance mode |
| 2025-10-22 | Dual-framework 1.0 commitment |
| 2026-02 | RC (API freeze, migration guide released) |
| 2026-04-02/03 | MAF 1.0 GA |
| From 2026-06 | AutoGen repository marked “community-managed” |
How each predecessor contributes its legacy to MAF:
| Source | Contribution to MAF |
|---|---|
| Semantic Kernel | Foundation layer: Kernel abstraction & DI integration, plugin model, connector system, Prompt template language |
| AutoGen | Graph workflows: multi-agent conversation patterns, Group Chat / roles, task handover & state coordination, graph workflows with typed edges |
Hence a frequently quoted judgment: “Learning Semantic Kernel today is learning the foundation layer of Agent Framework.” This is accurate from an engineering standpoint — the Kernel, plugins, connectors, and filters all survive within MAF; only the Kernel has been demoted from a “god object” to optional.
Key API migration mapping:
| Semantic Kernel | Microsoft Agent Framework |
|---|---|
ChatCompletionAgent / AzureAIAgent / OpenAIAssistantAgent (multiple agent types) | Unified into a single ChatClientAgent |
Manually instantiate the corresponding Thread subclass | agent.CreateSessionAsync() |
Must connect through a built Kernel | Kernel is no longer a mandatory entry point |
| Filters (interception before/after function calls and prompt rendering) | Middleware pipeline (inherited and evolved) |
2. Glossary
| Term | English | Meaning |
|---|---|---|
| Kernel | Kernel | Core object (DI container and configuration surface); every agent must connect through a built Kernel — the “god object” removed in MAF |
| Plugin | Plugin | Named function container: can be created from native code, an OpenAPI spec, text search (RAG), or a prompt template |
| Native Function | Native Function | A native function annotated with [KernelFunction] (.NET) / @kernel_function (Python) |
| Semantic Function | Semantic Function | A function defined by a YAML prompt template |
| Planner | Planner | Stepwise Planner (sequential task decomposition) / Handlebars Planner (complex plans) / custom Planner; dynamically composes sequences of function calls via the LLM |
| Filter | Filter | Interception points before/after function calls and prompt rendering, used for safety controls, responsible AI checks, and telemetry |
| Memory | Memory | Semantic memory / long-term memory / entity memory abstractions; vector database connections (Azure Cognitive Search, Chroma, Qdrant, pgvector) |
| ChatCompletionAgent | ChatCompletionAgent | One of SK’s agent types (along with AzureAIAgent, OpenAIAssistantAgent); unified into a single ChatClientAgent in MAF |
| Thread | Thread | Conversation thread: the caller must manually instantiate the corresponding thread subclass (MAF changes this to agent.CreateSessionAsync()) |
| Process Framework | Process Framework | A process framework for structured business workflows |
| Vector Store Connectors | Vector Store Connectors | A unified interface for vector stores such as Azure AI Search and Elasticsearch, exposable as plugins for retrieval and semantic search |
| Handlebars Planner | Handlebars Planner | A Planner that expresses complex plans with Handlebars templates, suited to multi-step, variable-bearing plans |
| Stepwise Planner | Stepwise Planner | A Planner that decomposes sequential tasks step by step |
| Maintenance Mode | Maintenance Mode | Maintenance mode: critical bug fixes and security patches only, no new features |
3. Feature Description
3.1 Pluggable Kernel
SK’s core organizing principle is plugins: uniformly encapsulating LLM capabilities and traditional code as “named function containers,” then dispatched centrally by the Kernel. Plugins can be created in four ways:
| Creation method | Description |
|---|---|
| Native code | Native functions annotated with [KernelFunction] / @kernel_function |
| OpenAPI spec | Automatically generates plugins from OpenAPI definitions |
| Text search (RAG) | Wraps retrieval capabilities as a plugin |
| Prompt template | Semantic Functions defined in YAML |
This design was quite ahead of its time in 2023 — it turned “tools” from a special mechanism into first-class citizens isomorphic with business code.
3.2 AI Service Connectors
Covers Azure OpenAI / OpenAI / Amazon Bedrock, with a capability surface including chat, text generation, embeddings, images, and audio.
Important trait: SK does not require Azure — it can run on any cloud or on-premises. This is often misunderstood during enterprise selection: SK is a Microsoft product, but not an Azure-only product.
3.3 Planner-Driven Orchestration
SK’s orchestration approach is the Planner: the LLM dynamically composes sequences of function calls. This is in sharp contrast to LangGraph’s explicit state graph:
| Orchestration paradigm | Representative | Advantages | Disadvantages |
|---|---|---|---|
| Planner dynamic composition | Semantic Kernel | No need to enumerate paths in advance | Paths unpredictable, hard to debug |
| Explicit state graph | LangGraph / MAF Workflow | Paths enumerable and reproducible | Topology must be designed in advance |
This contrast is a classic embodiment of the “flexibility ↔ predictability” tension, and in 2023 SK stood on the flexibility side. The 2026 industry consensus is that, in production scenarios requiring reliability guarantees, explicit graphs outperform dynamic Planners — which is also the practical reason MAF ultimately adopted graph workflows.
3.4 Enterprise-Grade Capabilities
| Capability | Description |
|---|---|
| Type safety | Strongly typed function definitions and parameter binding |
| Middleware / filter pipeline | Interception before/after function calls and prompt rendering |
| OpenTelemetry telemetry | Standardized observability output |
| Entra ID / Managed Identity | Enterprise-grade authentication |
| Error handling and retry resilience | Production-grade resilience design |
3.5 Multi-Language SDK and Feature Parity
SK provides official SDKs in three languages: C# (primary), Python, Java. This is a unique advantage over most Python-first frameworks, especially significant for .NET and Java enterprise stacks.
It should be noted that no detailed comparison of feature parity across the three languages has been found: the specific gaps among language versions in plugin ecosystems, the Memory abstraction, and Planner implementations lack an official comparison table. This is an explicit information gap.
4. Platform Architecture
4.1 Layered Architecture
图 4-1|Semantic Kernel 五层架构:以 Kernel 为中心的插件化内核
数据来源:基于本文分析绘制的示意图。
Client / Application(Web / Console / Teams Bot / 后台服务)
↑
Agent 层(ChatCompletionAgent / AzureAIAgent / OpenAIAssistantAgent)
↑
Runtime 层(Session 管理 / Middleware 管线 / Memory & Context / 执行循环)
↑
Tool / Integration 层(Function Tools / MCP 客户端 / 外部 API / 数据库)
↑
Model Provider 层(Azure OpenAI / OpenAI / Anthropic / Gemini / Ollama) Note: these five layers are the form after MAF inherited and evolved them. SK’s original form centered on the Kernel, with the Agent layer added later and always in an experimental state.
4.2 Kernel-Centric Model
The core trait of SK’s original form is: everything must connect through a built Kernel. The Kernel bears multiple responsibilities — DI container, configuration surface, plugin registry, and service selector — which is why it is called a “god object”.
The cost of this design is a lot of boilerplate — even to run the simplest agent, you must first build a Kernel, register services, and add plugins. This is exactly the friction MAF set out to eliminate.
4.3 MAF Inheritance and Evolution
| SK concept | Fate in MAF |
|---|---|
| Kernel abstraction & DI integration | Retained, but no longer a mandatory entry point |
| Plugin model | Retained and evolved |
| Connector system | Retained, uniformly implementing IChatClient |
| Prompt template language | Retained |
| Filters | Evolved into the Middleware pipeline |
| Multiple agent types | Unified into ChatClientAgent |
| Manual Thread management | Changed to agent.CreateSessionAsync() |
| Planner orchestration | Replaced by graph workflows + the five orchestration modes |
5. Harness Design
5.1 Six-Layer Capability Overview
| Layer | Name | Rating | One-line judgment |
|---|---|---|---|
| L1 | Context engineering layer | Medium | Prompt template language + text-search plugins for RAG; no native automatic context compression / compaction |
| L2 | Tools & execution layer | Medium-strong | Native plugins + OpenAPI import + vector-store connectors; MCP support is incomplete; requires moving to MAF |
| L3 | Orchestration & control layer | Medium | Planner dynamic composition + Process Framework; agent orchestration has always remained experimental |
| L4 | Memory & state layer | Medium | Thread + Memory abstraction (semantic/long-term/entity) + vector-store connectors; no persistent checkpoint |
| L5 | Evaluation & observability layer | Medium | OpenTelemetry telemetry + Filters interception points; no built-in evaluation suite |
| L6 | Governance & security layer | Medium-strong | Filters (safety controls and responsible-AI checks) + Entra ID / Managed Identity + deployment modes + resilience |
5.2 L1 Context Engineering Layer
Rating: Medium.
Mechanisms provided: Prompt template language (Handlebars, etc.) for structured prompt assembly; text-search plugins for RAG.
Missing mechanisms: no native automatic context compression / compaction. This is understandable against the 2023 technical backdrop (the context window was the main constraint and agent task chains were short), but in 2026 long-horizon task scenarios this is a hard gap.
Engineering implication: long conversations on SK must implement summarization or window truncation themselves, and this cannot coordinate with the Planner’s intermediate steps — because the Planner’s path is inherently dynamic, you don’t know where to truncate.
5.3 L2 Tools & Execution Layer
Rating: Medium-strong.
- Native plugins: annotated with
[KernelFunction]/@kernel_function. - OpenAPI spec import: automatically generates plugins from API definitions.
- Vector-store connectors: Azure AI Search, Elasticsearch, etc., exposable as plugins for retrieval and semantic search.
Key gap: MCP support on the SK side is incomplete. MCP has become the de facto standard for tool interoperability in 2026, and since SK is in maintenance mode it will not fill this capability in — teams that need MCP must move to MAF. This is the platform’s most decisive technological obsolescence factor.
5.4 L3 Orchestration & Control Layer
Rating: Medium.
- Planner dynamic composition: Stepwise / Handlebars / custom.
- Process Framework: structured business workflows.
- Agent orchestration has always remained experimental — this is SK’s most fatal positioning problem. It provides agent types (
ChatCompletionAgent, etc.), but has never organized these agent types into a production-grade multi-agent orchestration system. Only MAF added production-grade orchestration and persistent checkpoints.
Tension 1 (flexibility ↔ predictability): SK’s Planner is a purely flexibility-oriented design — the LLM dynamically decides which functions to call and in what order. This was innovative in 2023, but by 2026 it is regarded as a reliability anti-pattern. The industry has already voted with its feet: MAF replaced the Planner with the “five modes + explicit graphs.”
5.5 L4 Memory & State Layer
Rating: Medium.
- Thread: conversation thread abstraction (but the corresponding subclass must be instantiated manually).
- Memory abstraction: three layers — semantic memory / long-term memory / entity memory.
- Vector-store connectors: Azure Cognitive Search, Chroma, Qdrant, pgvector.
No persistent checkpoint: long-running flows cannot be resumed across processes. This is a common shortcoming of the second-generation frameworks, and it is where LangGraph builds its advantage through the Checkpointer.
5.6 L5 Evaluation & Observability Layer
Rating: Medium.
- OpenTelemetry telemetry and diagnostics: standardized observability output; this is one of SK’s most solid enterprise-side capabilities.
- Filters: provide interception points usable for instrumentation and quality detection.
No built-in evaluation suite. SK provides the infrastructure for “what you can observe,” but not the methodology or tooling for “how you should judge quality.”
5.7 L6 Governance & Security Layer
Rating: Medium-strong.
This is the most forward-looking part of SK relative to its era, and the reason MAF fully inherited it:
| Mechanism | Role |
|---|---|
| Filters | Interception before/after function calls and prompt rendering, for safety controls, responsible-AI checks, and telemetry |
| Entra ID / Managed Identity | Enterprise-grade authentication |
| Deployment modes | Azure Container Apps, Functions |
| Error handling and retry resilience | Production-grade resilience |
The Filters mechanism deserves special emphasis: back in 2023 it introduced the pattern of “inserting enterprise policy checks before and after every LLM/function call.” This pattern later became industry standard — CrewAI’s runtime hooks, MAF’s Middleware, and Alibaba Cloud Bailian’s Middleware are all different implementations of the same idea.
On cost guardrails: no task-level budget-cap mechanism was found for SK. Filters could theoretically be used for counting and rate limiting (would need to be implemented yourself), but there is no out-of-the-box capability.
5.8 Projection of the Three Inherent Tensions onto Semantic Kernel
| Tension | Manifestation on SK | Answer the platform gives | Remaining risk |
|---|---|---|---|
| Flexibility ↔ predictability | Planner is fully dynamic; paths are not enumerable | Chose the flexibility side | Industry has judged it a reliability anti-pattern by 2026; MAF corrects it with graph workflows |
| Openness ↔ governance | No native MCP / A2A support; openness is limited | Filters provide call-level governance (ahead of its time but isolated) | Governance is strong but openness is weak; cannot integrate tools from the MCP ecosystem |
| Cost ↔ depth | No budget mechanism | None (must be self-built) | The dynamic Planner’s unpredictable paths make token consumption unpredictable |
A historical observation worth recording: SK was ahead on “governance” but behind on “openness.” It used Filters to push governance down to the call level (finer-grained than most 2026 platforms), yet because it lacked MCP it was marginalized in tool interoperability. This shows that Harness’s competitiveness is not single-point depth, but the synchronized evolution of all six layers — if any layer falls behind, it drags down the whole.
6. Real-World Cases
No enterprise deployment case with quantified impact data was found. The retrieved materials are all framework comparisons and migration guides.
Qualitative points that are available:
- Since its 2023-03 release and until entering maintenance mode, Semantic Kernel accumulated about three years of enterprise field experience.
- SK and AutoGen together accumulated more than 75,000 GitHub stars, and this engineering asset has been inherited by MAF.
- SK’s enterprise-grade capabilities (type safety, filter pipeline, telemetry, multi-language) have a real deployment base in .NET and Java enterprise stacks, but no publicly citable customer names or impact metrics were found.
Honest note: all of the above are qualitative descriptions and do not constitute evidence of deployment impact.
7. Summary
7.1 Strengths
- Stable, production-ready: long-term support until at least 2027-04; existing workloads can run with confidence.
- Enterprise-grade type safety and telemetry: OpenTelemetry native; Filters provide call-level interception.
- Not tightly bound to Azure: can run on any cloud or on-premises.
- Multi-language SDK (C# / Python / Java): highly significant for .NET and Java enterprise stacks, and rare in the Python-dominated ecosystem.
- Learning it equals learning MAF’s foundation layer: Kernel, plugins, connectors, and filters all survive within MAF, so the learning investment is not fully sunk.
- MIT license, with no commercial restrictions.
7.2 Weaknesses
- Maintenance mode, no new features: no new requirements will be fulfilled on SK.
- Agent orchestration remains experimental: never formed a production-grade multi-agent orchestration system.
- No native MCP / A2A support: marginalized under the 2026 tool-interoperability standard.
- No persistent checkpoint: long-running flows cannot be resumed across processes.
- Must build through the Kernel god object: a lot of boilerplate.
- No native context compression: long-horizon tasks must manage context budgets themselves.
- Reliability issues with Planner dynamic orchestration: paths are not enumerable and are hard to debug.
- No public quantified deployment data was found.
7.3 Applicability Boundaries
New projects should not choose Semantic Kernel. They should use Microsoft Agent Framework directly.
Scenarios where it can still be retained:
- Existing SK production workloads with no new-feature requirements — they can run reliably for more than a year until 2027-04.
- Simple integrations needing only “LLM + plugin + telemetry,” not involving multi-agent orchestration, where the team is already familiar with SK.
- As a path for learning MAF’s foundation layer (but this does not constitute a production selection reason).
7.4 Selection & Migration Recommendations
Recommended strategy: “Use the new framework for new agents, and migrate existing agents opportunistically when touched.”
| Decision point | Recommendation |
|---|---|
| New projects | Choose Microsoft Agent Framework directly, not SK |
| Existing SK workloads, running stably, with no new requirements | Keep as is; plan a migration window before 2027-04 |
| Existing SK workloads that need MCP / multi-agent orchestration / checkpoint | Migrate immediately — these capabilities SK will never provide |
| Using SK only for simple “LLM + plugin” integration | Can be deferred, but should be migrated together with the next refactor |
| Team skill investment | Keep learning SK’s Kernel / plugin / filter concepts (inherited by MAF), but write new code with the MAF API |
Technical-feasibility assessment of migration: since MAF retains the Kernel, plugin model, connectors, and filters, and has released an official migration guide (from the 2026-02 RC period), the SK → MAF migration is of the type “concepts map directly, APIs need rewriting” rather than a from-scratch rebuild. The main change points:
- Multiple agent types → unified
ChatClientAgent. - Manual Thread management →
agent.CreateSessionAsync(). - Kernel mandatory construction → optional.
- Filters → Middleware (same concept, different API).
- Planner → graph workflows / the five orchestration modes (this is the only part that needs redesigning).
One-sentence conclusion: Semantic Kernel is an important foundational pioneer of enterprise-grade LLM SDKs, and its Filters and plugin model remain industry-benchmark designs to this day. But by 2026 it is already on a “legacy but supported” track — it is the key to understanding MAF, not the road to MAF.
Information Gap Statement
- Enterprise deployment cases and quantified impact data: after three rounds of retrieval, no enterprise deployment case with quantified impact data was found. Everything retrieved is framework comparison and migration guides.
- Feature parity across languages: for the specific gaps among the C# / Python / Java SDKs in plugin ecosystems, the Memory abstraction, and Planner implementations, no official detailed comparison table was found.
- Exact end date of maintenance mode: only “supported for at least until 2027-04” (i.e., at least one year after MAF GA) is known; the exact end-of-support date is not public.
- Exact boundary of MCP support: the report records that “MCP support on the SK side is incomplete,” but no official statement on “to what extent it is supported” was found, marked
[To be verified]. - Task-level cost guardrails: no budget-cap mechanism was found for SK, marked
[To be verified]. - Version number is time-sensitive: Microsoft.SemanticKernel 1.77.0 (2026-05-28) is the version at the 2026-09 retrieval point.
- Transparency / AI-generated content labeling: no public materials were found from Semantic Kernel’s official channels on transparency statements or AI-generated content labeling policy.
- Complete SK-to-MAF API migration comparison table: the retrieved migration guides cover the main change points (agent types, Thread, Kernel, Filters), but lack a complete per-API comparison, marked
[To be verified].
8. References
- Semantic Kernel: Enterprise Agent Framework — Agent DevPro. https://agentdevpro.com/frameworks/semantic-kernel
- Microsoft's Quiet Shift: Why Semantic Kernel Is Moving to Maintenance Mode — FrontierNews. https://www.frontiernews.ai/news/article/microsofts-quiet-shift-why-semantic-kernel-is-movi-23683b05
- Migrate a Semantic Kernel App to Microsoft Agent Framework 1.0 — Start Debugging. https://startdebugging.net/2026/07/migrate-a-semantic-kernel-app-to-microsoft-agent-framework-1-0
- Microsoft Agent Framework vs Semantic Kernel for a Greenfield .NET Agent — Start Debugging. https://startdebugging.net/2026/06/microsoft-agent-framework-vs-semantic-kernel-for-a-greenfield-net-agent
- Microsoft Agent Framework 1.0 Ends the Semantic Kernel Era — SourceFeed. https://sourcefeed.dev/a/microsoft-agent-framework-10-ends-the-semantic-kernel-era
- Microsoft Agent Framework — Microsoft Learn official documentation. https://learn.microsoft.com/en-us/agent-framework/overview/
- Microsoft Agent Framework 1.0: .NET and Python 2026 — DigitalApplied. https://www.digitalapplied.com/blog/microsoft-agent-framework-1-0-dotnet-python-guide
- Microsoft Agent Framework Developer Guide 2026 — Developer's Digest. https://www.developersdigest.tech/blog/microsoft-agent-framework-developer-guide-2026
- Microsoft Agent Framework at BUILD 2026 — Microsoft official. https://aka.ms/Build2026MicrosoftAgentFramework