2026 年,AI Agent 已经可以从容完成复杂的编码、推理和工具调用任务。但一个核心问题依然困扰着开发者:如何让用户自然地与这些 Agent 交互?
传统的方案是聊天界面——用户发送消息,Agent 回复。但这远远不够。真正的智能应用需要:
- 实时状态同步:用户能看到 Agent 正在思考什么
- 流式响应:文字和结果像打字机一样逐字显示
- 工具执行可视化:Agent 调用工具时,用户能看得见
- 双向交互:Agent 可以主动请求用户确认或补充信息
这就是 AG-UI(Agent-User Interaction)协议 要解决的问题。
一、为什么需要 AG-UI?
1.1 传统前端与 Agent 的鸿沟
在 AG-UI 出现之前,开发者需要自己解决 Agent 与前端之间的通信问题:
- 轮询(Polling):前端不断问 Agent"有没有新消息"——效率低,延迟高
- WebSocket 手动实现:实时通信没问题,但事件格式、数据结构、状态管理都要自己设计
- 各家方案不同:LangGraph 有一种做法,CrewAI 有另一种,Microsoft Agent Framework 又不一样
结果是:每个团队都在重复造轮子,而且造出来的轮子互相不兼容。
1.2 AG-UI 的诞生
AG-UI 由 CopilotKit 团队提出,是一个开放的事件驱动协议,旨在标准化 用户界面与 Agent 后端之间的双向通信。
它的核心思路是:把 Agent 的每一次"思考"、“输出”、“工具调用"都变成一个可订阅的事件,前端只需要监听这些事件,就能实时渲染用户界面。
二、AG-UI 的核心概念
2.1 事件驱动架构
AG-UI 本质上是一个基于事件的协议。Agent 的每一次动作——开始运行、输出文字、调用工具、思考推理——都会被封装成一个事件,推送给前端。
前端像订阅 RSS 一样订阅这些事件,实时更新界面。
2.2 五大事件类型
AG-UI 定义了约 16 种事件,分为五大类:
1. 生命周期事件(Lifecycle Events)
RUN_STARTED:Agent 开始运行RUN_FINISHED:Agent 运行结束RUN_ERROR:运行出错STEP_STARTED:某个步骤开始STEP_FINISHED:某个步骤结束
2. 文本消息事件(Text Message Events)
TEXT_MESSAGE_START:开始输出文本TEXT_MESSAGE_CONTENT:文本内容(流式传输,每次一个 delta)TEXT_MESSAGE_END:文本输出结束
3. 工具调用事件(Tool Call Events)
TOOL_CALL_START:Agent 开始调用工具TOOL_CALL_ARGS:工具参数(流式)TOOL_CALL_END:工具调用结束TOOL_CALL_RESULT:工具返回结果
4. 状态管理事件(State Management Events)
STATE_SNAPSHOT:完整状态快照STATE_DELTA:状态变化增量MESSAGES_SNAPSHOT:消息历史快照ACTIVITY_SNAPSHOT:活动状态快照
5. 推理事件(Reasoning Events)
REASONING_START:开始推理REASONING_MESSAGE_START:推理消息开始REASONING_MESSAGE_CONTENT:推理内容(流式)REASONING_END:推理结束
这些事件让前端可以精确地渲染 Agent 的每一个状态,实现真正的"实时可见”。
三、AG-UI vs MCP vs A2A:各司其职
很多初学者会混淆这三个协议。它们不是竞争关系,而是互补关系:
| 协议 | 作用 | 类比 |
|---|---|---|
| MCP | Agent ↔ 工具/数据 | USB 接口——把各种外设(工具、数据)接入 Agent |
| A2A | Agent ↔ Agent | HTTP 协议——让不同的 Agent 互相通信 |
| AG-UI | Agent ↔ 用户界面 | 浏览器渲染引擎——把 Agent 的行为实时展示给用户 |
简单来说:
- MCP 解决 Agent"用什么工具"
- A2A 解决 Agent"和谁协作"
- AG-UI 解决 Agent"如何与用户沟通"
四、AG-UI 的技术细节
4.1 协议栈位置
AG-UI 位于用户应用与 Agent Runtime 之间:
用户界面 (React/Vue/Angular)
↓
AG-UI 协议层
↓
Agent Runtime (LangGraph / CrewAI / Microsoft Agent Framework / AWS Strands ...)
↓
MCP 协议层(可选)
↓
工具和数据源4.2 支持的框架
AG-UI 不是只有 CopilotKit 能用。它已经被多家主流框架采纳:
- LangGraph
- Microsoft Agent Framework
- AWS Strands
- CrewAI
- Agno
- LlamaIndex
- Mastra
- Pydantic AI
这就是协议的力量——一旦标准化,任何框架都可以实现它。
4.3 三种生成式 UI 模式
AG-UI 是整个"生成式 UI"(Generative UI)技术栈的底层协议。在它之上,有三种实现方式:
1. AG-UI(静态方式)
- Agent 返回结构化数据,前端根据类型渲染对应组件
- 最成熟,兼容性最好
2. A2UI(声明式)
- Google 提出的规范,Agent 返回 JSONL 格式的 UI 描述
- 前端"声明式"渲染
3. MCP Apps + Open JSON(开放式)
- Agent 直接描述想要的 UI,前端灵活渲染
- 最灵活,但需要更多前端逻辑
五、实战:用 AG-UI 构建智能应用
5.1 快速开始
CopilotKit 提供了开箱即用的 AG-UI 集成:
npx create-ag-ui-app my-agent-app这会创建一个完整的示例应用,包含:
- React 前端(已集成 AG-UI 客户端)
- Agent 后端(LangGraph 示例)
- 实时事件流展示
5.2 手动集成
如果你想在自己的项目中使用 AG-UI,只需要:
1. 安装 SDK
npm install @ag-ui/core2. 连接 Agent
import { AgentClient } from '@ag-ui/core';
const client = new AgentClient({
url: 'http://localhost:8000/ag-ui',
});
// 订阅事件
client.on('TEXT_MESSAGE_CONTENT', (event) => {
// 流式显示 Agent 的输出
appendToChat(event.delta.content);
});
client.on('TOOL_CALL_START', (event) => {
// 显示 Agent 正在调用工具
showToolCallIndicator(event.tool_name);
});
client.on('REASONING_MESSAGE_CONTENT', (event) => {
// 显示 Agent 的思考过程
showThinking(event.delta.content);
});
// 发送用户消息
await client.runAgent({
messages: [{ role: 'user', content: '帮我写一个排序算法' }]
});3. 后端实现(Python 示例)
from ag_ui_core import EventType, TextMessageContentEvent
async def stream_response():
# 发送文本开始事件
yield TextMessageStartEvent(message_id="msg_1")
# 流式发送内容
for chunk in response_chunks:
yield TextMessageContentEvent(
message_id="msg_1",
delta=chunk
)
# 发送结束事件
yield TextMessageEndEvent(message_id="msg_1")六、企业级应用场景
6.1 客服 Agent
传统的客服 chatbot 只能处理简单的问答。借助 AG-UI,客服 Agent 可以:
- 实时展示"正在查询订单…"
- 显示"正在为您生成解决方案…"
- 在必要时暂停,等待用户确认
- 调用多个工具时,逐一展示执行过程
6.2 代码助手
IDE 中的 AI 助手可以通过 AG-UI 实现:
- 流式显示代码补全
- 展示代码审查的思考过程
- 工具调用时显示正在搜索的上下文
6.3 业务流程自动化
企业级工作流 Agent 可以通过 AG-UI:
- 让用户实时看到流程进度
- 在关键节点暂停,等待审批
- 显示每个步骤的执行结果
七、为什么 AG-UI 对企业至关重要
7.1 可观测性
企业需要对 AI Agent 的行为有清晰的可见性。AG-UI 把 Agent 的每一个动作都变成可追踪的事件,这对调试、审计、合规都非常重要。
7.2 安全与控制
AG-UI 在用户与 Agent 之间建立了一个"边界层"(boundary)。企业可以:
- 在关键操作前暂停 Agent
- 插入人工审核步骤
- 实时监控 Agent 行为
7.3 防止碎片化
如果没有标准协议,每个供应商都会发明自己的"Agent-UI"方案。AG-UI 试图在早期就建立标准,避免未来的集成噩梦。
八、总结与展望
AG-UI 是 AI Agent 生态中不可或缺的一环。它解决了一个根本问题:如何让用户自然地与 Agent 协作?
随着 AI Agent 在企业中的普及,AG-UI 的重要性只会增加。它不仅是技术协议,更是人机协作的基础设施。
如果你正在构建面向用户的 AI 应用,AG-UI 值得你深入了解。
