一、Semantic Kernel  Agent 生态中的定位

Semantic Kernel 是微软开源的 Agent 框架,旨在将大型语言模型集成到传统应用程序中。与 LangChain AutoGen 不同,Semantic Kernel 的设计理念是轻量级、可嵌入、企业就绪。它不是一个独立的 Agent 运行时,而是一个可以被嵌入到现有 .NET  Python 应用程序中的库。

Semantic Kernel 的核心组件包括 Kernel,核心执行引擎,管理模型连接、插件注册、服务配置。Plugins,插件是能力的单元,一个插件包含多个函数。Functions,函数可以是本地方法,也可以是 AI 提示词。Memory,记忆系统,支持向量存储和语义搜索。Planner,规划器,根据用户目标自动编排函数调用序列。

Semantic Kernel 在微软生态中占据重要位置。它与 Azure OpenAIMicrosoft 365Power Platform 深度集成,是微软 AI 战略的核心组件之一。

MCP  Semantic Kernel 的集成可以让 .NET 开发者利用整个 MCP 生态的 Skill,同时让 Semantic Kernel 的插件可以被其他 MCP Agent 调用。本章将探讨 Semantic Kernel  MCP 的深度集成,包括插件与 Skill 的映射、MCP 连接器的实现、与 Azure AI 服务的集成,以及实战案例。

二、Semantic Kernel 的插件机制

 Semantic Kernel 中,插件是能力的组织单元。一个插件可以包含多个函数,每个函数是一个独立的能力单元。

插件的定义方式

Semantic Kernel 支持两种定义插件的方式。第一种是本地函数,开发者创建一个类,类中的方法使用KernelFunction 特性标记。Semantic Kernel 自动扫描这些方法,生成函数元数据。第二种是提示词函数,开发者定义提示词模板,Semantic Kernel 将其封装为可调用的函数。

函数调用流程

用户请求发送给 Kernel 后,Kernel 使用 Planner 确定需要调用的函数序列。Kernel 执行函数,将结果返回给模型。模型继续推理,直到任务完成。

这种机制与 MCP 的调用模型高度一致。两者都是通过函数元数据让模型理解何时调用,框架负责执行。因此,将 MCP Skill 映射为 Semantic Kernel 插件函数是非常自然的。

三、适配器模式:将 MCP Skill 注册为 Kernel 函数

最简单的集成方式是开发一个适配器,将 MCP Skill 包装为 KernelFunction

适配器的工作原理

开发者创建一个 MCPFunction 类,继承 KernelFunction。在构造函数中,从 MCP Skill 规范中读取名称、描述、输入参数模式。在 InvokeAsync 方法中,接收 Kernel 传入的参数,构造 MCP Action,通过 MCP 客户端发送到 Peta 网关,等待响应,将 ActionResult 转换为字符串返回。

为了简化开发,可以创建一个 MCPPlugin 类,继承 KernelPluginMCPPlugin 在构造时连接到 Peta 网关,扫描可用的 Skill 列表。对于每个 Skill,自动创建对应的 KernelFunction 实例。开发者只需要将 MCPPlugin 添加到 Kernel 的插件集合中。

适配器的优势

适配器模式实现简单,MCP 生态中的现有 Skill 可以零修改被 Semantic Kernel 使用。.NET 开发者不需要理解MCP 协议的细节。适配器代码可以复用。

适配器的局限

适配器模式每次调用都需要通过适配器转换,有额外开销。流式调用、进度通知等高级功能难以实现。类型映射在 .NET  JSON 之间可能复杂。

四、原生集成:Semantic Kernel 直接支持 MCP Skill

更好的集成方式是让 Semantic Kernel 原生支持 MCP Skill。这意味着 Semantic Kernel 内部增加 MCP 连接器。

MCP 连接器

Semantic Kernel 增加一个 MCP 连接器,作为内置的插件提供者。连接器连接到 Peta 网关,从 Skill 注册表中读取可用的 Skill 列表。对于每个 Skill,连接器自动创建一个 KernelFunction 对象,使用 Skill 规范中的元数据填充函数的名称、描述、参数模式。

连接器支持增量刷新,当 Skill 列表发生变化时自动同步。开发者只需要在 Kernel 配置中启用 MCP 连接器,所有授权 Skill 自动可用。

MCP 调用执行器

 Kernel 决定调用一个 MCP Skill 时,执行器直接构造 MCP Action,通过 MCP 协议发送,处理响应。执行器支持同步调用、异步调用、流式调用。执行器将 MCP 的错误码映射为 Kernel 的异常类型。

五、与 Azure AI 服务的深度集成

Semantic Kernel  Azure AI 服务深度集成,包括 Azure OpenAIAzure Cognitive SearchAzure AI Content SafetyMCP 可以进一步扩展这些能力。

Azure OpenAI 作为模型后端

Semantic Kernel 可以使用 Azure OpenAI 作为模型后端。MCP Skill 可以被 Azure OpenAI 的模型调用。这为企业提供了合规的、托管的大模型服务。

