Semantic Kernel 全面中文介绍


📌 什么是 Semantic Kernel?

Semantic Kernel(语义内核) 是微软于 2023 年推出的开源 AI 编排框架

它的诞生解决了一个核心问题:

💡 如何让 AI 大模型真正融入企业现有的软件系统,而不仅仅是一个聊天窗口?

简单来说:

传统软件  +  大语言模型  =  Semantic Kernel 负责连接两者

🌟 为什么需要 Semantic Kernel?

没有 SK 之前的困境

开发者面临的问题:
├── LLM 只会"聊天",无法直接操作系统
├── AI 没有记忆,每次对话从零开始
├── 无法自动拆解复杂任务
├── 难以与数据库、API 等集成
└── 企业级安全和可靠性难以保障

有了 SK 之后

Semantic Kernel 提供:
├── ✅ 让 AI 调用真实代码和工具
├── ✅ 向量记忆,实现长期上下文
├── ✅ 自动规划,拆解复杂目标
├── ✅ 标准化连接各种外部服务
└── ✅ 企业级稳定性和安全性

🏛️ 核心架构

┌─────────────────────────────────────────────────┐
│                   你的应用程序                    │
└─────────────────────┬───────────────────────────┘
                      ↓
┌─────────────────────────────────────────────────┐
│              Semantic Kernel 核心                 │
│                                                  │
│   ┌─────────────┐        ┌─────────────────┐    │
│   │  AI 服务层   │        │    插件系统      │    │
│   │  ─────────  │        │  ─────────────  │    │
│   │  OpenAI     │        │  原生函数        │    │
│   │  Azure OAI  │        │  提示函数        │    │
│   │  Gemini     │        │  外部API插件     │    │
│   │  本地模型    │        │                 │    │
│   └─────────────┘        └─────────────────┘    │
│                                                  │
│   ┌─────────────┐        ┌─────────────────┐    │
│   │   规划器     │        │    记忆系统      │    │
│   │  ─────────  │        │  ─────────────  │    │
│   │  任务拆解    │        │  向量存储        │    │
│   │  步骤编排    │        │  语义检索        │    │
│   │  自动执行    │        │  知识库管理      │    │
│   └─────────────┘        └─────────────────┘    │
│                                                  │
└─────────────────────┬───────────────────────────┘
                      ↓
┌─────────────────────────────────────────────────┐
│              外部世界                             │
│  数据库  |  REST API  |  文件系统  |  企业系统    │
└─────────────────────────────────────────────────┘

🔑 五大核心组件

1️⃣ Kernel(内核)

框架的中枢大脑,所有组件的协调者。

from semantic_kernel import Kernel

# 创建内核实例
kernel = Kernel()
# 所有服务、插件都注册到这里

职责:

  • 管理 AI 模型连接

  • 注册和调用插件

  • 维护运行时上下文

  • 依赖注入容器


2️⃣ Plugin(插件系统)

插件是 SK 的能力扩展单元,赋予 AI 真实的行动能力。

两种插件类型:

① 提示函数(Prompt Function)

# 用自然语言定义功能
翻译函数 = kernel.add_function(
    plugin_name="语言插件",
    function_name="翻译",
    prompt="""
    将以下文字翻译成{{$目标语言}}:
    {{$输入文本}}
    """
)

② 原生函数(Native Function)

from semantic_kernel.functions import kernel_function

class 数据库插件:
    @kernel_function(description="查询用户信息")
    def 查询用户(self, 用户ID: str) -> str:
        # 真实的数据库查询逻辑
        return db.query(f"SELECT * FROM users WHERE id={用户ID}")

    @kernel_function(description="发送通知邮件")
    def 发送邮件(self, 收件人: str, 内容: str) -> str:
        email_service.send(收件人, 内容)
        return "邮件发送成功"

3️⃣ Memory(记忆系统)

解决 AI 没有长期记忆的问题,核心是向量嵌入技术

工作原理:

原始文本
   ↓ 向量化(Embedding)
[0.23, -0.87, 0.45, ...]  ← 高维向量
   ↓ 存入向量数据库
   
用户提问
   ↓ 同样向量化
