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

相关推荐
Allen_LVyingbo8 小时前
医疗人工智能项目全生命周期管理系统:监管知识建模、工程实现与实证评估(上)
网络·人工智能·机器学习·语言模型·自动化
YangYang9YangYan8 小时前
2026 校招审计风控岗位 JD 拆解,工具、专业能力与面试考点
java·大数据·人工智能·数据分析
明志数科13 小时前
具身智能数据工程观察:“数据筑基“时代的数据底座建设路径
人工智能·机器人
m0_6145235514 小时前
普通视频怎么做多场景一镜到底:路线设计、逐段衔接与整体验收
人工智能·音视频
海宇服务14 小时前
零信任架构实战:基于海宇对外投资历史查询服务构建自动化供应商准入网关
运维·人工智能·架构·自动化
东风破_14 小时前
别急着上 Agentic RAG:先用 LangGraph 把最小 RAG 跑明白
人工智能
LaughingZhu15 小时前
Product Hunt 每日热榜 | 2026-09-12
人工智能·深度学习·神经网络·搜索引擎·百度
天真小巫15 小时前
2026.9.13总结(工作量日益繁重的当下,AI如何提效)
人工智能
Zguigo15 小时前
【CUDA1】GPUvsCPU,CUDA Kernel
人工智能·pytorch·深度学习
thesky12345615 小时前
用 ONNX Runtime 把 PyTorch 模型变成跨平台极速推理引擎:导出、优化、量化完整实
人工智能·深度学习·模型部署