开发框架教程(7):Semantic Kernel —— 连接传统软件的大桥

这也是**微软**出品的框架,但定位和 AutoGen 完全不同。

5分钟
2025-12-26
框架开发SDK开发框架教程(7):Semantic

开发框架教程(7):Semantic Kernel —— 连接传统软件的大桥

1. 什么是 Semantic Kernel (SK)?

这也是微软出品的框架,但定位和 AutoGen 完全不同。

AutoGen 是研究型的、实验性的。 Semantic Kernel工程级的、为了集成进 .NET 和 Java 企业级应用而生的。

如果你们公司是微软技术栈(C#, Azure),或者你想把 AI 能力"极其优雅"地嵌入到现有的庞大业务系统里,SK 是不二之选。

核心设计哲学

它把 AI 的能力封装成了 Kernel (内核)

  • 就像操作系统的 Kernel 管理 CPU 和内存一样。
  • Semantic Kernel 管理 Models (模型)Plugins (插件)

Planner (规划器)

SK 也有 Agent 的概念,但它叫 Planner。 你可以直接告诉 Kernel:"帮我订个会议室并通知所有人"。 Planner 会自动去你的 Plugin 库里找:OutlookPlugin, RoomBookingPlugin,然后编排顺序执行。


2. 独特的概念:Semantic Function

在 SK 里,Prompt 居然被当成函数来写!

普通函数 (Native Function):

public int Add(int a, int b) { return a + b; }

语义函数 (Semantic Function):

sk_function_dir/GetStory/skprompt.txt

"请给我讲一个关于 {{$topic}} 的故事,风格要是 {{$style}} 的。"

在代码里调用它们时,完全没有任何区别! Kernel 会自动处理:如果是 Native 就跑 CPU,如果是 Semantic 就跑 LLM API。这种一致性让老派程序员感到如沐春风。


3. C# 代码示例

虽然 SK 也有 Python 版,但 C# 版才是它的灵魂。

using Microsoft.SemanticKernel;

// 1. 创建 Kernel
var builder = Kernel.CreateBuilder();
builder.AddOpenAIChatCompletion("gpt-3.5-turbo", "YOUR_KEY");
var kernel = builder.Build();

// 2. 导入插件
var timePlugin = kernel.ImportPluginFromType<TimePlugin>();

// 3. 定义语义函数 (Inline Prompt)
var prompt = @"
当前时间是: {{TimePlugin.Now}}
请根据时间问候用户。如果是早上就说早安。
";

var func = kernel.CreateFunctionFromPrompt(prompt);

// 4. 运行
var result = await kernel.InvokeAsync(func);
Console.WriteLine(result);

4. 总结

Semantic Kernel 是企业级后端开发(特别是 C#/.NET 开发者)的必修课。它不像 LangChain 那么野蛮生长,它非常规范、稳定,非常适合用来构建那个需要长期维护的大型 AI 应用。

AI导航助手

Powered by DeepSeek

你好!我是AI导航助手,由DeepSeek驱动。

我可以帮你: • 推荐适合你的AI模型 • 解答AI相关问题 • 直接带你跳转到相关页面

试试点击下方问题,或直接输入你的问题!

快捷提问:

哪个AI模型最好?有免费的AI吗?写代码用哪个?API怎么接入?

点击按钮可直接跳转到相关页面