🎨 AG-UI Protocol 详解

2026热门 前端交互 新协议

一句话理解:AG-UI Protocol 就是Agent和前端界面的"普通话"——以前每个Agent和UI都是各说各话,AG-UI定义了一套标准,让Agent能流畅地操作前端界面,就像人类点击、输入、滚动一样自然。

🌍 什么是 AG-UI Protocol?

世界上有一种隔阂,叫"我能干但UI不知道"——Agent后端能力很强,但前端界面是静态的,Agent想操作UI还得hack一堆DOM。就像一个顶级厨师被困在厨房外,明明能做出满汉全席,但连灶台都碰不到。

AG-UI(Agent-to-User Interface)Protocol 是一套定义AI Agent如何与前端用户界面交互的开放标准协议。它解决了Agent生态中一个长期被忽视的问题:Agent怎么和用户的界面通信?

这事儿在2026年变得特别重要,因为Agent从"后台工具"变成了"前台协作伙伴"——用户期望直接在界面上看到Agent的操作过程、中间状态和实时反馈。

🗺️ 2026年Agent协议全景图

2026年初的Agent协议生态就像2016年的JavaScript框架——6个协议来自4个组织,每个解决不同层的问题:

协议 全称 解决什么 发起方
MCP Model Context Protocol Agent ↔ 工具/数据源 Anthropic
A2A Agent-to-Agent Agent ↔ Agent Google
ACP Agent Communication Protocol Agent ↔ 代码执行环境 OpenClaw
AG-UI Agent-to-UI Agent ↔ 前端界面 CopilotKit
A2UI Agent-to-UI Infrastructure Agent的UI基础设施层 OpenClaw
AP2 Agent Protocol v2 Agent通用通信 AI Engineer Foundation

📐 AG-UI 核心概念

事件流架构(Event-Driven)

AG-UI 采用事件流(Event Stream)的方式实现Agent和UI的实时通信:

# AG-UI 事件流示例
# Agent向后端发送事件 → 前端实时渲染

# 1. Agent开始工作
{ type: "RUN_STARTED", agentId: "writer-001" }

# 2. 思考过程(Streaming)
{ type: "TEXT_MESSAGE_START", messageId: "msg-1" }
{ type: "TEXT_MESSAGE_CONTENT", delta: "正在分析" }
{ type: "TEXT_MESSAGE_CONTENT", delta: "市场数据..." }
{ type: "TEXT_MESSAGE_END", messageId: "msg-1" }

# 3. 工具调用
{ type: "TOOL_CALL_START", toolName: "web_search" }
{ type: "TOOL_CALL_ARGS", args: { query: "AI Agent trends 2026" } }
{ type: "TOOL_CALL_END", toolName: "web_search", result: "..." }

# 4. 工作完成
{ type: "RUN_FINISHED", agentId: "writer-001", status: "success" }

核心事件类型

🤖 OpenClaw 中的 AG-UI / A2UI 实战

OpenClaw 实现了自己的 A2UI(Agent-to-UI Infrastructure),功能类似 AG-UI,专门为OpenClaw生态优化:

1. Canvas:Agent的可视化输出

# OpenClaw Canvas - Agent通过Canvas向前端渲染内容

# Agent生成可视化内容
canvas(action="present", 
  url="https://miaoquai.com/glossary/ag-ui-protocol-explained.html",
  width=800, height=600)

# Agent执行JavaScript与页面交互
canvas(action="eval",
  javaScript="document.querySelectorAll('h2').forEach(h => h.style.color='#7c3aed')")

# Agent捕获页面快照
canvas(action="snapshot", format="png")

# Agent进行A2UI推送(OpenClaw特有的UI交互协议)
canvas(action="a2ui_push",
  jsonl='{ "type": "render", "component": "chart", "data": {...} }')

2. Sub-Agent 的实时流式输出

# OpenClaw sub-agent 支持流式输出到父session
# 这就是 AG-UI 中 "Event Stream" 的实现

sessions_spawn(
  task="搜索并分析AI市场数据,实时输出进展",
  mode="run",
  runtime="subagent",
  streamTo="parent"  # 关键!实时流式输出到父session
)

# 父session会实时看到:
# → [researcher] 开始搜索 AI Agent 市场数据...
# → [researcher] 使用 web_search 工具搜索...
# → [researcher] 找到12篇相关文章
# → [researcher] 正在分析第一篇文章...
# → [researcher] 分析完成,生成报告...

3. Browser 自动化:Agent操作UI

# OpenClaw Browser - Agent直接操作浏览器UI
# 这是 AG-UI 的另一种实现方式

# 打开页面
browser(action="open", 
  targetUrl="https://miaoquai.com")

# 获取页面快照(类似AG-UI的STATE_SNAPSHOT)
browser(action="snapshot", refs="aria")

# 执行操作(点击、输入、滚动)
browser(action="act", request={
  kind: "click",
  ref: "aria-搜索按钮"
})

browser(action="act", request={
  kind: "fill",
  ref: "aria-搜索框",
  text: "AI Agent"
})

# 截图查看结果
browser(action="screenshot")

4. Message 交互:Agent与用户对话

# OpenClaw Message - Agent主动与用户交互
# 类似 AG-UI 的 FEEDBACK_REQUEST

# 发送消息给用户
message(action="send",
  channel="oc_c942dfd09730eb94bf838c6519c115e9",
  message="📋 报告已生成,请审核:\n1. 市场趋势分析 ✓\n2. 竞品对比 ✓\n3. 策略建议 ✓")

# 回复特定消息(Thread)
message(action="thread-reply",
  messageId="msg-xxx",
  message="收到审核意见,正在修改...")

🔄 AG-UI vs A2UI vs 传统API

维度 传统REST API AG-UI Protocol OpenClaw A2UI
通信方式 请求-响应 事件流(SSE) 事件流 + Canvas
实时性 低(等完整响应) 高(流式推送) 高(流式 + 可视化)
状态管理 客户端自行管理 协议内建状态 Session内建状态
Agent操作UI 不支持 有限支持 完整Browser自动化
用户反馈 需要轮询 事件驱动 事件驱动 + Message

⚡ 为什么要关注 AG-UI?

🔗 相关术语

📚 延伸阅读