当前位置: 首页 > article >正文

用户智能体交互协议AG-UI(上)

三大Agent协议对比我们之前已经学习了MCP 和 A2A两个重要的协议了加上AG-UI它们共同组成了Agent的三大通信协议体系。不过它们的定位各有侧重并非非此即彼而是协同使用用形象的比喻来讲AG-UI 像是客服窗口用户与 Agent 之间的交互界面实时展示 Agent 的工作状态支持用户输入和反馈MCP 像是工具箱Agent 调用外部工具完成任务工具是被动的等待调用扩展 Agent 的能力边界A2A 像是同事协作多个 Agent 之间的任务分发每个 Agent 都是自主的可以互相委托和协作在实际企业场景中三大协议通常协同使用AG-UI用户通过界面与主 Agent 交互MCPAgent 内部使用 MCP 调用工具A2A复杂任务委托给专家 Agent 处理下图展示了三大协议的详细对比2 快速开始AG-UI对话应用AG-UI协议定义了清晰的架构组件包括 Server、Client 和 Agent。在MAF中提供了一个内置的AG-UI组件我们可以非常方便地创建集成AG-UI的Agent应用。接下来我们就一步一步完成一个AG-UI对话应用涉及到的Server 和 Client。AG-UI Server首先我们创建一个ASP.NET Web应用安装以下NuGet包Microsoft.Agents.AI.Hosting.AGUI.AspNetCore Microsoft.Agents.AI.OpenAI Microsoft.Extensions.AI.OpenAI然后就是整个示例的核心部分我们一块一块来说1创建应用并注册AG-UI服务// Step0. Create WebApplication builder var builder WebApplication.CreateBuilder(args); builder.Services.AddHttpClient().AddLogging(); // Step1. Register AG-UI services builder.Services.AddAGUI();2创建一个AI Agentvar app builder.Build(); // Step2. Load Configuration var config new ConfigurationBuilder() .AddJsonFile($appsettings.json, optional: false, reloadOnChange: true) .AddJsonFile($appsettings.{Environment.GetEnvironmentVariable(ASPNETCORE_ENVIRONMENT)}.json, optional: true, reloadOnChange: true) .Build(); var openAIProvider config.GetSection(OpenAI).GetOpenAIProvider(); // Step3. Create one ChatClient var chatClient new OpenAIClient( new ApiKeyCredential(openAIProvider.ApiKey), new OpenAIClientOptions { Endpoint new Uri(openAIProvider.Endpoint) }) .GetChatClient(openAIProvider.ModelId) .AsIChatClient(); // Step4. Create one AI Agent var agent chatClient.AsAIAgent( name: AGUI-Assistant, instructions: 你是一个友好的AI助手请使用中文回答用户的问题。); Console.WriteLine(✅ AI Agent 创建成功);3映射AGUI端点并启动应用// Step5. Mapping AG-UI Endpoints app.MapAGUI(/, agent); Console.WriteLine(━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━); Console.WriteLine( AG-UI Server 已启动); Console.WriteLine( 端点地址: https://localhost:8443/); Console.WriteLine( 使用 CtrlC 停止服务); Console.WriteLine(━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━); app.Run();可以看到我们仅用一行代码 app.MapAGUI() 就启用了AG-UI协议So Easy!启动起来的效果如下图所示AG-UI Client首先我们创建一个控制台应用安装以下NuGet包Microsoft.Agents.AI.AGUI Microsoft.Agents.AI然后我们创建AG-UI Client 和 AI Agent// Load Configuration var config new ConfigurationBuilder() .AddJsonFile($appsettings.json, optional: false, reloadOnChange: true) .Build(); var openAIProvider config.GetSection(OpenAI).GetOpenAIProvider(); var serverEndpoint config.GetValuestring(AGUI_SERVER_URL) ?? https://localhost:8443; Console.WriteLine(━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━); Console.WriteLine( AG-UI 客户端已启动); Console.WriteLine($ 服务端地址: {serverEndpoint}); Console.WriteLine(━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n); // Step1. Create HTTP Client using HttpClient httpClient new() { Timeout TimeSpan.FromSeconds(60) }; // Step2. Create AG-UI Client var chatClient new AGUIChatClient(httpClient, serverEndpoint); // Step3. Create AI Agent var agent chatClient.AsAIAgent( name: agui-client, description: AG-UI Client Agent);然后准备开始对话// Step4. Prepare for Conversation var session await agent.GetNewSessionAsync(); var messages new ListChatMessage() { new ChatMessage(ChatRole.System, 你是一个友好的AI助手使用中文回答用户的问题。) }; Console.WriteLine( 开始对话输入 :q 或 quit 退出\n); while (true) { Console.Write( 用户: ); string? message Console.ReadLine(); if (string.IsNullOrWhiteSpace(message)) continue; if (message is :q or quit) break; // 添加用户消息 messages.Add(new ChatMessage(ChatRole.User, message)); // 流式接收响应 Console.Write( 助手: ); await foreach (var update in agent.RunStreamingAsync(messages, session)) { foreach (AIContent content in update.Contents) { switch (content) { case TextContent textContent: Console.Write(textContent.Text); break; case UsageContent usageContent: Console.WriteLine($\n[ Tokens: {usageContent.Details.TotalTokenCount}]); break; default: Console.Write(Unknown content!); break; } } } Console.WriteLine(\n); } Console.WriteLine( 再见); Console.ReadKey();最终的调试效果如下图所示可以看到我们很容易就创建了一个用户友好的对话客户端实时的流式响应也不需要我们写过多代码实现。3 小结