计算相似度
   ↓
找出最相关的内容片段
   ↓
作为上下文喂给 LLM

代码示例:

# 存储知识
await memory.save_information(
    collection="产品文档",
    id="faq_001",
    text="退款政策:购买后7天内可无理由退款"
)

await memory.save_information(
    collection="产品文档", 
    id="faq_002",
    text="会员权益:黄金会员享受9折优惠"
)

# 语义检索(不需要精确关键词)
结果 = await memory.search(
    collection="产品文档",
    query="我买了东西想退货"  # 自动匹配退款政策
)
print(结果[0].text)
# 输出:退款政策:购买后7天内可无理由退款

支持的向量数据库:

数据库

特点

Azure AI Search

微软原生,企业级

Chroma

轻量,本地开发友好

Pinecone

云端,高性能

Qdrant

开源,功能丰富

Weaviate

开源,图数据支持

Redis

已有基础设施复用


4️⃣ Planner(规划器)

让 AI 具备自主完成复杂任务的能力。

工作流程:

用户说:"帮我整理本周销售数据,生成报告,发给销售总监"
                    ↓
              规划器分析目标
                    ↓
        自动生成执行计划:
        ┌────────────────────────┐
        │ 步骤1:查询本周销售数据  │
        │ 步骤2:数据清洗整理      │
        │ 步骤3:AI 生成分析报告   │
        │ 步骤4:查找销售总监邮箱  │
        │ 步骤5:发送邮件          │
        └────────────────────────┘
                    ↓
              自动依次执行
                    ↓
              任务完成,汇报结果

5️⃣ Agent(智能体)

最高级的抽象层,具备自主推理和决策能力。

from semantic_kernel.agents import ChatCompletionAgent

# 创建专业智能体
销售助手 = ChatCompletionAgent(
    kernel=kernel,
    name="销售助手小明",
    instructions="""
    你是一名专业的销售数据分析师。
    你可以:
    - 查询销售数据库
    - 生成数据可视化报告
    - 分析销售趋势
    - 提供业务建议
    遇到不确定的情况,主动向用户确认。
    """
)

# 多智能体协作
from semantic_kernel.agents import AgentGroupChat

团队 = AgentGroupChat(
    agents=[销售助手, 财务助手, HR助手],
    # 自动协调多个 Agent 协同完成任务
)

💻 完整实战示例

场景:构建智能客服系统

import asyncio
from semantic_kernel import Kernel
from semantic_kernel.connectors.ai.open_ai import OpenAIChatCompletion
from semantic_kernel.functions import kernel_function

# ==================== 第一步:初始化 ====================
kernel = Kernel()
kernel.add_service(
    OpenAIChatCompletion(
        service_id="gpt4",
        ai_model_id="gpt-4o",
        api_key="your-api-key"
    )
)

# ==================== 第二步:定义插件 ====================
class 客服插件:
    
    @kernel_function(description="查询订单状态")
    def 查询订单(self, 订单号: str) -> str:
        # 模拟数据库查询
        订单数据 = {
            "ORD001": "已发货,预计明天到达",
            "ORD002": "处理中,预计3天内发货",
        }
        return 订单数据.get(订单号, "订单号不存在")

    @kernel_function(description="申请退款")
    def 申请退款(self, 订单号: str, 原因: str) -> str:
        return f"退款申请已提交,订单{订单号}将在3-5个工作日内退款"

# 注册插件
kernel.add_plugin(客服插件(), plugin_name="客服工具")

# ==================== 第三步:添加知识库 ====================
知识库内容 = [
    ("policy_001", "退货政策:收到商品7天内可申请退货"),
    ("policy_002", "配送时间:普通快递3-5天,加急快递次日达"),
    ("policy_003", "客服时间:工作日9:00-18:00,节假日10:00-16:00"),
]

for doc_id, 内容 in 知识库内容:
    await kernel.memory.save_information(
        collection="客服知识库",
        id=doc_id,
        text=内容
    )

# ==================== 第四步:创建智能体 ====================
from semantic_kernel.agents import ChatCompletionAgent

