GitHub: microsoft/semantic-kernel
Stars: 28,100+ | Language: C# (66.7%), Python (31.4%) | License: MIT
官网: learn.microsoft.com/semantic-kernel
目录
项目速览
Semantic Kernel(简称 SK)是微软于 2023 年初开源的企业级 AI Agent 开发框架,定位为 “Model-agnostic SDK that empowers developers to build, orchestrate, and deploy AI agents and multi-agent systems”。截至 2026 年 6 月,项目在 GitHub 上已获得超过 28,100 颗 Star,是微软在 AI Agent 领域投入最大的开源项目之一。
Semantic Kernel 的核心理念是将企业级 AI 能力嵌入现有应用架构。不同于 LangChain 等以 Python 生态为中心的框架,SK 同时提供 .NET、Python 和 Java 三种语言的 SDK,其中 .NET 版本是主力。设计上强调与微软生态(Azure AI、Microsoft 365、Power Platform)的深度集成,以及企业应用所需的治理能力(安全、合规、可观测性)。
2025 年是 SK 的关键转型年。微软推出了 Agent Framework(Agent 框架),将 SK 从 LLM 编排引擎升级为完整的 Agent 开发平台。同时,微软宣布 SK 正在与 AutoGen(微软研究院的多 Agent 研究框架)融合,基于共享运行时构建统一的 Agent 解决方案。值得注意的是,微软还发布了 **Microsoft Agent Framework (MAF)**,定位为 SK 的企业级继任者,但目前 SK 仍然是生产级应用中推荐使用的主要 SDK。
功能概述
Agent Framework — 多 Agent 协作核心
SK Agent Framework 是 2025 年的旗舰功能,提供面向自主、目标驱动的 Agent 应用开发的完整抽象:
- Agent 类:构建独立 Agent 的基础类,每个 Agent 拥有专属的技能(Skills)和知识
- Agent Chat:管理单个 Agent 与 AI 及 API 端点之间的交互
- Agent Group Chat:动态多 Agent 协调——参与 Agent 可以在运行时动态加入和退出对话
- Service-Managed Threads:通过 Azure AI 自动管理对话历史,无需手动追踪消息
- Human-in-the-Loop:原生支持
ctx.request_info()在关键决策点暂停工作流,等待人工审批
Agent 之间通过 Structured Output Routing 实现动态编排:每个 Agent 返回 Pydantic 模型(Python)或强类型对象(.NET),包含 next_agent 路由决策,实现灵活的动态工作流。
Planner 规划系统
Planner 是 SK 的核心组件之一,允许 AI 将自然语言目标自动分解为可执行步骤。SK 提供多种 Planner:
- Sequential Planner:按预定义顺序线性执行步骤
- Action Planner:为目标选择单个最佳操作
- Stepwise Planner:迭代式规划和执行,根据中间结果动态调整
- Handlebars Planner:使用 Handlebars 模板引擎生成执行计划,适合需要确定性和可预测性的场景
- Dynamic Planning:AI 在运行时决定执行路径,根据上下文和结果实时添加新步骤
Planner 与智能路由图(Intelligent Routing Graphs)协同工作,将可能的决策路径表示为有向图,允许 Agent 根据实时条件沿不同路径执行。
Process Framework — 长业务流程编排
对于需要持续数小时甚至数天的企业级业务流程,SK 提供了 Process Framework:
- 事件驱动架构:步骤之间通过事件通信,天然支持异步并行执行和扇出(fan-out)模式
- 分布式编排:与 Dapr 和 Microsoft Orleans 集成,支持跨服务的分布式工作流
- 持久化状态:业务流程状态可持久化,支持故障恢复和长时间暂停
- Agent 嵌入:Process 的每个步骤可以是一个普通函数,也可以是一个完整的 Agent
多语言 SDK 与模型无关
SK 的独特优势之一是真正的多语言支持和模型无关设计:
- .NET SDK(主力):与 ASP.NET Core、Azure Functions、Blazor 等微软技术栈无缝集成
- Python SDK:与 FastAPI、Flask 等 Python 框架兼容,已被广泛采用(占仓库代码 31.4%)
- Java SDK:支持 Spring Boot 等 Java 生态
- 模型支持:OpenAI、Azure OpenAI、Hugging Face、NVIDIA NIM、Ollama、LMStudio 等
- 向量数据库:Azure AI Search、Elasticsearch、Chroma、Pinecone 等多种选择
AutoGen 融合
2025 年微软启动了一项重大整合计划:将 SK 与 AutoGen 多 Agent 研究框架融合在共享运行时上:
- 共享运行时:统一 Agent 编排抽象,可进程内托管或分布式部署(Dapr、Orleans)
- 互操作性:AutoGen Agent 可以托管在 SK 中运行(SK Python 1.20.0+ 已支持)
- 连接器共享:AutoGen 可以复用 SK 的 AI 连接器库(Anthropic、Ollama、Gemini、Azure Foundry 等)
- AutoGen Studio:无代码 GUI,拖拽构建 Agent 团队,底层使用声明式 JSON 配置
企业级治理
Semantic Kernel 从设计之初就面向企业场景,提供精细的安全与合规控制:
- Azure 托管身份:支持 Managed Identity 进行服务间认证
- 敏感数据处理:通过 Filters 和 Middleware 实现 PII 检测和脱敏
- 审计追踪:与 Azure Monitor / Application Insights 集成,完整记录 Agent 行为
- 响应过滤:可配置的内容安全过滤器,防止不当输出
适用场景
.NET 技术栈的 AI 应用集成
SK 是 .NET 生态中最成熟、微软官方支持的 Agent 框架。如果你的团队使用 C# 和 .NET(ASP.NET Core、Blazor、MAUI 等),SK 是嵌入 AI 能力最自然的选择。它提供了 .NET 原生的依赖注入、配置管理和中间件管道,与现有企业应用架构无缝兼容。
企业业务流程自动化
结合 Process Framework 和 Planner,SK 可以自动化复杂的业务流程:订单处理(验证→库存检查→支付→通知)、合同审批(解析→风险评估→合规检查→人工审批)、IT 运维(告警分析→诊断→修复→报告)等。Dapr/Orleans 集成使其能够横向扩展以处理大规模工作负载。
Microsoft 365 与 Azure 生态集成
SK 可以原生访问 Microsoft Graph API(邮件、日历、联系人、文件等)、Azure AI Services(认知服务、机器翻译、文档智能等)和 Power Platform。这使得构建”AI 驱动的企业助手”变得非常简单——Agent 可以读取邮件、创建日历事件、查询 SharePoint 文档、调用 Azure AI 能力。
RAG 知识管理
SK 提供完整的 RAG 支持,结合 Azure AI Search 作为矢量存储后端。适用于企业内部知识库问答、技术文档搜索、合规政策查询等场景。与传统 RAG 不同,SK 的 Agent Framework 允许构建自我纠错的多 Agent 网络,提升 RAG 结果的可靠性。
多 Agent 系统研究与原型
由于 SK 正在与 AutoGen 融合,它既可以用于生产部署(通过 SK),也可以用于 Agent 行为研究和原型开发(通过 AutoGen Studio 的可视化拖拽界面)。这使得团队可以在同一生态内完成从实验到上线的全过程。
快速上手
安装(Python)
pip install semantic-kernel |
如需使用 Azure AI 服务管理线程(Agent Framework):
pip install semantic-kernel[azure] |
安装(.NET)
dotnet add package Microsoft.SemanticKernel |
最简示例(Python):创建插件并使用 Planner
import asyncio |
源码架构
Semantic Kernel 采用多语言 monorepo 结构:
semantic-kernel/ |
- **dotnet/src/SemanticKernel.Core/**:.NET SDK 的核心,实现 Kernel 抽象、函数注册管道、插件系统和依赖注入集成。
- **dotnet/src/SemanticKernel.Agents/**:Agent Framework 的 .NET 实现,包含 Agent、Agent Chat、Agent Group Chat 和服务管理线程等核心抽象。
- **dotnet/src/SemanticKernel.Planners/**:Planner 系统实现,支持 Sequential、Stepwise、Handlebars 等多种规划策略。
- **dotnet/src/SemanticKernel.Process/**:Process Framework,事件驱动的长业务流程编排引擎,集成 Dapr/Orleans 分布式运行时。
- **python/semantic_kernel/**:Python SDK,功能与 .NET 版本基本对等,额外支持与 AutoGen 的互操作性。
实操 Demo
下面是一个完整的 Agent 插件系统 Demo,展示如何创建自定义技能并使用 Planner 自动编排。
""" |
运行:
pip install semantic-kernel |
同类对比
| 特性 | Semantic Kernel | LangChain | OpenAI Agents SDK |
|---|---|---|---|
| 定位 | 企业级多语言 Agent SDK | 通用 Agent 工程平台 | OpenAI 官方 Agent 框架 |
| Stars | 28,100+ | 139,000+ | 25,000+ |
| 支持语言 | C# / Python / Java | Python(主力) | Python |
| 核心优势 | 微软生态深度集成(Azure/M365),.NET 原生支持,企业级治理 | 生态最丰富,LangGraph 编排灵活,社区活跃度最高 | 与 OpenAI 模型最佳配合,API 设计简洁现代 |
| Agent 模式 | Agent Framework + Planner + Process Framework | create_agent + LangGraph + Middleware | Agent + Handoff + Guardrails |
| 企业功能 | Azure 集成、DI 支持、审计追踪、响应过滤 | 通过 LangSmith 和合作伙伴提供 | OpenAI 平台内置监控和安全 |
| 适用场景 | .NET 技术栈企业应用、Azure 生态、需要多语言支持的项目 | 需要最大灵活性和集成选择的通用 Agent 应用 | 深度依赖 OpenAI 模型的简单 Agent 应用 |
分析:Semantic Kernel 的最大差异化优势在于企业就绪性和多语言支持。如果你的技术栈是 C#/.NET 或 Java,SK 几乎是唯一成熟的官方选择。与 LangChain 相比,SK 的生态不如 LangChain 丰富,但其与微软企业生态(Azure AI、Microsoft 365、Power Platform)的深度集成在特定场景中不可替代。OpenAI Agents SDK 更简洁轻量,但深度绑定 OpenAI 模型,缺乏其他提供商的灵活性。值得关注的是,微软正推动 SK 与 AutoGen 融合,未来有望将生产级稳定性和前沿研究能力统一到一个平台中。
参考资源
- 官方文档: https://learn.microsoft.com/en-us/semantic-kernel/
- GitHub 仓库: https://github.com/microsoft/semantic-kernel
- Microsoft Agent Framework: https://devblogs.microsoft.com/agent-framework/
- AutoGen 项目: https://github.com/microsoft/autogen
- SK + AutoGen 融合博客: https://devblogs.microsoft.com/agent-framework/semantic-kernel-and-autogen-part-2/
- 社区 Discord: https://aka.ms/sk/discord


