关键要点
- MIT license——完全免费使用、修改和自托管,SDK 本身无使用上限
- 由微软开发,2023 年 3 月首次开源发布——最初以 C#/.NET 为主,Python 和 Java 是作为一等 SDK 加入的,而非事后添加
- microsoft/semantic-kernel 的 GitHub 仓库已突破 28,000 star
- 核心概念:Kernel(中央编排器)、Plugins(模型可调用的函数和提示词模板)、Planners(如今已大部分被原生 LLM function calling 取代)
- Microsoft Agent Framework(MAF)于 2026 年 4 月 2 日正式发布(GA),将 Semantic Kernel 与 AutoGen 统一为一个受支持的平台——这是微软对两者官方指定的继任者
- 自 MAF 发布以来,Semantic Kernel 已进入维护模式:仅提供关键错误修复和安全补丁,承诺支持至少持续到 2027 年
- SDK 本身免费;成本来自你所连接的模型 API(Azure OpenAI、OpenAI 等),以及如果部署在 Azure 上,还有相应的托管费用
📍 简单一句话
Semantic Kernel 是微软免费、MIT-licensed 的开源 SDK,用于通过原生 C#/.NET、Python 和 Java SDK 构建 LLM 应用,目前已进入维护模式,因为微软正将新开发投入其继任产品 Microsoft Agent Framework。
💬 简单来说
Semantic Kernel 为 .NET、Python 和 Java 开发者提供相同的构建模块——一个承载 AI 服务的 'kernel'、模型可以调用的 'plugins',以及决定运行哪个插件的规划逻辑——但微软现在建议将新的智能体项目建立在 Microsoft Agent Framework 之上。
📌注: Semantic Kernel 是一个供你编写代码调用的库,而非可下载的应用程序——没有需要安装的图形界面。维护模式并不意味着被弃用:微软会继续为现有生产部署提供错误修复和安全补丁,这只是意味着新功能现在流向 Microsoft Agent Framework。
Semantic Kernel 是谁开发的?它现在的走向如何?
微软于 2023 年 3 月将 Semantic Kernel 作为开源 SDK 发布,此后 Microsoft Agent Framework 成为其官方指定的继任产品。 Semantic Kernel 通过 'kernel' 这一抽象,将大语言模型与传统应用代码结合,采用宽松的 MIT license 发布。与大多数先面向 Python、后续再添加其他语言的智能体框架不同,Semantic Kernel 最初以 C#/.NET 为主要语言发布,随后将 Python 和 Java 添加为一等 SDK,而非后期移植。
Semantic Kernel 推广了 'plugin(插件)' 和 'planner(规划器)' 这两个术语,后来行业中许多项目以不同名称采用了这套概念。插件是模型可以发现并调用的原生函数或提示词模板;规划器则决定调用哪个插件以及调用顺序。早期专门的规划器——SequentialPlanner、ActionPlanner、StepwisePlanner——在模型提供商加入原生 function calling 后基本被取代,Semantic Kernel 现在默认通过其 FunctionChoiceBehavior 设置使用这一机制。
2026 年,微软将 Semantic Kernel 重新定位到一场更大范围的融合之中。Microsoft Agent Framework(MAF)于 2026 年 4 月 2 日正式发布(GA),将 Semantic Kernel 的企业级基础——Kernel、插件、过滤器、可观测性——与 AutoGen 的多智能体编排模型统一为一个受支持的平台。自那以后,microsoft/semantic-kernel 仓库进入维护模式:微软继续提供关键错误修复和安全补丁,承诺支持至少持续到 2027 年,而新功能投资则流向 Agent Framework。
首次发布
- 日期:
- 2023-03
- 含义:
- 微软将 Semantic Kernel 作为开源、MIT-licensed 的 SDK 发布,最初为 C#/.NET
Python 与 Java SDK
- 日期:
- 2023
- 含义:
- Python 和 Java 移植版本作为一等 SDK 相继推出,使 Semantic Kernel 成为少数多语言智能体框架之一
规划器被取代
- 日期:
- 持续进行
- 含义:
- 早期专门的规划器类逐渐被 LLM 原生 function calling 取代,成为默认的规划机制
Microsoft Agent Framework 预览
- 日期:
- 2025-10
- 含义:
- 微软预览 Agent Framework,即整合 Semantic Kernel 与 AutoGen 的官方指定继任产品
Microsoft Agent Framework GA
- 日期:
- 2026-04-02
- 含义:
- MAF 正式发布,微软将其定位为 Semantic Kernel 与 AutoGen 的共同继任者
Semantic Kernel 维护模式
- 日期:
- 2026-04
- 含义:
- microsoft/semantic-kernel 转为仅提供关键错误修复和安全补丁,承诺支持至少持续到 2027 年
📌注: MIT license 不会因这次过渡而改变——现有的 Semantic Kernel 部署仍可无限期免费运行、修改和自托管。发生变化的是微软将新功能开发投资到哪里,如今这个方向是 Microsoft Agent Framework。
Semantic Kernel 是什么?
Semantic Kernel 是一个开源 SDK(MIT license,github.com/microsoft/semantic-kernel),用于将大语言模型集成到应用程序中,提供 C#/.NET、Python 和 Java 的原生 SDK。其核心抽象 Kernel 持有 AI 服务连接、插件和内存,并编排它们之间的调用。
- Kernel:持有已注册的 AI 服务(对话补全、embeddings)、插件和配置的中央对象——每个 Semantic Kernel 应用都会构建一个
- Plugins:带有元数据标注(Python 中的
@kernel_function,C# 中的 `[KernelFunction]`)的原生代码函数或提示词模板,模型可以发现并调用它们——相当于其他框架中的 "tools" - Planners:决定调用哪些插件以满足请求的逻辑;现代默认方式依赖模型提供商的原生 function calling(
FunctionChoiceBehavior.Auto()),而非旧的专用规划器类 - 向量存储连接器(内存):用于在受支持的向量数据库间存储和检索 embeddings 的标准接口,用于检索增强生成
- Process Framework:构建在 Kernel 之上的工作流抽象,用于更长时间、多步骤的业务流程
- 企业级组件:面向生产环境 Azure 部署设计的内置过滤器、可观测性与遥测钩子,以及结构化日志
import asyncio
from semantic_kernel import Kernel
from semantic_kernel.connectors.ai.open_ai import AzureChatCompletion
from semantic_kernel.connectors.ai.function_choice_behavior import FunctionChoiceBehavior
from semantic_kernel.contents.chat_history import ChatHistory
from semantic_kernel.functions import kernel_function
class LightsPlugin:
@kernel_function(description="Turns a light on or off")
def change_state(self, is_on: bool) -> str:
return f"Light is now {'on' if is_on else 'off'}"
async def main():
kernel = Kernel()
kernel.add_service(AzureChatCompletion(deployment_name="gpt-4o-mini", api_key="...", base_url="..."))
kernel.add_plugin(LightsPlugin(), plugin_name="Lights")
history = ChatHistory()
history.add_user_message("Turn on the light")
chat = kernel.get_service(type=AzureChatCompletion)
result = await chat.get_chat_message_contents(
chat_history=history,
settings=AzureChatCompletion.get_prompt_execution_settings_class()(
function_choice_behavior=FunctionChoiceBehavior.Auto()
),
kernel=kernel,
)
print(result[0])
asyncio.run(main())Semantic Kernel 收费吗?
Semantic Kernel SDK 本身完全免费——微软不为该框架收费,Semantic Kernel 也没有付费层级。真正的成本来自你调用的大语言模型,以及如果部署在 Azure 上,还有运行应用程序的基础设施费用。
- Semantic Kernel(SDK):永久免费,MIT license,可自托管或云端部署,框架本身无使用上限
- 模型 API 成本:按你连接的 LLM 提供商(Azure OpenAI Service、OpenAI 等)按量付费——Semantic Kernel 本身不托管也不转售模型访问权限
- Azure 托管成本(可选):部署到 Azure App Service、Azure Functions 或 Azure Kubernetes Service 需支付标准 Azure 计算费用——Semantic Kernel 并不要求使用 Azure,但微软自身的示例和企业级组件默认假定使用 Azure
- 向量数据库成本(可选):为内存/RAG 场景连接 Azure AI Search 或其他向量存储,需支付该服务自身独立的费用
- 支持:微软对现有 Semantic Kernel 部署承诺的维护窗口(关键错误修复和安全补丁)至少持续到 2027 年,除现有的微软或 Azure 协议外不产生额外费用
项目 | 价格 | 最适合 |
|---|---|---|
| Semantic Kernel SDK | 免费(MIT license) | 所有人——永远免费 |
| 模型 API 使用 | 按提供商按量计费 | 你连接的任何 LLM |
| Azure 托管(可选) | 标准 Azure 计算费率 | 在 Azure 上部署的团队 |
| 向量存储(可选) | 因提供商而异 | RAG / 内存用例 |
截至 2026 年 9 月,已根据 Semantic Kernel 官方文档和 GitHub 仓库核实——模型 API 和 Azure 托管的价格由相应服务独立设定并会随时间变化,制定预算前请查看最新的定价页面。
如何安装并开始使用 Semantic Kernel?
安装 Semantic Kernel 只需在其支持的三种语言中的任意一种执行一条包管理器命令——SDK 本身无需账户或许可证密钥。
- 1为你的语言安装 SDK:
dotnet add package Microsoft.SemanticKernel(.NET)、pip install semantic-kernel(Python),或添加com.microsoft.semantic-kernel依赖(Java)。 - 2将你的模型提供商凭据设置为环境变量或配置——Semantic Kernel 本身不提供模型访问权限;请连接 Azure OpenAI、OpenAI 或其他受支持的连接器。
- 3创建一个
Kernel,添加一个 AI 服务(例如 .NET 中的AddAzureOpenAIChatCompletion或 Python 中的AzureChatCompletion),并注册模型可以调用的插件。 - 4启用自动 function calling(
FunctionChoiceBehavior.Auto()),使模型可以直接调用已注册的插件,而无需编写专用的规划器。 - 5对于全新项目,请评估是否应直接使用 Microsoft Agent Framework——微软官方指定的继任产品,自 2026 年 4 月起正式提供——而不是在已进入维护模式的 SDK 之上构建。
- 6阅读 Semantic Kernel 官方文档和 GitHub 仓库以获取最新的 API 参考和迁移指南。
使用 Semantic Kernel 需要 Azure 吗?
不需要。Semantic Kernel 在微软的大多数示例中默认连接到 Azure OpenAI Service,但也通过连接器支持原生 OpenAI 和其他提供商。运行 SDK 本身并不强制要求使用 Azure。
新项目应该使用 Semantic Kernel 还是 Microsoft Agent Framework?
微软自身的指南将新项目引导至 Microsoft Agent Framework,这是自 2026 年 4 月 2 日起正式发布的继任产品。Semantic Kernel 目前主要适合已经在生产环境中运行它的团队。
谁适合使用 Semantic Kernel?
Semantic Kernel 适合已经在其中投入的团队,或拥有现有 .NET/Azure 技术栈、更看重原生多语言 SDK 而非尽可能大的社区的团队。对于 2026 年从零开始的项目来说,它是较弱的选择。
什么情况下不应使用 Semantic Kernel?
除非你有明确理由回避 Microsoft Agent Framework,否则在 2026 年启动全新项目时应避免使用 Semantic Kernel。以下是一些其他工具更合适的具体情况。
- 2026 年在没有现有 Semantic Kernel 投入的情况下从零开始——直接使用微软官方的通用可用继任产品 Microsoft Agent Framework,而不是在已进入维护模式的 SDK 之上构建
- 不在 .NET/Azure 生态系统中的团队,会从 LangChain 或 LlamaIndex 周围更大的社区、教程和集成目录中受益
- 需要 AutoGen/AG2 风格的特定多智能体对话模式——多个命名智能体在群聊中辩论或协商——而非单一 kernel 调用插件的项目
- 轻量级脚本或原型,直接调用模型提供商 API 比采用 Kernel/插件/规划器抽象更简单
- 仅当你已有可运行的生产部署,且承诺的支持窗口能覆盖你的时间表时,才使用 Semantic Kernel,而不是中途切换
Semantic Kernel 与替代方案对比
Semantic Kernel 与其他用于构建 LLM 应用和智能体的框架竞争——而在微软自身的路线图中,它如今正与其中一个框架融合。
工具 | 接口 | 许可证 | 支持方 | 最适合 |
|---|---|---|---|---|
| Semantic Kernel | C# / Python / Java 代码 | MIT | 微软(维护模式) | 现有 .NET/Azure 企业应用 |
| Microsoft Agent Framework | C# / Python 代码 | MIT | 微软 | 微软生态系统中的新智能体项目 |
| LangChain | Python / JS 代码 | MIT | LangChain Inc.(风投支持) | 通用型 LLM 应用与智能体 |
| LlamaIndex | Python / TS 代码 | MIT | LlamaIndex Inc.(风投支持) | RAG 优先的索引与检索 |
| CrewAI | Python 代码 | MIT | CrewAI Inc.(风投支持) | 基于角色的多智能体团队 |
| AutoGen | Python 代码 | MIT / CC-BY | Microsoft Research(维护模式) | 多智能体对话模式 |
| LangGraph | Python / JS 代码 | MIT | LangChain Inc. | 基于图的有状态智能体 |
评估 Semantic Kernel 时的常见误区
这些误区源于对"维护模式"含义的误读,或将 Semantic Kernel 与其自身的继任产品混淆。
常见问题
Semantic Kernel 免费吗?
是的。Semantic Kernel 采用 MIT license 开源,可免费用于任何用途,包括商业产品,SDK 本身没有使用限制。
Semantic Kernel 是谁开发的?
微软开发了 Semantic Kernel,并于 2023 年 3 月将其作为开源 SDK 发布。
Semantic Kernel 被弃用了吗?
没有——它处于维护模式,而非被弃用。微软继续为 Semantic Kernel 提供关键错误修复和安全补丁,承诺支持至少持续到 2027 年,但新功能开发现在流向 Microsoft Agent Framework。
Microsoft Agent Framework 是什么?它与 Semantic Kernel 是什么关系?
Microsoft Agent Framework(MAF)是微软对 Semantic Kernel 和 AutoGen 两者官方指定的继任产品,将 Semantic Kernel 的企业级基础与 AutoGen 的多智能体编排模型融合为一个受支持的平台。它于 2026 年 4 月 2 日正式发布(GA)。
新项目应该使用 Semantic Kernel 还是 Microsoft Agent Framework?
微软自己的文档将新项目引导至 Microsoft Agent Framework。Semantic Kernel 主要仍适合那些已有生产部署、并希望在承诺的支持窗口内继续维持运行的团队。
Semantic Kernel 支持哪些编程语言?
C#/.NET、Python 和 Java,均以原生 SDK 形式提供——Semantic Kernel 最初以 C#/.NET 发布,随后将 Python 和 Java 添加为一等 SDK,而非后期移植版本。
Semantic Kernel 中的"插件"是什么?
插件是一个原生代码函数或提示词模板,带有 Kernel 可以读取的元数据标注,模型可以发现并调用它——相当于其他智能体框架中的 "tools"。
Semantic Kernel 运行需要 Azure 吗?
不需要。除了 Azure OpenAI Service 之外,Semantic Kernel 还支持原生 OpenAI 和其他模型连接器。Azure 在微软自身的示例和企业级组件中很常见,但并非 SDK 的硬性要求。
Semantic Kernel 在 GitHub 上有多少 star?
microsoft/semantic-kernel 仓库已突破 28,000 个 GitHub star。
Semantic Kernel 比 LangChain 更好吗?
两者并非绝对孰优孰劣——它们适合不同的场景。Semantic Kernel 提供原生多语言 SDK(C#/.NET、Python、Java)和面向 Azure 的企业级组件,但目前处于维护模式;LangChain 是 Python/JavaScript 优先,拥有更大的社区并处于积极开发中。
