- ZedIoT
-
-
-
面向开发者的实用指南,深入解析 AG-UI 的定义、背景和核心价值。
一、引言:AI 应用交互的最后一块拼图
在 AI 技术迅猛发展的今天,智能体(Agent)在后台执行任务已成为常态。然而,用户与这些智能体之间的互动仍缺乏统一的标准。AG-UI(Agent-User Interaction Protocol)应运而生,旨在填补这一空白,提供标准化的交互协议,提升用户体验。
二、AG-UI 是什么?为什么重要?
2.1 定义与定位
AG-UI 是由 CopilotKit 发布的开放、轻量、基于事件的协议,通过标准 HTTP 或可选的二进制通道,以流式方式传输 JSON 事件。它主要用于标准化 AI 智能体与前端应用程序的交互,确保实时同步和高效通信。

2.2 与其他协议的关系
AG-UI 与 MCP(Model Context Protocol)和 A2A(Agent-to-Agent)协议共同构建了完整的 AI 代理生态系统:
- MCP:解决智能体与工具之间的通信。
- A2A:规范智能体之间的协作。
- AG-UI:专注于用户与智能体之间的互动。
AG-UI 的出现,为用户与智能体之间的互动提供了标准,优化了用户体验。

三、AG-UI 的核心特性
3.1 事件驱动架构
AG-UI 采用事件驱动架构,定义了多种事件类型,包括:
- 生命周期事件:监控智能体的运行状态。
- 文本消息事件:支持流式传递文本内容。
- 工具调用事件:管理智能体在使用工具时的执行流程。
- 状态管理事件:采用“快照-增量”模式,确保状态同步。
3.2 兼容性与灵活性
AG-UI 兼容多种框架,如 LangGraph、CrewAI 等,支持多种传输方式(如 SSE、WebSocket),提供参考实现和默认连接器,便于开发者快速集成。

四、AG-UI 的事件协议设计与交互模型
AG-UI 的最大优势在于它的“通用性”:无论你使用 React、Vue 还是 Web Components,都可以通过标准 JSON 事件流驱动智能 UI 响应。
4.1 协议结构设计
AG-UI 采用如下三层设计:
--- title: "AG-UI 协议设计分层模型" --- graph TD UI[🧑 Frontend UI] Listener[📡 AG-UI Client] Protocol["📦 AG-UI Protocol (JSON/SSE/WebSocket)"] Agent[🤖 Agent Runtime / LangGraph] UI --> Listener Listener --> Protocol Protocol --> Agent
层说明:
- 前端 UI(UI):由开发者构建的界面组件(按钮、表单、富文本等)
- 事件监听层(Client):监听 AG-UI 事件并将其映射为 UI 行为
- 协议层(Protocol):事件规范,定义状态结构、推理流、错误等
- Agent 层:智能体执行模块,如 LangGraph、CopilotKit agent runtime
4.2 核心事件类型与示例
AG-UI 定义了一套小而强的事件类型集合,以 JSON 对象形式进行传输。以下为核心类型及结构说明:
类型 | 用途 | 示例 JSON 结构 |
---|---|---|
lifecycle | 通知任务开始、结束 | { "type": "lifecycle", "status": "started" } |
text-delta | 流式输出内容片段 | { "type": "text-delta", "value": "Hello" } |
tool-call | Agent 意图调用工具 | { "type": "tool-call", "tool": "weather", "input": "San Francisco" } |
tool-result | 工具调用返回结果 | { "type": "tool-result", "value": "22°C" } |
state-update | UI 状态同步(快照/差异) | { "type": "state-update", "snapshot": { "mode": "edit" } } |
示例:流式对话任务事件流
[
{ "type": "lifecycle", "status": "started" },
{ "type": "text-delta", "value": "Hello, I am your assistant." },
{ "type": "tool-call", "tool": "weather", "input": "Beijing" },
{ "type": "tool-result", "value": "Sunny, 25°C" },
{ "type": "state-update", "diff": { "card": "weather-info" } },
{ "type": "lifecycle", "status": "completed" }
]
📌 每条事件都是“可追踪的 UI 意图”,前端可以自由决定如何渲染它,比如:
- text-delta 渲染为 Markdown
- state-update 改变按钮状态或显示通知
- tool-call 显示“AI正在调用工具中”的加载动画
4.3 状态模型:快照 + 增量式同步
AG-UI 的 UI 状态机制参考了 React 的状态管理和 JSON patch 模型:
- 初始加载发送完整 snapshot
- 后续交互仅发送 diff,提升性能,支持前端微交互状态持久
例如:
{ "type": "state-update", "diff": { "inputDisabled": true } }
可在不刷新整个页面的情况下禁用按钮或显示局部错误提示。
五、AG-UI 的典型应用场景
AG-UI 的设计初衷是“让智能体与用户界面无缝对话”,目前已广泛应用于以下场景:
5.1 嵌入式 Copilot 应用
- AI 嵌入页面的助手(如 Notion AI、GitHub Copilot for Docs)
- AG-UI 事件驱动组件的更新、插入或状态变化,无需手动写业务 glue code
📌 示例:用户在 CRM 页面说“添加客户 A”,Agent 返回结构化数据 → AG-UI 自动触发表单填充
5.2 多轮协同智能体系统(Multi-Agent Copilot)
- AG-UI 与 Agent runtime(如 LangGraph)协同,管理上下文和 UI 状态
- 支持长任务生命周期、思考中状态提示、功能建议列表
📌 示例:法律分析 Copilot,用户上传合同 → Agent 分析 → 插入问题列表和摘要模块(均由 state-update 控制)
5.3 前端无感集成的 AI Copilot(Protocol-first)
- 在页面 UI 中完全不需要绑定“AI逻辑”,只需监听 AG-UI 流并映射到组件更新
- 类似 redux-observable 事件流,但 AI 驱动
📌 示例:复杂 Svelte + Tailwind UI 页面,完全通过 AG-UI 客户端适配器完成智能体驱动交互
六、与其他智能体协议的区别与协作
协议 | 作用 | 是否聚焦 UI |
---|---|---|
AG-UI | Agent ↔ UI 的事件协议 | ✅ 是 |
MCP (Model Context Protocol) | Agent ↔ 外部工具调用协议 | ❌ 仅处理执行上下文 |
A2A | 多个 Agent 之间通信 | ❌ 完全无 UI 接入点 |
📌 小结:
- MCP → 工具层
- A2A → Agent 协同层
- AG-UI → 用户交互层
三者可以共同构建完整的 Agent 架构:
--- title: "完整 Agent 协议生态:AG-UI + MCP + A2A" --- graph TD U[👤 用户] UI[🖥️ 用户界面] AGUI[AG-UI 协议] AgentA[Agent A] AgentB[Agent B] MCP["工具执行层 (MCP)"] TOOLS[🔧 External Tools] U --> UI UI --> AGUI AGUI --> AgentA AgentA --> AgentB AgentA --> MCP AgentB --> MCP MCP --> TOOLS
七、参考链接与官方资源
典型应用介绍