相关文章:

用户智能体交互协议AG-UI(上)

三大Agent协议对比 我们之前已经学习了MCP 和 A2A两个重要的协议了,加上AG-UI,它们共同组成了Agent的三大通信协议体系。 不过,它们的定位各有侧重,并非非此即彼,而是协同使用,用形象的比喻来讲&#xff…...

2026跨境电商数据采集避坑指南:实测实在Agent如何终结“数字员工”的幻觉时代

【摘要】 2026年3月,跨境电商行业正式迈入“Agent驱动”的生产力新纪元。随着阿里巴巴Accio Work、腾讯云MAGIC Agent 2.0等工具的密集发布,传统基于脚本的爬虫正被具备自主决策能力的“数字员工”取代。然而,在实际业务落地中,通…...

免死金牌: OpenClaw + keepalived

文章目录背景解决方案查看IP检测脚本keepalived 配置演练故障openclaw-gateway.service背景 问题来自 小龙虾自杀, 当我让 OpenClaw 更新一些配置时, 它执行了一条 openclaw gateway stop 命令, 导致 OpenClaw 服务停止, 然后我就干瞪眼了, 还在傻等, 它甚至一句分别的话都没有…...

KiloClaw:为企业AI代理安全合规保驾护航

OpenClaw托管版KiloClaw:企业AI代理管理新方案由GitLab联合创始人Sid Sijbrandij和Scott Breitenother共同创立的Kilo,推出了面向企业的KiloClaw,它是OpenClaw平台的托管版本。该产品旨在为企业提供对员工使用AI代理执行代码库监控、邮件起草…...

告别API依赖!实测具备“看屏幕”能力的Agent,实在Agent如何重构企业自动化天花板?

在2026年这个被业界公认为“智能体元年”的当下,企业数字化转型已从简单的“系统上线”演进到“全量自动化”的深水区。然而,传统API接口的局限性与老旧系统的数据孤岛,始终是横亘在降本增效路上的大山。本文由「企服AI产品测评局」带来深度实…...

航美实木板:以匠心守健康,用实力赢信赖——一位经销商的真情告白

“一张好的板材,守护的不是一个人,而是一个家庭的健康与幸福。”说这句话的汪总,是实木行业的“老炮儿”,深耕实木定制多年的他,对木材“热胀冷缩必变形开裂”的特性深信不疑。直到刷到航美实木板的宣传视频&#xff0…...

An-Labeler:AudioLabellerV3 AI 辅助标注工具详解(自研Qt + FFT/模型自动标注)

An-Labeler V3:AudioLabeller AI 辅助标注工具详解(自研Qt + FFT/模型自动标注) Author: Code-keys (qq_37445230) Version: V3 (2026-03) 系列文章: An-Labeler:AudioLabeller 高效音视频标注工具 [AAn-Labeler:AudioLabellerV3 AI 辅助标注工具详解] 一、V3 版本更新概…...

多车环境下车载毫米波雷达是否会相互干扰?

