# Semantic Kernel

Semantic Kernel 是微软出品的开源 SDK，支持在 C\#、Python 和 Java 中构建 AI Agent、插件、RAG 工作流及模型驱动应用。它更适合被定义为应用编排框架，而非 AI IDE 或编码助手。

Canonical URL: https://aiidelist.com/zh/ide/semantic-kernel

Language: zh

更新日期: 2026-10-06

## 概览

- 分类: Developer Workflow Tools
- Semantic Kernel 是微软出品的开源 AI 应用编排 SDK，用于将 LLM、插件、记忆、向量库和现有代码连接到 Agent 工作流中。
- 编辑器基础: Standalone
- 平台: .NET, C\#, Python, Java, Windows, macOS, Linux, Azure, OpenAI-compatible providers, Local model runtimes
- 开源: 是
- 本地模型支持: 是
- 自带 API 密钥: 是

## 简评

Semantic Kernel 对于已在使用它的团队或需要在 .NET、Python 或 Java 应用中进行微软体系 AI 编排的开发者仍然非常有用。对于新的多智能体项目，团队应将其与 Microsoft Agent Framework 同步评估，因为微软已将其定位为未来的演进方向。

## 适合场景

- 向现有 .NET 应用程序添加 AI Agent
- 将 LLM 连接到业务 API 和内部代码
- 函数调用工作流
- 结合向量数据库的 RAG 应用
- 围绕 Azure AI 和微软开发工具标准化的企业团队
- 计划向 Microsoft Agent Framework 迁移的团队

## 优点

- 非常适合在现有应用中构建 AI 功能的 .NET、Python 和 Java 团队。
- MIT 开源协议，拥有完善的微软官方文档支持和生态协同。
- 插件模型使现有业务逻辑无需重写即可被 LLM 调用。
- 模型无关的设计有助于团队避免在应用层硬编码单一提供商。
- 连接传统软件工程模式与 Agent 智能体工作流的实用桥梁。

## 局限

- 寻找 Cursor 或 Windsurf 等 AI 代码编辑器的开发者
- 需要终端优先（Terminal-first）编码 Agent 的团队
- 寻找无代码聊天机器人构建器的非技术用户
- 需要 TypeScript 优先的 LLM 框架的前端团队
- 应直接从 Microsoft Agent Framework 开始的新多智能体项目
- 非原生 AI 代码编辑器、IDE 插件或自主处理 Issue 到 PR 的编码 Agent。
- Microsoft Agent Framework 现已成为新 Agent 项目面向未来的继承方案。
- 生产质量仍高度依赖于评测、提示词治理、模型选择和架构设计。
- 部分连接器和功能在不同语言、提供商及成熟度水平上存在差异。
- 微软/.NET 生态以外的团队可能会发现 LangChain 或 LlamaIndex 拥有更丰富的社区示例。

## 为什么选择 Semantic Kernel？

如果你的目标是在现有软件系统中集成 AI 能力，而不是从零构建一个独立的聊天机器人，那么 Semantic Kernel 将非常有用。其核心理念是让大语言模型（LLM）能够调用真实的应用程序函数、与现有 API 交互、检索上下文，并在标准工程边界内运行。

这使其区别于 AI 编码助手。编码助手帮助开发者编写源代码，而 Semantic Kernel 则帮助开发者构建运行层，让 AI 功能在受控的应用架构中使用提示词、工具、记忆、模型提供商和业务逻辑。

选择 Semantic Kernel 的最强理由是对微软生态的高度适配。使用 .NET、Azure OpenAI、Azure AI Search、微软身份认证模式或企业级 C# 服务的团队，可以无需脱离熟悉的工程规范即实现 AI 编排。虽然它也支持 Python 和 Java，但对于以微软技术栈为核心的团队来说，该框架使用起来尤为自然。

## 核心工作流程

典型的 Semantic Kernel 项目始于创建 Kernel（内核）并注册 AI 服务、插件、提示词，以及可选的记忆或向量库组件。随后，应用程序通过内核调用模型，当用户任务需要实际操作或外部上下文时，模型会请求调用可用的函数。

最重要的设计步骤是确定需要暴露哪些函数。插件可以封装数据库查询、CRM 更新、文档搜索、工单操作、内部 API 或计算逻辑。一旦通过清晰的描述和参数进行定义，这些函数就成为了模型可调用的工具。

在生产环境中，工作流的重心从编写提示词转向设定边界。团队需要决定哪些函数可以安全地自动调用，哪些需要审批，如何记录日志，如何处理错误，以及在模型响应影响业务数据之前如何进行验证。

## 适用场景

