上海网站建设包括哪些公司网站建设手机端跟PC端
2026/1/12 0:35:27 网站建设 项目流程
上海网站建设包括哪些,公司网站建设手机端跟PC端,佛山做网站需要多少钱,网站开发 国际网站简介 Google开源的A2UI协议是一种声明式UI规范#xff0c;让AI Agent能通过JSON描述UI组件与交互#xff0c;而非直接生成代码。该协议解决了Agent UI面临的动态性、安全性、跨平台等挑战#xff0c;通过流式UI生成、数据绑定和事件机制#xff0c;实现Agent与前端的安全交…简介Google开源的A2UI协议是一种声明式UI规范让AI Agent能通过JSON描述UI组件与交互而非直接生成代码。该协议解决了Agent UI面临的动态性、安全性、跨平台等挑战通过流式UI生成、数据绑定和事件机制实现Agent与前端的安全交互。A2UI与AG-UI、CopilotKit等协议形成互补共同构建完整的Agent应用栈使AI能以更直观友好的方式呈现输出。从2024年底开始围绕 AI Agent智能体的一系列开放协议开始密集出现。它们的共同目标很明确为不断“生长”的 Agent 生态建立一套可通用、可协作的语言与标准。Google 最新开源的A2UIAgent to UI协议提出了一个新思路—让 AI Agent 学会“说 UI 的语言”。通过一种安全、声明式的格式将UI需求发送给前端应用用来渲染与交互。本文将深入解读这个新协议。特别是它与我们曾介绍过的AG-UI、CopilotKit是什么关系而与MCP、A2A等协议又是怎样的协作方式Agent UI面临怎样的挑战A2UI 协议Agent UI的“描述语言”实例解析A2UI如何工作A2UI 与 AG-UI、Copilot 的联系总结Agent协议组合栈及未来演进一、Agent UI面临怎样的挑战传统的 Agent 与用户交互主要依赖文本或语音尤其是在对话式 AI Agent 中更为常见。但正如我们之前强调的那样自然语言交互只是最简单的方式并不总是最高效的方式。在日常的个人助手场景中用聊天完成简单问答当然没有问题但一旦进入企业级场景单纯靠对话效率就会迅速下降。比如你想让 AI 帮你预订一家心仪的餐厅日期、时间、人数需要一轮一轮地来回确认。每增加一个约束条件就多一次对话往返整个过程既冗长又容易出错用户体验并不理想。在这种情况下更合理的方式是直接呈现一个交互式表单让用户选择日期、时间、人数点击提交即可完成预订。相比反复“聊天确认”一个清晰、聚焦的 UI 往往高效得多。【现有Agent UI的方法】目前大多数 Agent 应用的 UI仍然是由前端工程师使用 React、Vue、Flutter 等框架提前构建整体交互流程相对固定。也有一些探索性的方案。例如我们之前介绍过的CopilotKit具有“生成式 UI”的能力前端根据 Agent 返回的状态或数据动态生成并渲染相应的UI。比如将Agent调用的天气查询结果渲染成前端的卡片但这里的“生成式UI”其交互形态、组件结构仍然是在前端提前定义好的框架只是提供了更方便的机制如 hooks帮助在 UI 与后端 Agent 之间同步状态和数据。或者说UI 的主导权依然在前端Agent 并不“理解”或“描述”界面本身。【对话式 Agent UI 的独特挑战】相比传统应用 UI对话式 Agent 的界面其实有着特殊的需求动态性UI元素需要随着上下文即时生成或调整某种程度上应该由 AI 来“决定该出现什么”。安全性但你又不能直接执行 AI 输出的前端代码否则极易引入 XSS、代码注入等风险。AI应该“描述UI”而不是“构建UI”。跨平台同一个 Agent可能服务于Web/App/桌面等多种前端各UI 技术栈并不相同。能否做到“一次UI生成多端呈现”流式交互正如文本的流式输出能否让用户也能实时看到 UI 的生成和变化而不是长时间等待一次性“憋”出完整的UI状态同步UI的表单数据、进度状态、临时输入往往需要与后端 Agent 状态保持同步。能否根据状态变化局部更新UI【总结问题的本质】归根结底Agent UI 面临的是这样的挑战如何让 AI 以安全、可控、跨平台的方式驱动交互界面的生成与更新在 A2UI 协议出现之前这一领域还缺乏统一标准。OpenAI、Anthropic 等厂商都定义了各自生成 UI 的方式彼此之间并不兼容。显然这正是一个开放的Agent UI协议真正有价值的地方。这份完整版的大模型 AI 学习和面试资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】二、A2UI 协议Agent UI的“描述语言”现在让我们进入A2UI的世界A2UI目前还处于预览阶段稳定版0.8草稿版0.9在消息格式等方面会不断优化但核心思想会保持稳定。【A2UI 是什么】简而言之A2UIAgent-to-User Interface是一种声明式的生成式 UI 规范。它允许 AI Agent 使用 JSON 数据来描述UI布局与组件应该“长什么样、能做什么”。Agent 不再局限于输出字符串而是可以返回一份”UI 组件树的描述“。前端应用接收到描述后再使用本地已有的组件库将其渲染成真正可交互的界面。你可以把这个过程理解为AgentAI负责“描述 UI”前端负责“绘制 UI”。本质上就是给 Agent 配备一门“UI 语言”而前端负责把其翻译成你看到的交互界面。用下图表示A2UI协议的工作流程【核心设计思想】A2UI 背后有一组非常明确的设计原则使其特别适合由 LLM 生成、并在多平台上稳定运行。安全的声明式设计A2UI 定义的是纯数据格式而不是可执行代码。正如官方文档中所强调的“Running arbitrary code generated by an LLM may present security risk. A2UI is declarative data format, not executable code…”为此A2UI 引入了一个可信组件库catalog的概念所有可渲染的 UI 组件如 Button、Card、Text 等都需要事先在组件库中注册。Agent 只能“请求使用”这些白名单组件而无法注入任意脚本或超出范围的元素。所以A2UI 传递的并不是“如何操作 DOM”而是一张UI 蓝图它告诉前端应该使用哪些已核准的组件以及它们的属性和布局关系而具体怎么渲染、怎么执行始终由宿主前端应用掌控。LLM 友好 ”流式“UI生成A2UI 的协议结构在设计时明确考虑了LLM的生成特性UI的描述采用了扁平化的 JSON 列表结构在最新的0.9版进一步完善而不是深度嵌套的树形结构。它让 LLM 更容易进行逐步、流式的生成LLM可以先输出一个根组件的“占位描述”再在后续的输出中补充子组件或细节也可以只对 UI 的某一部分进行增量更新。最终效果就是UI 可以一边生成一边展示用户能够看到界面逐步成形而不是等待输出完整 JSON 后才开始渲染。跨框架、跨平台的可移植性A2UI 的另一个核心设计是彻底解耦界面结构与具体实现。Agent 发送的只是UI组件结构和必要的绑定数据不包含任何与 React、Flutter等具体框架绑定的细节。真正的组件映射和渲染完全由客户端负责。也就是同一份 A2UI JSON可以被不同平台的渲染器解释为各自原生的 UI 组件。比如同一个“A2UI 按钮”在 Web 环境中可能渲染为 HTML Button在 Flutter 中映射为 RaisedButton在 iOS 上则对应 SwiftUI 的 Button各端既能复用统一的 Agent 输出又能保持与宿主应用一致的原生体验而无需让 AI 关心任何平台差异。状态与数据绑定除了界面结构还需要一个机制把必要的数据绑定到组件上比如在一个列表组件上展示Agent检索到的多个餐厅名称。A2UI 因此引入了dataModel消息机制以支持UI组件与数据之间的绑定。一方面Agent 可以发送单独的数据更新消息类似”某个Button上要显示xxx文字“前端渲染器据此刷新UI避免每次重发整份 UI 描述。另一方面当用户点击按钮、填写表单触发交互时前端将事件以标准化消息的形式送回 AgentAgent 再根据这些事件触发流程、更新数据或UI。由此A2UI 在 Agent 与 UI 之间形成了一个完整、可控的交互闭环。三、实例解析A2UI如何工作为了更直观地理解 A2UI我们不妨通过一个完整的场景来走一遍工作流程。假设有一个 Agent负责帮用户查找与预订餐厅。当用户输入“帮我预订 2 人的餐厅桌位”时Agent 并不需要再通过多轮对话去反复确认日期、时间等细节而是可以直接通过 A2UI生成一个可交互的预订界面。这来自官方的一个A2UI的Demo先了解它的简单架构描述如下后端的Agent利用LLM动态生成结构化的A2UI JSON 消息包含界面结构和数据。消息通过A2A 流式协议SSE实时传输到Web 前端。前端接收并解析这些流数据安全地渲染出用户界面如预订表单。当用户在界面上进行操作如点击“确认预订”时前端会将交互转化为标准化的用户操作事件UserAction Event回传给 Agent。【场景设定】在这个场景中我们让Agent 向用户展示一个小型表单包括标题文字「预订餐厅桌位」日期与时间选择控件一个「确认预订」按钮【Agent 生成 A2UI 消息】在传统对话模式下Agent 只能回复类似「请问您想预订哪天几点」这样的文本。但在 A2UI 模式下Agent 会构造一系列结构化的 JSON 消息用来描述这个UI的组成并通过流式发送消息给前端。下面是发送的一个A2UI消息示例{ surfaceUpdate: { surfaceId: main, # 指定界面区域surface支持一个对话有多个界面区域 components: [ { id: root, component: { Column: { children: { explicitList: [ header, date_input, confirm_btn ] }, distribution: start, alignment: stretch } } }, { id: header, component: { Text: { text: { literalString: 预订餐厅桌位 }, usageHint: h1 } } }, { id: date_input, component: { DateTimeInput: { label: { literalString: 选择日期和时间 }, value: { path: /reservation/datetime }, enableDate: true, enableTime: true } } }, { id: confirm_btn, component: { Button: { child: confirm_text, action: { name: confirm_reservation }, primary: true } } }, { id: confirm_text, component: { Text: { text: { literalString: 确认预订 } } } } ] }}这条 surfaceUpdate 消息表示 Agent 希望创建或更新一块名为 main 的界面区域。其中包含了标题、日期时间选择器以及确认按钮等组件。几个关键点组件 ID每个组件都有一个唯一的 id如 header、date_input。后续如果 Agent 需要更新某个组件或引用其内容会依赖这个 ID。组件类型在 component 字段中通过对象键指定组件类型例如 Text、DateTimeInput、Button。有前端经验的读者对此应该并不陌生。数据绑定在 DateTimeInput 中value: {“path”: “/reservation/datetime”} 表示该控件绑定到数据模型中的某个字段。【绑定数据更新】Agent接着通过发送 dataModelUpdate 消息把数据绑定到UI组件{ dataModelUpdate: { surfaceId: main, contents: [ {key: reservation, valueMap: [ {key: datetime, valueString: 2025-12-18T19:00} ]} ] }}前端接收到这条消息后日期时间选择器会直接显示为「2025/12/18 19:00」。这种模式使界面与数据更新彻底分离避免了频繁重发整棵组件树。【开始渲染由 Agent 发出信号】Agent 可以流式发送多个 surfaceUpdate 消息但前端并不会立即渲染界面而是等待 Agent 明确发出”可以开始渲染“的信号消息{ beginRendering: { surfaceId: main, root: root, catalogId: https://my-company.com/a2ui/v0.8/my_custom_catalog.json }}这条消息的含义是UI 描述已经足够完整但不一定全部结束可以安全地进行首次渲染。由于 A2UI 采用的是 JSON Lines 格式每条消息独立成行前端可以边接收、边解析生成”流式的 UI “。【流式渲染与增量更新】假设前端是一个 Web 应用并集成了 A2UI 提供的渲染库例如基于 Lit 的 Web Components 渲染器。当前端收到 surfaceUpdate 和 beginRendering 后就会将这些UI描述映射为浏览器中的原生组件或自定义组件并生成对应的 DOM 结构。整个过程中并没有执行任何 AI 生成的、不受信任的代码。Agent 给出的只是“UI蓝图”而真正的组件实现来自开发者事先审核过的组件库或成熟的 UI 框架安全边界始终掌握在客户端。实际运行中渲染过程接受到的消息可能是这样不断推送的{surfaceUpdate: {surfaceId: main, components: [...]}} // Header {surfaceUpdate: {surfaceId: main, components: [...]}} // Body {beginRendering: {surfaceId: main, root: root-id}} // Initial render {surfaceUpdate: {surfaceId: main, components: [...]}} // Footer (after initial render) {dataModelUpdate: {surfaceId: main, contents: {...}}} // Populate dataUI可以先出现主体再逐步补充细节元素和数据用户无需等待一次性完成。【用户交互如何回传给Agent】当用户在UI上选择日期时间并点击「确认预订」按钮时前端会将这些操作转换为标准化的 userAction 消息发送给 Agent{ userAction: { name: confirm, surfaceId: main, context: { details: { datetime: 2025-12-16T19:00:00Z, } } }}Agent 收到该事件后便可以调用相应的业务工具完成预订。如果预订成功Agent 可以再次通过 A2UI 返回一个成功提示的UI描述如果需要补充信息也可以更新现有UI引导用户继续操作。可以看到A2UI 让 Agent 直接参与到了 UI 的构建过程中。它能够基于对话上下文即时“设计”出一个UI让用户用点击和填写来完成复杂操作。技术上A2UI 通过声明式 JSON、数据绑定以及事件机制优雅地解决了”AI 如何安全地驱动前端 UI“的问题也显著提升了应用的可扩展性与用户体验。四、A2UI 与 AG-UI、Copilot 的联系理解 A2UI容易联想到AG-UI和CopilotKit。它们并不是彼此替代的关系而是处在不同层级、分工清晰的一套组合。【AG-UI专注“交互通道”的协议】AG-UI 全称Agent–User Interaction Protocol。它关注的重点并不是 UI 本身而是Agent 与前端UI之间如何进行可靠、实时的交互。AG-UI 由 CopilotKit 团队发起并在 2025 年中正式推出目标是建立一条标准化的双向通信通道让 Agent 后端与前端 UI 能够持续交换消息、事件与上下文状态。从定位上看AG-UI 更像是“通信层协议”它规定前后端如何发送和接收事件如何保持上下文感知与同步如何支持流式更新与实时协同但它不限定 UI 的具体表达。只要是 JSON 事件流AG-UI 都可以承载。【A2UI 与 AG-UI内容与传输的分工】因为 AG-UI 不关心“你传的是什么”它可以承载各种生成式 UI 规范不管是A2UI还是OpenAI之前的Open-JSON-UI甚至是你自己定义的一套 UI 描述格式。所以A2UI 定义的是 UI 的结构、组件和数据绑定AG-UI 定义的是这些描述如何以事件流的方式在 Agent 与前端之间安全、实时地传输。两者并不竞争而是天然互补。【关于CopilotKit 框架】CopilotKit 是 AG-UI 协议的主要实现之一。它提供了一整套前后端集成方案帮助开发者将 AI Agent 快速嵌入现有前端应用而无需自己处理复杂的通信、状态同步和事件分发逻辑使开发者可以把注意力集中在两件事上一是 Agent 的业务逻辑二是前端组件和用户体验值得一提的是CopilotKit 团队本身也参与了 A2UI 规范的共建并且是 A2UI 的首批合作伙伴之一。因此在 CopilotKit 的最新版本中已经对 A2UI 提供了完整支持。在实际开发中使用 CopilotKit 时可以让后端 Agent 直接产出 A2UI JSON 描述再通过 AG-UI 管道传输到前端由 CopilotKit 提供的渲染器进行渲染。CopilotKit 还提供了一个非常实用的工具A2UI Composer。你可以访问https://a2ui-editor.copilotkit.ai/通过可视化方式创建 UI 组件Composer 会自动生成 A2UI 规范的 JSON。你可以将生成的 JSON 复制到 Agent 的提示词或输出中使用在前端CopilotKit 已经为 A2UI 消息准备好了渲染器。开发者只需通过简单的集成即可完成从协议到界面的整条链路。五、总结Agent协议组合栈及未来演进我们总结 A2UI、AG-UI、MCP、A2A 等协议在 Agent 应用中的定位与分工在真实的企业级 Agent 应用中这些协议往往是组合使用的。以一个智能客服系统为例它可能通过 MCP 访问客户数据库查询订单信息通过 A2A 协同外部数据分析 Agent再借助 AG-UI 保持前端 Copilot 应用与后端 Agent 之间的状态同步并由 A2UI 将复杂流程呈现为可交互的界面供用户操作和反馈。总之A2UI 让 Agent 不再只会“说话”而是开始学会“表达UI”。通过与 AG-UI、MCP、A2A 等协议的分层协作它补齐了 Agent 应用栈中的关键一环使 AI 的输出可以以更直观、更友好的交互形式呈现出来。当然目前 A2UI 仍处在早期阶段v0.8生态也在快速演进中。对于开发者而言理解并实践这些协议的组合将是构建下一代 AI 应用的关键。正如当年 Web 标准催生了创新浪潮在这些 Agent 协议的推动下AI 应用同样有望迎来新的爆发期。六、如何学习AI大模型我在一线互联网企业工作十余年里指导过不少同行后辈帮助很多人得到了学习和成长。我意识到有很多经验和知识值得分享给大家也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限很多互联网行业朋友无法获得正确的资料得到学习提升故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。这份完整版的大模型 AI 学习和面试资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】第一阶段从大模型系统设计入手讲解大模型的主要方法第二阶段在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用第三阶段大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统第四阶段大模型知识库应用开发以LangChain框架为例构建物流行业咨询智能问答系统第五阶段大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型第六阶段以SD多模态大模型为主搭建了文生图小程序案例第七阶段以大模型平台应用与开发为主通过星火大模型文心大模型等成熟大模型构建大模型行业应用。学会后的收获• 基于大模型全栈工程实现前端、后端、产品经理、设计、数据分析等通过这门课可获得不同能力• 能够利用大模型解决相关实际项目需求 大数据时代越来越多的企业和机构需要处理海量数据利用大模型技术可以更好地处理这些数据提高数据分析和决策的准确性。因此掌握大模型应用开发技能可以让程序员更好地应对实际项目需求• 基于大模型和企业数据AI应用开发实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能 学会Fine-tuning垂直训练大模型数据准备、数据蒸馏、大模型部署一站式掌握• 能够完成时下热门大模型垂直领域模型训练能力提高程序员的编码能力 大模型应用开发需要掌握机器学习算法、深度学习框架等技术这些技术的掌握可以提高程序员的编码能力和分析能力让程序员更加熟练地编写高质量的代码。1.AI大模型学习路线图2.100套AI大模型商业化落地方案3.100集大模型视频教程4.200本大模型PDF书籍5.LLM面试题合集6.AI产品经理资源合集获取方式有需要的小伙伴可以保存图片到wx扫描二v码免费领取【保证100%免费】

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询