AG-UI 为 AI agent 和前端应用程序之间搭建了一座桥梁,让这两者之间的交互更加友好,为用户带来更好体验。示意图如下:
HttpAgent,或用于连接现有协议的专用客户端AG-UI 的核心组件包括协议层(Protocol Layer)、标准化 HTTP 客户端(Standard HTTP Client)、消息类型(Message Type)、运行智能体(Running Agent)、状态管理(State Management)、工具交接(Tools and Handoff)以及事件(Events)。
AG-UI 协议层主要为 agent 通信提供一个灵活的基础。协议的核心让应用程序能够运行 agent 并且接受到事件流。
AG-UI 提供了一个标准的 HTTP 客户端HttpAgent,可用于连接任何支持 POST 请求的端点。该端点接收RunAgentInput类型的请求体,并返回BaseEvent对象的数据流。
HttpAgent支持HTTP SSE (Server-Sent Events)和HTTP binary protocol两种模式。
AG-UI 为 agent 通信的不同方面定义了一些事件策略,主要包括:
RunStarted、StepStarted/StepFinished、RunFinished(成功)、RunError(失败)。TextMessageStart开始,然后用TextMessageContent事件来交付文本,最后以TextMessageEnd事件结束。ToolCallStart事件,随后会有ToolCallArgs事件,用于流式传输传递给工具的参数,最后以一个ToolCallEnd事件结束。StateSnapshot和StateDelta。Raw和Custom。创建 agent 客户端实例并启用 agent。
AG-UI 通过专用事件对状态进行管理,目前提供的事件有:
AG-UI 通过标准化事件来提供 agent 之间的任务移交的和工具的使用。
AG-UI 中的所有通信都是基于类型事件。每一个事件都继承自BaseEvent,其接口如下:
interface BaseEvent {
type: EventType
timestamp?: number
rawEvent?: any
}目前官方已经提供 TypeScript 和 Python SDK 来对协议进行开发使用。
去年底 Anthropic 发布了 MCP(Model Context Protocol),今年 Google 又发布了 A2A(Agent to Agent),都是面向这一轮 AI 发展的协议。
相比于 MCP 和 A2A,AG-UI 主要聚焦在智能体和用户(agent-user)的交互层上。它和 MCP 于 A2A 并不是竞争关系。这三者在 AI 生态中的作用不同:
这三者互为补充。举个简单的例子:相同的 agent 可以通过 A2A 来跟其他的 agent 进行通信,同时又使用 AG-UI 来跟用户进行交互,另外还能通过 MCP 来进行工具的调用(tool call)。这三个协议,完成用户-Agent-LLM之间交互的标准化。
三个协议构成的 Agent 协议栈如下图所示:
| 欢迎光临 链载Ai (https://www.lianzai.com/) | Powered by Discuz! X3.5 |