Azure Cognitive Search 作为 Skill

Azure Cognitive Search 可以被封装为 MCP SkillAgent 可以调用搜索 Skill 检索企业知识库。搜索结果作为上下文供模型生成答案。Peta 的策略引擎可以控制哪些 Agent 可以访问哪些搜索索引。

Azure AI Content Safety 作为 Skill

Azure AI Content Safety 提供内容审核能力,可以被封装为 MCP SkillAgent 在调用任何内容生成 Skill 之前,可以先调用内容安全 Skill 审核输入输出。Peta 的策略可以强制要求高风险 Skill 必须经过内容安全审核。

六、与 Microsoft 365  Power Platform 集成

Semantic Kernel  Microsoft 365  Power Platform 深度集成。MCP 可以成为这些平台之间的桥梁。

Microsoft Graph Skill

Microsoft Graph 提供对 Microsoft 365 数据的访问,如邮件、日历、联系人、文件。Graph  API 可以被封装为 MCP SkillAgent 可以调用这些 Skill 读取和写入 Microsoft 365 数据。Peta 的策略确保只有授权的 Agent 才能访问敏感数据。

Power Automate 作为 Skill

Power Automate 是微软的低代码自动化平台。一个 Power Automate 流程可以被封装为 MCP SkillAgent 可以触发流程执行,传入参数,获取结果。这使得非技术用户也可以创建 Skill

Teams 集成

Agent 可以通过 MCP Skill  Microsoft Teams 交互。例如,发送消息到 Teams 频道、创建会议、读取聊天记录。这为企业内部 Agent 提供了自然的交互界面。

七、Peta  Semantic Kernel 的集成实践

Peta 提供了与 Semantic Kernel 集成的官方支持。

安装与配置

 .NET 项目中添加 Peta.SemanticKernel 包。在代码中配置 Peta 网关地址和认证凭证。创建 Kernel 时,添加MCP 连接器。

代码示例示意

开发者创建 Kernel 实例,添加 MCP 连接器作为插件提供者。配置中指定自动加载的 Skill 列表。调用kernel.InvokeAsync 时,Kernel 自动将 MCP Skill 作为可用函数提供给 Planner

插件导出

Semantic Kernel 的插件也可以被导出为 MCP Skill。开发者创建 Kernel 插件,使用 Peta 的导出工具生成 MCP Skill 规范。导出后的 Skill 可以被其他 MCP Agent 调用。

性能数据

 Peta 的内部测试中,.NET  MCP 客户端延迟极低,通常在亚毫秒级。原生集成比适配器模式的调用延迟降低约百分之二十五。

八、典型实战案例:企业内部 IT 助手

系统背景

一家大型企业使用 Microsoft 365 作为办公平台,希望构建一个内部 IT 助手 Agent,帮助员工解决常见 IT 问题。

Skill 配置

IT 助手 Agent 可调用的 Skill 包括通过 Microsoft Graph Skill 查询用户信息、重置密码、创建 Teams 团队。通过Power Automate Skill 触发审批流程、创建服务工单。通过 Azure Cognitive Search Skill 检索 IT 知识库。

对话流程

员工输入我忘记了密码Agent 调用 Azure Cognitive Search Skill 检索密码重置指南。Agent 将指南返回给员工。员工输入帮我重置Agent 调用 Microsoft Graph Skill 执行密码重置。密码重置操作需要审批,Peta 网关挂起请求,发送审批请求到 IT 管理员的 Peta Desk。管理员批准后,密码重置执行。Agent 将新密码发送给员工(通过安全通道)。

集成效果

MCP 作为统一协议连接了 Microsoft 365Power AutomateAzure Cognitive Search 等多个系统。IT 管理员可以在 Peta Console 中配置统一的策略,控制 Agent 对各个系统的访问。所有操作记录在审计日志中,满足合规要求。

九、小结

本章的核心结论可以总结为以下几点。

第一,Semantic Kernel 是微软生态中的 Agent 框架,与 .NET  Azure 深度集成。其插件机制与 MCP Skill 高度契合。

第二,适配器模式可以快速将 MCP Skill 包装为 KernelFunction,适合快速验证。

第三,原生集成让 Semantic Kernel 直接支持 MCP Skill,包括自动加载、同步异步调用、流式调用。

第四,MCP 可以与 Azure OpenAIAzure Cognitive SearchAzure AI Content Safety  Azure AI 服务深度集成。

第五,MCP 可以作为 Microsoft 365  Power Platform 之间、以及与第三方系统之间的桥梁。

第六,Peta 提供了 .NET SDK,支持 MCP 连接器、插件导出、与 Semantic Kernel 原生集成。

第七,实战案例显示,使用 Semantic Kernel  MCP 可以构建企业内部 IT 助手,统一治理多个后端系统的访问。

在下一章,我们将讨论 MCP 在数据领域的应用——将数据库、数据仓库封装为 Skill

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