Skip to content

代理生态系统中的 A2UI

代理 UI 领域正在迅速发展,涌现出优秀的工具来解决技术栈的不同部分。A2UI 并不是这些框架的替代品——它是一个专门的协议,用于解决 可互操作的、跨平台的、生成式或基于模板的 UI 响应 这一特定问题。

概览

A2UI 的方法是将 JSON 作为消息发送到客户端,客户端随后使用渲染器将其转换为原生 UI 组件。LLM 可以即时生成组件布局,或者你可以使用模板。

这使得它像数据一样安全,像代码一样具有表现力。

本页的其余部分将帮助你了解 A2UI 与其他选项的关系。

探索代理 UI 生态系统

1. 构建“宿主”应用程序 UI

如果你正在构建一个全栈应用程序(用户与之交互的“宿主” UI),除了构建实际的 UI 之外,你还可以利用框架 (AG UI / CopilotKit, Vercel AI SDK, GenUI SDK for Flutter——其底层已经使用 A2UI) 来处理“管道”:状态同步、聊天记录和输入处理。

A2UI 的定位: A2UI 是互补的。如果你使用 AG UI 连接你的宿主应用程序,它可以使用 A2UI 作为数据格式来渲染来自宿主代理以及第三方或远程代理的响应。这让你两全其美:一个丰富的、有状态的宿主应用程序,可以安全地渲染来自它无法控制的外部代理的内容。

  • A2UI with A2A: 你可以通过 A2A 直接发送到客户端前端。
  • A2UI with AG UI: 你可以通过 AG UI 直接发送到客户端前端。
  • 使用 REST, SSE, WebSockets 和其他传输方式的 A2UI 是可行的,但目前尚不可用。

2. UI 作为“资源” (MCP 应用)

Model Context Protocol (MCP) 最近推出了 MCP Apps,这是一个新标准,整合了来自 MCP-UI 和 OpenAI 的出色工作,使服务器能够提供交互式界面。这种方法将 UI 视为工具可以返回的资源(通过 ui:// URI 访问),通常在沙盒 iframe 中渲染预构建的 HTML 内容,以确保隔离和安全性。

A2UI 有何不同: A2UI 采用“原生优先”的方法,这与 MCP Apps 的资源获取模型不同。A2UI 代理不检索要在沙盒中显示的不透明负载,而是发送原生组件的蓝图。这允许 UI 完美地继承宿主应用程序的样式和无障碍特性。在多代理系统中,编排代理可以轻松理解来自子代理的轻量级 A2UI 消息内容,从而实现代理之间更流畅的协作。

3. 特定于平台的生态系统 (OpenAI ChatKit)

ChatKit 这样的工具为专门在 OpenAI 生态系统中部署代理提供了高度集成、优化的体验。

A2UI 有何不同: A2UI 专为在 Web、Flutter 和原生移动端构建自己的代理界面的开发人员设计,或者是为需要跨信任边界进行通信的企业网格(如 A2A)设计的。A2UI 以牺牲代理的控制权为代价,赋予客户端更多的样式控制权,以实现与宿主客户端应用程序更大的视觉一致性。