Semantic Kernel 适用于 AI 需要在现有软件环境中执行操作的场景。例如企业级 Copilot、支持助手、内部工作流 Agent、文档问答、知识检索、业务流程辅助，以及需要调用真实 API 而非仅提供文本回答的 Agent。

它也非常适合增量式现代化改造。团队可以将现有服务封装为插件，添加文档或记录检索功能，并逐步引入 AI 工作流，而无需重写整个应用堆栈。对于拥有成熟 .NET 或 Java 系统的公司来说，这是一个务实的优势。

如果目标仅是简单的网页聊天机器人、无代码助手或编辑器代码补全，那么该框架的吸引力较小。它预设开发者正在构建真实的应用层，并愿意承担模型配置、工具边界定义、测试和部署的工作。

## 同类工具对比

与 LangChain 相比，Semantic Kernel 与微软生态结合更紧密，对于 .NET 团队更友好。LangChain 拥有更广泛的社区生态以及丰富的 Python 和 JavaScript 示例，而当应用已运行在微软基础设施上或需要企业级插件模式时，Semantic Kernel 更具吸引力。

与 LlamaIndex 相比，Semantic Kernel 在工具编排和应用集成方面更通用。当核心难题是索引、检索和数据关联的上下文工程时，LlamaIndex 通常表现更强；而当核心难题是将模型调用整合进现有代码和业务工作流时，Semantic Kernel 是更好的选择。

与 Haystack 相比，Semantic Kernel 不太以管道（Pipeline）为中心，而更倾向于应用中间件。Haystack 适用于明确的 RAG 和搜索管道，而 Semantic Kernel 适用于 AI 系统需要调用函数、通过插件运行并嵌入现有服务架构的场景。

与 Microsoft Agent Framework 相比，选择在一定程度上取决于时效。Semantic Kernel 已趋于成熟且仍适用于现有项目，但 Microsoft Agent Framework 是面向未来新 Agent 及多智能体工作的继承者。新项目应评估直接从 Agent Framework 开始是否能减少未来的迁移工作。

## 最佳配置建议

最佳的 Semantic Kernel 实践应从切入点小、价值高的工作流开始。不要立即暴露大量的内部函数。从几个描述良好的工具开始，添加日志记录，测试真实的提示词，并观察模型在何处选择了错误的函数或缺乏足够的上下文。

对于企业用途，请为 Semantic Kernel 配备明确的安全和审查层。函数调用不应意味着无限制的自动化。敏感操作在执行前应要求确认、角色检查、策略过滤或人工审批。

对于 RAG 工作流，请根据现有数据环境选择向量库和嵌入模型（Embedding）提供商。Azure 团队可能自然首选 Azure AI Search，而 Qdrant、Pinecone、Redis、Weaviate、MongoDB 或基于 SQLite 的方案可能适合其他架构。重点在于保持检索质量的可衡量性，不要假设框架本身能自动解决幻觉问题（Grounding）。

对于本地或私有场景，应及早测试 Ollama、ONNX 或其他兼容 OpenAI 接口的本地运行时。本地模型支持可以减少数据暴露，但可能会改变函数调用的质量、延迟和模型能力。

## 迁移建议

已经在用 Semantic Kernel 的团队在迁移前应将稳定的应用代码与 Agent 抽象层分离。插件、业务函数、提示词和提供商设置通常是可复用的概念，但在向 Microsoft Agent Framework 迁移时，Agent API 和编排模式可能需要更新。

对于从 LangChain 或 LlamaIndex 转来的团队，迁移应基于架构需求而非功能清单。当目标应用深度绑定 .NET、Azure 或现有企业服务时，Semantic Kernel 最具吸引力。如果当前系统主要是一个 Python RAG 管道，只有在微软生态对齐成为主要需求时，迁移才具有意义。

对于新项目，最稳妥的路径是同时评估 Semantic Kernel 和 Microsoft Agent Framework。Semantic Kernel 在基于插件的应用集成方面可能仍然适用，但根据微软目前的指导建议，Agent Framework 对于长期 Agent 规划至关重要。

## 实践中的权衡

Semantic Kernel 的主要代价是它介于传统应用开发与快速演进的 Agent 框架之间。这使其对企业团队很实用，但也意味着开发者需要持续关注微软不断演进的 Agent 路线图。

虽然框架提供了有用的抽象，但它并不能消除生产级 AI 的难点。团队仍然需要评估数据集、提示词版本控制、可观测性、频率限制处理、成本监控、安全过滤以及清晰的工具执行策略。

