AG-UI 是一个开放、基于事件的协议,用于标准化智能体后端与用户界面应用之间的通信。它定位在 MCP(智能体与工具之间)和 A2A(智能体与智能体之间)之外,专门解决智能体与用户前端之间的交互问题。协议由 CopilotKit 团队创建,LangGraph、Mastra、CrewAI、Pydantic AI、Google ADK、Microsoft Agent Framework、AWS Strands、Agno、LlamaIndex、AG2 等框架均有实现。资料显示 1.0 版本于 2026 年 9 月发布。
用途方面,应用向智能体端点发送一个 JSON 格式的 RunAgentInput,包含线程 ID、运行 ID、消息、状态、工具、上下文和转发属性;智能体则返回一串类型化事件,实时推送文本、工具调用、状态变化和生命周期信息,前端据此更新界面。
主要能力包括:生命周期事件(运行开始、结束、出错,步骤开始与结束);文本消息事件(开始、内容增量、结束,以及紧凑的消息块);工具调用事件(开始、参数增量、结束、结果);状态事件(全量快照、JSON Patch 增量、消息快照);活动事件与推理事件(REASONING_* 系列,取代已弃用的 THINKING_*);子智能体事件;以及 RAW 和 CUSTOM 两种扩展事件。一次运行以 RUN_STARTED 开始,以 RUN_FINISHED 或 RUN_ERROR 结束;所有已开启的消息、工具调用或推理片段必须在运行结束前关闭,否则 1.0 客户端会判定运行失败。
使用方式上,SDK 包包括 @ag-ui/core(类型与常量)、@ag-ui/client(HttpAgent 与订阅者)、@ag-ui/encoder(EventEncoder),以及按框架划分的 @ag-ui/langgraph、@ag-ui/mastra 等适配包;React 层由 CopilotKit 提供(@copilotkit/react-core/v2)。资料未提供名为 @ag-ui/server 或 @ag-ui/react 的包,也不存在 @ag-ui/* 中的 AgentServer/useAgent。服务端可用 Node.js 或 Python(ag-ui-protocol 包配合 FastAPI)实现 HTTP + SSE 端点;客户端可用 HttpAgent 的 runAgent 方法,事件会自动应用到 agent.messages 和 agent.state,并触发订阅钩子;React 项目可在 Copilot Runtime 中注册 AG-UI 端点,再使用 CopilotChat 或 useAgent 等钩子构建界面。也可通过 npx create-ag-ui-app@latest 或 npx copilotkit@latest create 脚手架创建项目。
适用场景包括:将智能体的进度与结果流式推送到浏览器;把已有的 LangGraph 等框架智能体接入 React 聊天界面,并让工具调用和状态变化自动呈现在 UI 中;构建需要人工确认(human-in-the-loop)的交互。
限制与注意事项:1.0 版本校验严格,未知事件类型会被丢弃并告警,未知属性会被剥离,已知字段格式错误会导致运行失败;可选字段必须缺失而不能为 null。@ag-ui/client 需在应用中与 @copilotkit/runtime 保持同一版本,否则可能出现类型和实例错误。校验器位于 @ag-ui/core/schemas,需要 zod 3.25.18+ 或 4.x。建议用 STATE_DELTA 处理高频小变更,用 STATE_SNAPSHOT 重新同步;智能体状态需可序列化且不含机密信息,因为状态会到达浏览器。协议本身不处理认证,端点需自行实现鉴权;人工确认应在服务端强制执行,而不仅依赖界面。调试可使用 AG-UI Dojo 或以 curl -N 配合 Accept: text/event-stream 请求端点。