用 Semantic Kernel 在 .NET 中构建你的第一个 AI 智能体(Agent)

告别传统开发!用 Semantic Kernel 在 .NET 中构建你的第一个 AI 智能体(Agent)

关键词:Semantic Kernel、.NET、AI Agent、大模型、智能体、C#

在传统的软件开发中,我们习惯于"写死逻辑"------if/else、状态机、规则引擎,程序只能按照我们预设的路径执行。但在大模型时代,AI 智能体(AI Agent) 正在颠覆这一范式:程序不再是被动执行指令,而是能够理解目标、规划步骤、调用工具、自主完成任务。

微软推出的 Semantic Kernel(SK),正是为 .NET 开发者量身打造的 AI 编排 SDK。它让你可以用熟悉的 C#,快速构建具备"思考能力"的 AI 智能体。

本文将手把手带你,在 .NET 中构建你的第一个 AI Agent。


一、什么是 Semantic Kernel?

Semantic Kernel ​ 是一个轻量级、开源的 AI 编排框架,由微软推出,支持 .NET、Python 和 Java。

它的核心能力是:

将大语言模型(LLM)与你的业务代码、插件、记忆和外部工具无缝连接。

你可以把 Semantic Kernel 理解为:

AI 的"操作系统" + 中间件

它帮你解决以下问题:

  • 如何与 OpenAI / Azure OpenAI 高效通信
  • 如何让 AI 调用你现有的 C# 方法
  • 如何让 AI 记住上下文(Memory)
  • 如何让 AI 自动规划多步任务(Planner / Agent)

二、AI Agent 到底是什么?

一个真正的 AI Agent​ 通常具备以下能力:

能力 说明
目标理解 理解用户的自然语言意图
规划 将复杂任务拆解为可执行的步骤
工具调用 调用 API、数据库、本地方法
记忆 记住历史对话或业务上下文
反思 根据执行结果调整策略

在 Semantic Kernel 中,Agent 本质上就是:

Kernel + 插件(Plugins) + 提示词(Prompts) + 模型


三、准备工作

1. 环境要求

  • .NET 8 SDK
  • 一个 IDE(Visual Studio 2022 / Rider / VS Code)
  • 一个 LLM 服务(推荐 Azure OpenAI 或 OpenAI)

2. 创建项目

复制代码
dotnet new console -n MyFirstAgent
cd MyFirstAgent

3. 安装 NuGet 包

复制代码
dotnet add package Microsoft.SemanticKernel

如果你使用 Azure OpenAI,也可以安装:

复制代码
dotnet add package Microsoft.SemanticKernel.Connectors.AzureOpenAI

四、创建你的第一个 Kernel

Kernel 是 Semantic Kernel 的核心容器。

复制代码
using Microsoft.SemanticKernel;

var builder = Kernel.CreateBuilder();

// 使用 OpenAI
builder.AddOpenAIChatCompletion(
    modelId: "gpt-4o",
    apiKey: "你的OpenAIKey"
);

// 如果使用 Azure OpenAI
// builder.AddAzureOpenAIChatCompletion(
//     deploymentName: "gpt-4o",
//     endpoint: "https://xxx.openai.azure.com/",
//     apiKey: "你的AzureKey"
// );

var kernel = builder.Build();

✅ 到这里,你的 AI 内核已经准备好了。


五、让 AI 调用你的代码(Plugin)

Agent 的强大之处在于:它不只是聊天,而是能干活。

1. 定义一个插件(Plugin)

在 SK 中,插件就是一个普通的 C# 类。

复制代码
public class WeatherPlugin
{
    [KernelFunction]
    [Description("获取指定城市的当前天气")]
    public string GetWeather(
        [Description("城市名称,如 北京")] string city)
    {
        // 这里可以调用真实天气 API
        return $"{city} 的天气是:晴,25℃";
    }
}

2. 注册插件到 Kernel

复制代码
kernel.Plugins.AddFromType<WeatherPlugin>();

六、构建你的第一个 AI Agent

1. 创建 Agent 的"系统提示词"

提示词决定了 Agent 的性格和能力。

复制代码
var systemPrompt = """
你是一个智能助手,可以帮助用户查询天气。
当用户询问天气时,你必须调用 WeatherPlugin 获取真实天气数据。
不要编造天气信息。
""";

2. 创建 Chat Completion Service

复制代码
var chatService = kernel.GetRequiredService<IChatCompletionService>();