在汽车工业迈向智能化与自动化的进程中,毫米波雷达已然成为了车辆感知体系中不可或缺的一部分。这种波长介于1毫米至10毫米之间的电磁波进行探测的装置,凭借其能够穿透雨雪、浓雾及强光直射的全天候工作能力,为高级驾驶辅助系统提供了关键的距…...

2.4.快速排序——先分区再递归,为什么它平均这么快却可能退化?

2.4.快速排序——先分区再递归,为什么它平均这么快却可能退化? 系列:搜索与排序 | 第 4 篇,共 16 篇 难度:⭐⭐⭐☆☆ 中等 标签:排序 快速排序 分治 随机化 三路快排 上一篇:2.3.插入排序——像…...

自注意力:句子里的词互相“看“对方——信息交流的艺术

自注意力:句子里的词互相"看"对方——信息交流的艺术(Version B) 📚 《从零到一造大脑:AI架构入门之旅》专栏 专栏定位:面向中学生、大学生和 AI 初学者的科普专栏,用大白话和生活化比喻带你从零理解人工智能 本系列共 42 篇,分为八大模块: 📖 模块一【A…...

注意力机制:AI 也会“走神“和“专注“——信息选择的智慧

注意力机制:AI 也会"走神"和"专注"——信息选择的智慧(Version B) 📚 《从零到一造大脑:AI架构入门之旅》专栏 专栏定位:面向中学生、大学生和 AI 初学者的科普专栏,用大白话和生活化比喻带你从零理解人工智能 本系列共 42 篇,分为八大模块: 📖…...

【ABAP】客转供 客户转供应商 cl_md_bp_maintain=>maintain 创建供应商

报错:未分配客户/供应商,您无法传输客户/供应商数据 这是因为如果创建的时候是作为客户的, 后面想要创建为供应商,所以调用的供应商创建/修改接口。 但是这时候,LFA1里面是没有供应商编号的,只有BUT000里面…...

破解厂区防控难题:远程控制联网报警器的技术优势与应用实践

一、厂区安全防控的时代挑战与技术革新在工业生产规模化、厂区安全管理标准化的发展趋势下,厂区安全防控已成为企业生产运营的核心工作。我国正处于厂区安防从 "人工巡检为主" 向 "技防联动" 转型的关键阶段,据行业数据显示&#xf…...

终极指南:如何免费解锁Cursor Pro功能,彻底解决API限制问题

终极指南:如何免费解锁Cursor Pro功能,彻底解决API限制问题 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve …...

30美元实现AI视觉革命:OpenGlass开源智能眼镜的平民化方案

30美元实现AI视觉革命:OpenGlass开源智能眼镜的平民化方案 【免费下载链接】OpenGlass Turn any glasses into AI-powered smart glasses 项目地址: https://gitcode.com/GitHub_Trending/op/OpenGlass 当商业智能眼镜以数千元价格将普通用户拒之门外时&…...

本科论文AI率高不高影响答辩?这个问题要搞清楚

很多同学AI率超标之后第一个问题就是:这会不会影响我参加答辩? 这个问题的答案取决于你的学校是怎么规定的,也和你超标的程度有关。我来帮你分析清楚。 各高校对AI率的处理方式 目前各高校的处理方式大致分三类: 第一类&#…...

2026年Magento独立站中国商家收单支付平台综合评估

2026年,全球收单市场持续分化。监管门槛抬升使支付牌照成为稀缺资源,资金周转效率从“加分项”变为“必选项”。对于使用Magento搭建独立站的中国商家,收单平台的选择已从单一的费率比较,升级为对合规深度、资金效率、本地化能力的…...

C++ 动态内存管理深度解析:new/delete 完全指南

引言在 C 语言中,我们使用 malloc()、calloc()、realloc() 和 free() 来管理动态内存。而 C 引入了全新的动态内存管理方式——new 和 delete。这不仅带来了语法上的简化,更重要的是引入了类型安全和初始化的概念。在学习过程中,我对 new 的理…...

文书妙笔专为公文写作打造,让写材料效率翻倍

不同于市面上通用型写作工具,文书妙笔每一项功能都为公文写作量身定制,真正实现“写材料效率翻倍”。作为专为公文写作打造的平台,平台内置40W优质公文范文库,每日持续更新,更整合了最新政策表述、基层工作案例和规范金…...

