2.3. semantic kernel核心组件
Semantic Kernel 提供了丰富的核心组件,这些组件既可独立使用,也可组合协作。本文将对各组件进行概述,并解释它们之间的关系。
1. Kernel(核心调度器)
Kernel 是 Semantic Kernel 的“大脑”,主要负责:
管理和协调 AI 服务连接器、插件函数、向量存储、内存等资源。
执行提示模板的渲染和调用。
处理过滤器(Filters)的调用。
可以将 Kernel 理解为运行时调度中心,所有 AI 任务最终都通过 Kernel 协调。
2. AI 服务连接器(AI Service Connectors)
AI 服务连接器为不同 AI 服务提供统一的抽象接口,支持:
聊天补全
文本生成
嵌入生成
文本转图像
图像转文本
文本转音频
音频转文本
默认情况下,Kernel 只会使用 Chat Completion 或 Text Generation。若需调用嵌入、向量搜索、图像生成等服务,需要手动注册并调用。
3. 向量存储连接器(Vector Store Connectors)
向量存储连接器通过通用接口暴露不同提供商的向量存储能力。Kernel 不会自动使用已注册的向量存储,但可通过插件将**向量搜索(Vector Search)**暴露给 Kernel,供 Prompt Templates 和 Chat Completion AI Model 使用。
4. Memory(记忆)
Memory 是 Semantic Kernel 的“记忆系统”,用于在任务和对话中保存信息,分为:
Volatile Memory(易失性记忆):会话或任务期间保存的上下文信息,程序结束后不持久化。
Semantic Memory(语义记忆):基于向量存储的长期记忆,常用于对话历史或 RAG 场景下知识库检索。
Memory 通常依赖 Vector Store Connectors 实现语义搜索,与向量存储紧密结合。
5. 函数和插件(Functions and Plugins)
插件(Plugins)是一组命名的功能模块,每个插件包含一个或多个可调用函数。注册到 Kernel 后,插件可被:
AI 直接调用:AI 在对话中自主选择并执行插件函数,如调用 API、查询数据库等。
模板渲染时调用:在提示模板中直接调用插件函数,增强 AI 生成能力。
插件常见形式:
本地代码(如 .NET、Python、Java)
OpenAPI 规范服务
ITextSearch 实现(RAG 场景)
提示模板(Prompt Templates)
6. Planner(规划器)
Planner 是“任务规划器”,可将自然语言请求分解为步骤,并自动调用函数或插件完成任务。常见类型:
ActionPlanner:将请求映射为单个函数调用。
StepwisePlanner:将复杂请求拆解为多步骤,逐步执行并生成后续计划。
Planner 让 AI 能自主选择和组合函数,简化开发流程,是实现多 Agent 协作和自动化任务的核心机制。
7. 提示模板(Prompt Templates)
提示模板由开发者或提示工程师创建,结合上下文、指令、用户输入和函数输出,帮助 AI 生成更精准回答。模板可包含:
AI 的思考或回答方式
用户输入占位符(如
{用户问题}
)插件或函数调用
使用方式:
作为 Chat Completion 的起点,先渲染模板,再调用 AI。
注册为插件函数,像普通函数一样被调用。
执行流程示意:
模板 A 注册为插件,模板 B 由用户输入并依赖 A。
渲染 B 时先渲染 A,A 的结果传递给 AI,B 得到 A 的数据后继续渲染,最终返回结果。
AI 也可在后台自动调用插件,用户无需感知。
优势:
让 AI 通过自然语言调用功能,无需编程。
AI 可单独思考每个功能,提高成功率。
8. 过滤器(Filters)
过滤器可在聊天补全流程中,在特定事件前后执行自定义操作,如:
函数调用前后
提示渲染前后
过滤器需注册到 Kernel。提示模板执行前会被转换为 KernelFunctions,因此函数过滤器和提示过滤器都会被调用。多个过滤器嵌套执行,函数过滤器为外层,提示过滤器为内层。
总结
Semantic Kernel 的核心组件协同工作:
Kernel:中枢大脑,负责调度和协调
AI 服务连接器 & 向量存储:提供底层能力
Memory:赋予系统记忆
Functions & Plugins、Prompt Templates:赋予 AI 技能和表达方式
Planner:实现自主任务规划
Filters:提供可插拔扩展点
通过这些组件协作,Semantic Kernel 支持从简单对话到复杂 AI 应用和多步骤工作流的构建。
Last updated