.NET 11 - 尝试创建一下AGUIServer和AGUIClient(基于新版.NET SDK for AG-UI)

1. 简单介绍

AGUI是Agent--User Interaction Protocol的简写,这是一个开放的、轻量的、基于事件的协议,用于标准化 AI Agent 与 用户界面 的实时交互。

A2A - AI Agent 连接到AI Agent

MCP - AI Agent连接到外部工具

AGUI - AI Agent连接用户(through user-facing applications)

微软的Microsoft Agent Framework(简称MAF)也支持AGUI的。之前存在这两个nuget package,

复制代码
Microsoft.Agents.AI.Hosting.AGUI.AspNetCore
Microsoft.Agents.AI.AGUI

最近CopilotKit 和微软.NET team合作发布了一个.NET SDK for AG-UI ,这个是项目地址。Microsoft Agent Framework for .NET也基于这个SDK进行了调整。

这个.NET SDK for AG-UI拥有5个nuget package,如下图所示,

对于之前有使用到AGUI的.NET应用程序,总体变化不大,不过有一些API的名字有变化了,

这边将简单尝试创建一下AGUIServer和AGUIClient(基于.NET SDK for AG-UI)。

2. 创建AGUIServer

在Visual Studio Insiders中创建一个基于.NET 11的ASP.NET Core Web API项目,

  1. 添加Microsoft.Agents.AI.Hosting.AGUI.AspNetCore nuget package,如下图所示,

Microsoft.Agents.AI.Hosting.AGUI.AspNetCore nuget package的依赖项确实更新成了新版的AG-UI C# SDK了。

2)这边使用的AI大模型是DeepSeek,需要准备好DeepSeek的相关token和endpoint信息,将这些信息配置到appsettings.json文件中,

note, 之前还可以使用GitHub Models,不过GitHub Models已经在2026/7/30退役了。

  1. 编写AGUI Server代码如下,

    builder.Services.AddAGUIServer();
    var app = builder.Build();
    AIAgent agent = chatClientDI.AsAIAgent(
    name: "AGUIGeoAndHistoryAssist",
    instructions: "You are a professor major in Geography and history.");
    app.MapAGUIServer("/", agent);
    app.Run();

之前配置AGUIServer的用法是AddAGUI(), MapAGUI()。当前变成了AddAGUIServer(), MapAGUIServer()。

3. 创建AGUIClient

  1. 添加一个.NET11 Console项目。

  2. 在项目中添加AGUI.Client nuget package,

  1. 编写AGUIClient代码如下,

    using HttpClient httpClient = new() { BaseAddress = new Uri(serverUrl) };
    AGUIChatClient chatClient = new(new AGUIChatClientOptions(httpClient, "/"));

    AIAgent agent = chatClient.AsAIAgent();
    AgentSession session = await agent.CreateSessionAsync();

    List firstTurnUpdates = [];
    await foreach (AgentResponseUpdate update in agent.RunStreamingAsync("为什么东方各国没有发现澳洲大陆? 请非常简短地列出三个主要原因,谢谢!", session))
    {
    firstTurnUpdates.Add(update);
    foreach (TextContent text in update.Contents.OfType())
    {
    Console.Write(text.Text);
    }
    }

之前实例化AGUIChatClient方式是,

复制代码
AGUIChatClient chatClient = new(httpClient, serverUrl);

当前已经改成了,

复制代码
var chatClient = new AGUIChatClient(new(httpClient, serverUrl));

4. 运行一下

4.1 启动AGUIServer

使用dotnet run命令启动AGUIServer的WebApi项目,

4.2 启动AGUIClient

使用dotnet run命令启动AGUIClient的Console项目,AGUIClient会连接AGUIServer endpoint,DeepSeek大模型最后能够给出如下答复,

note, 用户向AGUIClient发送请求,AGUIClient将请求转给AGUIServer endpoint,endpoint继续交付给后面的AI Agent去执行。AI Agent从大模型得到的结果会以AGUI events over SSE的形式传给AGUIClient的。

5.总结

本文简单尝试了一下基于.NET SDK for AG-UI的AGUIServer和AGUIClient。创建的项目都是基于.NET11的。微软在2026年9月8号发布了.NET11 RC1,同时.NET Conf 2026大会将会在2026年11月份举办(11/10-11/13),到时NET11将会General available。关于AGUIServer和AGUIClient,也可以参考一下微软提供的这张图,

本文如果哪里有错误,麻烦告之,谢谢谢谢!

相关推荐
IDIOT___IDIOT42 分钟前
DSH 对话回收站(dsh-session-trash)
ai·dsh
玩AI的奶茶1 小时前
MiniMax H3 出 30 秒长片:显存账、拼接法和一次的成本
大数据·人工智能·ai·gpu算力·算力租赁
犀思云1 小时前
从SD-WAN到AI WAN:企业广域网能力演进与架构变化解读
ai·sd-wan·wan·企业广域网
华普微HOPERF2 小时前
Matter协议架构详解:数据模型与交互模型深度解析
microsoft·架构·交互
技灵AI2 小时前
MiniMax H3 能做哪些视频?商品广告、人物表演与运镜怎么选
人工智能·prompt·aigc·音视频
学以智用2 小时前
WinForms / WPF / Blazor 项目模板详解
.net
咸咸咸虾3 小时前
Microsoft Visual Studio 历史版本与官方安装包链接汇总
ide·microsoft·visual studio
犀思云3 小时前
AI WAN实践:分布式AI训练与推理如何通过智能广域网提升效率?
ai·wan·分布式ai训练·分布式ai推理·智能广域网
Maynor9963 小时前
ChatGPT Pro 额度档位怎么理解:5x / 20x / 50x 使用笔记
ai·chatgpt·教程
1-1=03 小时前
.NET Core 内存管理
.net·.netcore