Oracle数据库进程体系结构概述

Oracle数据库进程体系结构概述 Oracle属于多进程体系架构,它由多个后台进程组成,每个后台进程完成特定的维护任务,进程之间互相协助,最终共同完成数据库所需的维护任务。 本文讲述的内容: 1、进程类型 2、Oracle两种服…...

苍穹外卖day10(黑马程序员)

苍穹外卖 day10 笔记 WebSocket 什么是 WebSocket WebSocket 是一种全双工的网络通信方式:客户端和服务器建立连接之后,双方都可以随时主动给对方发消息,不必像传统网页那样「每次都要重新发起一次请求」。 可以把它理解成: HTTP&…...

2026经管大洗牌!只会记账/理论已死,再不考这10个证,迟早被AI取代!

2026经管行业变革与核心证书指南随着AI技术的快速发展,传统经管岗位面临巨大挑战。单纯掌握记账或理论知识的从业者可能面临淘汰风险。以下为未来五年内最具价值的10项认证,帮助从业者保持竞争力。CDA数据分析师证书的核心优势CDA数据分析师证书由国际数…...

WaveTools:解决鸣潮玩家性能优化与数据管理痛点的开源工具

WaveTools:解决鸣潮玩家性能优化与数据管理痛点的开源工具 【免费下载链接】WaveTools 🧰鸣潮工具箱 项目地址: https://gitcode.com/gh_mirrors/wa/WaveTools WaveTools是一款专为《鸣潮》PC玩家设计的开源辅助工具,集成性能优化、账…...

Linux内核设计哲学:你我承载力的艺术(续)

第七部:设备驱动——与不完美的世界和解7.1 你不是主人,你是仆人设备驱动是内核中最“卑微”的组件。它不和用户直接打交道,不参与核心决策,甚至不拥有任何资源。它只是硬件的翻译官——把内核的标准请求翻译成硬件能懂的指令&…...

Thorium浏览器:为什么这个基于Chromium的优化版本能解决你90%的性能痛点?

Thorium浏览器:为什么这个基于Chromium的优化版本能解决你90%的性能痛点? 【免费下载链接】thorium Chromium fork named after radioactive element No. 90. Source code and Linux releases. Windows/MacOS/ARM builds served in different repos, lin…...

5个维度教你掌握游戏自动化与效率工具开发

5个维度教你掌握游戏自动化与效率工具开发 【免费下载链接】JX3Toy 一个自动化测试DPS的小工具 项目地址: https://gitcode.com/GitHub_Trending/jx/JX3Toy 在游戏开发与玩家体验优化领域,游戏脚本开发正成为提升效率的关键技术。本文将系统介绍一款开源项目…...

水箱水位监测控制电路 Multisim 仿真探索

Multisim仿真文件 水箱水位监测控制电路报告 包含:说明书,Multisim10电路源文件,仿真电路等 仿真效果: 1.在水箱内的不同高度安装3根金属棒,以感知水位变化情况, 液位分1,2,3档&…...

山西口碑好的实体店获客公司哪家可靠

在山西,实体店主们都在为如何有效获客而烦恼。随着市场竞争的加剧,选择一家可靠的获客公司至关重要。今天,我们就来探讨一下山西口碑好的实体店获客公司,重点介绍中谷云(厦门)大数据科技有限公司&#xff0…...

覆盖更远、组网更稳:基于 EFR32BG21 的智能家居与物联网 BLE Mesh 无线模块方案

智能家居与物联网设备越来越多,但真正决定体验上限的往往不是“有没有连上网”,而是信号能不能到、掉线后能不能自愈、多设备同时在线是否还稳定。单靠点对点蓝牙,很容易在隔墙、远距离、多节点场景里碰到瓶颈;而把低功耗蓝牙与 M…...

5分钟掌握ImStudio:免费高效的实时GUI布局设计终极方案

5分钟掌握ImStudio:免费高效的实时GUI布局设计终极方案 【免费下载链接】ImStudio Real-time GUI layout designer for Dear ImGui 项目地址: https://gitcode.com/gh_mirrors/im/ImStudio 你是否曾经为调试用户界面而反复编译代码?是否厌倦了在代…...