var history = new ChatHistory();
history.AddSystemMessage(systemPrompt);

3. 启动对话循环

复制代码
while (true)
{
    Console.Write("用户 > ");
    var input = Console.ReadLine();
    if (string.IsNullOrWhiteSpace(input)) break;

    history.AddUserMessage(input);

    // 让 AI 自动决定是否调用插件
    var result = await kernel.InvokePromptAsync(
        input,
        new KernelArguments
        {
            { "history", history }
        }
    );

    Console.WriteLine($"Agent > {result}");
}

🎉 恭喜!你已经构建了一个可以调用工具的 AI Agent!

当你问:

"北京天气怎么样?"

Agent 会自动调用 WeatherPlugin,而不是瞎编答案。


七、让 Agent 更"聪明":自动函数调用(Auto Function Calling)

在 Semantic Kernel 中,你可以开启 自动函数调用,让模型自己决定何时调用插件。

复制代码
var settings = new OpenAIPromptExecutionSettings
{
    ToolCallBehavior = ToolCallBehavior.AutoInvokeKernelFunctions
};

var result = await chatService.GetChatMessageContentAsync(
    history,
    settings,
    kernel
);

✅ 这意味着:

你不需要手动判断 AI 是否需要调用工具,模型自己会决定。


八、进阶:给 Agent 加上"记忆"

Agent 如果只是"金鱼记忆",体验会非常差。

Semantic Kernel 提供了 Memory​ 能力(基于向量数据库):

  • 记住用户偏好
  • 记住历史对话
  • 检索知识库

示例思路:

复制代码
builder.AddAzureAISearchTextEmbeddingGeneration();
kernel.AddMemoryStore(new VolatileMemoryStore());

结合 ISemanticTextMemory,你的 Agent 就能做到:

"上次你说过喜欢晴天,我帮你留意了。"


九、为什么选择 Semantic Kernel?

对比项 Semantic Kernel LangChain
语言 原生 C# Python 为主
生态 深度集成 .NET 通用
性能 高 中等
企业支持 微软官方 社区为主
学习曲线 对 .NET 开发者友好 较陡

对于 .NET 技术栈的企业和开发者,Semantic Kernel 是目前构建 AI Agent 的最佳选择。


十、总结

通过本文,你已经学会了:

✅ 什么是 Semantic Kernel

✅ 什么是 AI Agent

✅ 如何在 .NET 中创建 Kernel

✅ 如何编写 Plugin 让 AI 调用你的代码

✅ 如何构建并运行一个真正的 AI Agent

**传统开发正在被重构。**​

未来的应用,不再是"人适应软件",而是"软件理解人"。

而 Semantic Kernel,就是你通往 AI 原生应用的第一张门票。

相关推荐
智圣新创016 分钟前
教育数据要素流通刚需下 智圣新创高校数据中台解决方案的全域建设落地框架
大数据·人工智能·物联网
xianghongtao011610 分钟前
如何选择一台适合你的本地 AI 硬件设备?Lucy AI Studio——从本地 AI 办公到家庭影音的完整指南
人工智能·端脑科技·本地ai硬件设备·kickstarter众筹项目·lucy ai studio·lucy aios
ZhangJun9517 分钟前
Mobike 共享单车分析项目
人工智能·python·算法·kmeans·聚类·knn
互联网资讯20 分钟前
本地创业者入局 AI 短剧,本地化部署怎么选更省钱
大数据·人工智能
唐维康22 分钟前
昆工计算机408考研2027招285人,比去年少6人
人工智能·考研·昆明理工大学
Martina_032125 分钟前
AI生成的过山车轨道导入后频繁脱轨?用5步检查样条、轨距与碰撞
图像处理·人工智能·游戏·3d·材质·游戏策划·关卡设计
小猴子爱上树29 分钟前
跨马翻译:批量图片翻译+视频字幕+智能抠图,跨境电商在线图片翻译工具
大数据·人工智能·python·音视频
佳瑞Jarrett30 分钟前
从 0 到 1 手搓 AI 调解训练系统:双 NPC 实时语音 + AI 自动评分(FastAPI + Qwen-Audio Realtime 实战)
人工智能
W***259230 分钟前
2026 企业 AI 办公工具怎么选:选型框架与平台全景分析
大数据·人工智能
薛定e的猫咪33 分钟前
(AISTATS 2023)BaCaDI 逐章阅读
人工智能·深度学习·算法·机器学习