.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,也可以参考一下微软提供的这张图,

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

相关推荐
czhc11400756631 小时前
加在入口还是出口 —— 以及一个“看着像文件夹“的文件
c#
空堂与归1 小时前
GPT-6 智能界面上线,对话式 Agent 真没戏了?
人工智能·gpt·ai
波力海苔夹心脆6751 小时前
C# LINQ 入门到上手:一篇讲透查询语法、常用操作符与延迟执行(含示例与速查表
经验分享·c#·.net·solr·linq
百数平台12 小时前
百数AI文本知识库配置详解:本地文档上传与自定义录入、解析分段策略全说明
低代码·ai
百数平台13 小时前
百数AI对话流(Chatflow)开发指南:会话历史配置、角色面板、开场白预置问题与智能体挂载
低代码·ai
笨蛋©14 小时前
[实战] 扫描图纸转DXF:2026年制造业数字化图纸处理与GD&T识别实操指南
ai·数字化·cad·质量管理·制造业
全栈弄潮儿16 小时前
30 天总结:从“会用 AI”到“拥有 AI 开发系统”
aigc·openai·ai编程
俊哥V17 小时前
每日 AI 研究简报 · 2026-10-08
人工智能·ai
jason.zeng@150220718 小时前
(六)Prompt 优化
python·ai·langchain·prompt·ai编程·llama