实际结论是，Semantic Kernel 作为与微软生态对齐的 AI 应用中间件层表现最为出色。它不适合作为代码编辑器或自主编码工具，但对于需要调用代码、检索上下文并在现有系统中运行的 AI 功能开发，它具有极高的参考价值。

## 功能

### Agent 与函数编排

- 具备工具和插件访问能力的 AI Agent
- 自动函数调用
- 提示词函数与原生代码函数
- 通过微软最新的 Agent Framework 实现多智能体与工作流模式

### 语言与运行时支持

- C\# / .NET SDK
- Python SDK
- Java SDK
- 支持 Windows、macOS 和 Linux 开发环境

### 模型与连接器生态

- 支持 Azure OpenAI, OpenAI, Mistral, Google, Hugging Face, Azure AI Inference, Ollama, Anthropic (通过 Bedrock), Amazon Bedrock 以及 ONNX 的连接器
- Embedding 生成连接器
- 支持 Azure AI Search, MongoDB, Pinecone, Qdrant, Redis, SQLite 及 Weaviate 等向量库连接器
- 面向 OpenAPI 和 MCP 的扩展模式

### 企业级开发模式

- 遥测与可观测性钩子
- 用于安全、策略和负责任 AI 控制的过滤器
- 提示词模板与 YAML 提示词定义
- 与现有应用代码及 API 集成

## 价格

open-source

- Semantic Kernel OSS: Free — 采用 MIT 许可证的开源 SDK，可通过 GitHub、NuGet、PyPI 和 Java 包管理器获取。
- Bring Your Own Model/API: Usage-based — Semantic Kernel 本身免费，但模型调用、嵌入、向量库和云端基础设施按所选提供商的标准计费。
- Microsoft Agent Framework: Free — 作为微软新 Agent 项目的开源演进路径，提供商和基础设施成本在适用时另计。

价格核对日期: 2026-07-08

## 支持的模型

- Azure OpenAI
- OpenAI
- Mistral
- Google
- Hugging Face
- Azure AI Inference
- Ollama
- Anthropic
- Amazon Bedrock
- ONNX

## 隐私与数据处理

Semantic Kernel 是一个运行在开发者应用环境中的开源 SDK，因此数据处理取决于所选的模型提供商、嵌入服务、向量库、遥测配置及部署架构。使用 Azure OpenAI、OpenAI、Google、Mistral、Bedrock 或 Hugging Face 等托管服务时，在发送敏感提示词、文档或工具输出前应核查各提供商的数据处理条款。

## 企业功能

- 遥测支持
- 用于策略执行的过滤器和钩子
- 基于插件访问现有 API 和业务逻辑
- 基于 OpenAPI 的扩展模式
- 模型无关的提供商抽象
- 向量库连接器
- 提示词模板与 YAML 定义
- 微软官方文档及迁移指导
- 向 Microsoft Agent Framework 演进的路径
- 支持以 Azure 为中心的企业级部署模式

## 替代工具

- Microsoft Agent Framework
- LangChain
- LangGraph
- LlamaIndex
- Haystack
- AutoGen

## 资料来源

- [官方网站](https://learn.microsoft.com/en-us/semantic-kernel/)
- [Semantic Kernel 官方文档](https://learn.microsoft.com/en-us/semantic-kernel/)
- [Semantic Kernel 简介](https://learn.microsoft.com/en-us/semantic-kernel/overview/)
- [快速入门指南](https://learn.microsoft.com/en-us/semantic-kernel/get-started/quick-start-guide)
- [支持的语言与包管理](https://learn.microsoft.com/en-us/semantic-kernel/get-started/supported-languages)
- [聊天补全服务](https://learn.microsoft.com/en-us/semantic-kernel/concepts/ai-services/chat-completion/)
- [Embedding 生成服务](https://learn.microsoft.com/en-us/semantic-kernel/concepts/ai-services/embedding-generation/)
- [Semantic Kernel GitHub 仓库](https://github.com/microsoft/semantic-kernel)
- [Semantic Kernel MIT 许可证](https://github.com/microsoft/semantic-kernel/blob/main/LICENSE)
- [Semantic Kernel 与 Microsoft Agent Framework 说明](https://devblogs.microsoft.com/agent-framework/semantic-kernel-and-microsoft-agent-framework/)
- [Semantic Kernel 至 Agent Framework 迁移指南](https://learn.microsoft.com/en-us/agent-framework/migration-guide/from-semantic-kernel/)

最近核对日期: 2026-07-08

## 更新记录

- 2026-07-08: 基于 Microsoft Learn 文档、官方 GitHub 仓库、连接器文档、MIT 许可证信息以及 Microsoft Agent Framework 迁移指南创建目录条目。