客服机器人 = ChatCompletionAgent(
    kernel=kernel,
    name="客服小助手",
    instructions="""
    你是一名友善专业的客服助手。
    - 优先从知识库中搜索答案
    - 需要时调用工具查询订单或处理退款
    - 回答简洁清晰,态度友好
    - 无法解决的问题,引导转人工客服
    """
)

# ==================== 第五步:运行 ====================
async def 对话():
    print("客服小助手:您好!有什么可以帮助您的?")
    
    while True:
        用户输入 = input("用户:")
        if 用户输入 == "退出":
            break
            
        回复 = await 客服机器人.get_response(用户输入)
        print(f"客服小助手:{回复}")

asyncio.run(对话())

🎯 典型应用场景

企业 AI 应用
├── 🤖 智能客服
│   └── 自动回答问题 + 查询系统 + 处理业务
│
├── 📊 数据分析助手  
│   └── 自然语言查询数据库 + 生成报告
│
├── 📝 内容创作平台
│   └── 自动写作 + 多语言翻译 + SEO优化
│
├── 🏢 企业知识库
│   └── 文档检索 + 智能问答 + 知识管理
│
├── 🔄 业务流程自动化
│   └── 多步骤任务编排 + 系统集成
│
└── 👨‍💼 个人 Copilot
    └── 集成到 Office / Teams / 自有系统

📊 与其他框架横向对比

对比维度

Semantic Kernel

LangChain

AutoGen

LlamaIndex

开发商

微软

社区

微软研究院

社区

主要语言

C# / Python / Java

Python / JS

Python

Python

企业级支持

⭐⭐⭐⭐⭐

⭐⭐⭐

⭐⭐⭐

⭐⭐⭐

Azure 集成

✅ 原生

需配置

部分

需配置

RAG 能力

✅ 强

✅ 强

一般

⭐⭐⭐⭐⭐

多Agent

✅ 支持

✅ 支持

✅ 最强

有限

学习难度

中等

较难

中等

较易

生产稳定性

⭐⭐⭐⭐⭐

⭐⭐⭐

⭐⭐⭐

⭐⭐⭐⭐


🚀 快速上手路线图

第1周:基础入门
  ├── 安装 SDK:pip install semantic-kernel
  ├── 连接 OpenAI / Azure OpenAI
  ├── 编写第一个提示函数
  └── 理解 Kernel 基本用法

第2周:核心功能
  ├── 开发自定义插件
  ├── 搭建向量记忆系统
  ├── 实现 RAG 检索增强
  └── 使用规划器编排任务

第3周:进阶开发
  ├── 构建 Agent 智能体
  ├── 多 Agent 协作
  ├── 流式输出处理
  └── 错误处理和日志

第4周:生产部署
  ├── 性能优化
  ├── 安全配置
  ├── 与企业系统集成
  └── 监控和维护

📦 安装与配置

# 安装核心包
pip install semantic-kernel

# 安装向量数据库支持
pip install semantic-kernel[azure]    # Azure 生态
pip install semantic-kernel[chroma]   # Chroma 向量库
pip install semantic-kernel[qdrant]   # Qdrant 向量库
# 基础配置 (.env 文件)
OPENAI_API_KEY=你的密钥
OPENAI_CHAT_MODEL_ID=gpt-4o
AZURE_OPENAI_ENDPOINT=你的Azure端点
AZURE_OPENAI_API_KEY=你的Azure密钥

🔗 学习资源

资源

链接

📖 官方文档

learn.microsoft.com/semantic-kernel

💻 GitHub 源码

github.com/microsoft/semantic-kernel

🎓 官方教程 Notebook

SK GitHub /notebooks 目录

💬 社区讨论

Discord: aka.ms/SKDiscord

📺 视频教程

Microsoft Learn 视频课程


🎯 总结一句话:
Semantic Kernel 是微软打造的企业级 AI 编排框架,它让开发者能够轻松地将 AI 大模型的"智慧"与传统软件的"执行力"完美结合,构建真正有价值的智能应用。


你想进一步了解哪个方向?

  • 🔍 RAG 知识库实战搭建

  • 🤖 多智能体系统设计

  • 🏢 与企业现有系统集成

  • 📊 具体行业应用案例