用 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 原生应用的第一张门票。

相关推荐
Data-Miner2 小时前
面对 AI 大模型智能涌现,如何从技术层面保护好隐私与数据安全?
大数据·人工智能
hpoenixf2 小时前
当 AI 开始谈“买什么”,研究助手离投顾和交易还有多远?
人工智能
大模型真好玩2 小时前
如何让视频模型对你言听计从?结构化提示词助你生成电影级画面
人工智能·agent·deepseek
zhang133830890752 小时前
传统机械三杯式风速传感器易磨损冻堵?CG-88金属超声波风速风向传感器给出免运维方案
运维·服务器·网络·人工智能·自动化
特立独行的猫a2 小时前
会说确认叫车才下单-启元机器人官方滴滴打车技能源码详解
人工智能·机器人·技能·启元机器人
老金带你玩AI3 小时前
GPT-6.1 Terra上线:更便宜了,干活到底怎么样?
人工智能
会议咨询3 小时前
2027年电力电子、人工智能与大数据国际会议(PEABD 2027)
大数据·人工智能·电力电子
Jsundoku3 小时前
第五章 深度学习 -- 卷积神经网络
人工智能·深度学习·cnn
水如烟4 小时前
孤能子视角:SEP《人工智能的认识论》EIS读法·理解——理解幻觉与解压缩幻觉:同一缺口,两份报告
人工智能
冬奇Lab4 小时前
一天一个开源项目(第249篇):Hallmark —— 一个拒绝“AI 味”的设计 Skill,用 48 套材质主题和浏览器 Linter 约束编程助手
人工智能·开源·资讯