:让 AI 智能体走进前端应用的开放事件协议)
AG-UIAgent-User Interaction Protocol让 AI 智能体走进前端应用的开放事件协议【免费下载链接】ag-uiAG-UI: the Agent-User Interaction Protocol. Bring Agents into Frontend Applications.项目地址: https://gitcode.com/gh_mirrors/agu/ag-uiAG-UIAgent-User Interaction Protocol是一个开放、轻量、基于事件的协议用于标准化 AI 智能体Agent与用户界面之间的连接是当前 AI 应用生态中连接智能体与人的通用层。本文以仓库根目录 README.md 为主线结合 docs/concepts/architecture.mdx、docs/concepts/events.mdx 等官方文档与integrations/、sdks/、middlewares/下的真实源码系统讲解 AG-UI 的协议模型、事件体系、架构设计与三条集成路径帮助你快速上手构建 AG-UI 应用或为新框架编写集成。什么是 AG-UIAG-UI 是 Agent 与用户通过用户界面之间的交互协议。它的核心定位是通用、双向的智能体前端连接层——既允许智能体后端在运行期间向任何客户端发送事件流也允许客户端向智能体发送输入实现智能体状态、UI 意图与用户交互的双向流动。从实现约束上看AG-UI 对参与方只有两个简单要求见 docs/concepts/architecture.mdx智能体后端在执行期间发射与 AG-UI 约 16 种标准事件类型兼容的事件智能体后端能够接受几种简单的 AG-UI 兼容输入作为参数。它不强制规定传输层也不要求事件格式逐字段匹配而是通过内置的中间件层middleware保证跨环境兼容兼容任何事件传输方式SSE、WebSockets、Webhook 等支持宽松的事件格式匹配loose event format matching让不同框架的智能体与不同应用之间能够广泛互操作附带参考 HTTP 实现与默认连接器如HttpAgent帮助团队快速起步。简单地说前端应用不需要为每个智能体框架写一套定制适配层只要两端都说 AG-UI就能直接互通。仓库中 middlewares/middleware-starter 与 integrations/server-starter 即为官方提供的最小可运行骨架分别对应翻译已有协议与直接发射事件两种接入方式。为什么 agentic 应用需要 AG-UI传统的前后端交互是请求-响应模型客户端发请求、服务端返回数据、客户端渲染、交互结束。而面向用户的智能体打破了这一模型给服务端实现带来了一系列新挑战智能体是长时间运行的并会持续流式输出中间结果往往横跨多轮会话智能体是非确定性的且可能非确定性地操控应用 UI智能体同时混用结构化与非结构化 I/O文本、语音、工具调用、状态更新交织在一起智能体需要用户交互式组合例如递归地调用子智能体sub-agent。AG-UI 用基于事件的协议这一抽象层来解决上述问题它构建在 HTTP、WebSockets 等 Web 基础协议之上专门为智能体时代设计弥合传统客户端-服务端架构与动态、有状态的 AI 智能体之间的鸿沟。这一为什么的完整论证可见 docs/concepts/architecture.mdx 的 Why Agentic Apps need AG-UI 部分。AG-UI 在 agentic 协议栈中的位置当前开源智能体生态正在围绕一组互补的开放协议组织AG-UI 是其中的第三条腿参见 docs/agentic-protocols.mdx层协议用途Agent ↔ 用户交互AG-UIAgent-User Interaction Protocol将智能体连接到用户界面支持实时、多模态、交互式体验Agent ↔ 工具与数据MCPModel Context Protocol让智能体安全连接外部系统——工具、工作流与数据源Agent ↔ AgentA2AAgent to Agent定义智能体如何在分布式系统中协调与共享工作三者的技术目标各不相同且互补一个智能体完全可以同时使用三者。例如一个智能体通过 MCP 调用工具、通过 A2A 与其他智能体协作、再通过 AG-UI 与前端应用交互。值得注意的是AG-UI 还提供了与 MCP、A2A 的握手handshake能力——即 AG-UI 可以代理front for通过 MCP 与 A2A 协议暴露的智能体使 AG-UI 客户端应用与库能够无缝使用 MCP 和 A2A 支持的智能体。仓库中 integrations/a2a 与 middlewares/a2a-middleware 就是这一互操作能力的落地实现。另外AG-UI 与 A2UI 是两个不同的规范常被混淆A2UI 是生成式 UI 规范允许智能体交付 UI 组件而 AG-UI 是智能体↔用户交互协议连接智能体前端与智能体后端二者可以协同工作。AG-UI 与 MCP Apps、A2UI 等生成式 UI 规范均兼容相关规范说明见 docs/concepts/generative-ui-specs.mdx。核心架构与设计原则AG-UI 采用客户端-服务器架构标准化智能体与应用之间的通信架构中的四个基本角色Application面向用户的应用聊天或任何 AI 赋能的界面AG-UI Client通用通信客户端如HttpAgent或连接既有协议的特化客户端Agents处理请求并生成流式响应的后端 AI 智能体Secure Proxy提供附加能力并充当安全代理的后端服务。协议层一个抽象就绪协议层的核心抽象非常简洁见 docs/concepts/architecture.mdxrun(input: RunAgentInput) - ObservableBaseEvent任何协议只要实现这一个函数签名即可接入 AG-UI。下面是文档中的最小智能体示例TypeScript// Core agent execution interface type RunAgent () ObservableBaseEvent class MyAgent extends AbstractAgent { run(input: RunAgentInput): RunAgent { const { threadId, runId } input return () from([ { type: EventType.RUN_STARTED, threadId, runId }, { type: EventType.MESSAGES_SNAPSHOT, messages: [ { id: msg_1, role: assistant, content: Hello, world! } ], }, { type: EventType.RUN_FINISHED, threadId, runId }, ]) } }标准 HTTP 客户端HttpAgentAG-UI 提供标准 HTTP 客户端HttpAgent可连接任何接受RunAgentInput类型 POST 请求体、并回传BaseEvent事件流的端点。它支持两类传输HTTP SSEServer-Sent Events基于文本的流式传输兼容性广易读易调试HTTP 二进制协议高性能、空间高效的自定义传输适合生产环境的健壮二进制序列化。该客户端的实现位于 sdks/typescript/packages/client事件编解码则依赖 sdks/typescript/packages/encoder。AG-UI 事件体系事件是 AG-UI 中智能体与前端通信的基本单元。所有通信都建立在类型化事件之上每个事件都继承自BaseEventinterface BaseEvent { type: EventType timestamp?: number rawEvent?: any }事件严格类型化并经校验确保各组件间通信可靠见 docs/concepts/events.mdx。事件类型总览协议将事件按用途分为以下几类类别说明生命周期事件Lifecycle监控智能体 run 的进展文本消息事件Text Message处理流式文本内容工具调用事件Tool Call管理智能体的工具执行状态管理事件State Management同步智能体与 UI 之间的状态活动事件Activity表示进行中的活动进度子智能体事件Subagent追踪子智能体并归因其输出特殊事件Special支持自定义功能推理事件Reasoning支持推理可见性与隐私化延续草稿事件Draft处于开发中的提案事件基础事件属性所有事件共享一组基础属性属性说明type具体的事件类型标识符timestamp可选事件创建时间rawEvent可选事件被转换前保存的原始数据metadata可选附加到事件上的额外信息metadata是按 key 开放的附加信息对象可携带 token 用量、trace id、finish reason 等在基础事件上声明一次因此每种事件类型都会携带。消费方将事件的 metadata 逐 key 合并进该事件构建出的消息中后者覆盖前者last write wins这使得生产者可以在消息的最后一个事件上再发送 token 用量而无需提前获知。完整的合并规则见 docs/concepts/metadata.mdx。大多数事件还接受可选的subagentRunId用于标识产生该事件的子智能体未携带该字段的事件归属于父智能体。详见 docs/concepts/subagents.mdx。生命周期事件一次典型的智能体 run 遵循可预测的模式以RunStarted开始可包含多对可选的StepStarted/StepFinished以RunFinished成功或RunError失败结束。RunStarted与RunFinished/RunError是强制的构成一次 run 的边界Step 事件可选可多次出现。RunStarted标志智能体 run 开始建立由唯一runId标识的执行上下文。主要属性属性说明threadId会话线程 IDrunId智能体 run 的 IDparentRunId可选分支/时间旅行的谱系指针若存在则指向同一线程内先前的 run形成类似 git 的追加式日志input可选发送给该 run 的精确智能体输入载荷RunFinished标志 run 结束每个 run 都以RunFinished或RunError终止。它带有可选的outcome判别联合省略——尚未采用中断感知生命周期的旧生产者按正常完成处理outcome: { type: success }——正常完成可选result留在事件根部以保持向后兼容outcome: { type: interrupt, interrupts: [...] }——run 因等待人工输入而暂停非空interrupts数组位于 outcome 变体内客户端通过发起新的 run 并在RunAgentInput中包含resume数组来恢复。完整的中断生命周期见 docs/concepts/interrupts.mdx。RunError标志 run 出错终止之后不再处理。属性包括message错误信息与可选的code错误码。StepStarted / StepFinished标志 run 内某个子任务阶段的开始/结束属性为stepName步骤名可以是当前执行的节点或函数名。配对的stepName必须一致。文本消息事件文本消息遵循流式模式TextMessageStart开始 → 一个或多个TextMessageContent递送文本块 →TextMessageEnd结束。TextMessageStart初始化一条新消息建立messageIdrole标明发送方角色developer、system、assistant、user、tool。TextMessageContentdelta携带一段非空文本块前端按接收顺序拼接即可得到完整消息messageId与 Start 匹配。TextMessageEnd标志消息完成前端可据此收尾渲染移除加载指示、触发滚动等。TextMessageChunk便捷事件客户端流转换器会自动将其展开为 Start → Content → End 三元组某个消息的首个 chunk 必须携带messageId自动发出TextMessageStartrole缺省为 assistant带delta的 chunk 发出TextMessageContent当流切换到新messageId或流结束时自动发出TextMessageEnd。工具调用事件工具调用同样采用流式模式ToolCallStart→ 一个或多个ToolCallArgs流式传输参数→ToolCallEnd之后由ToolCallResult返回执行结果。这使前端可以实时展示智能体正在调用什么工具、以什么参数调用增强透明性。ToolCallStarttoolCallId唯一标识、toolCallName工具名、可选parentMessageId关联父消息。ToolCallArgsdelta携带参数数据块通常是 JSON 片段拼接后构成完整参数对象。ToolCallEnd标志工具调用定义完成。ToolCallResult返回工具执行输出属性含messageId、toolCallId、content结果内容与可选的role通常为 tool。ToolCallChunk便捷事件自动展开为 Start → Args → End工具调用的首个 chunk 必须携带toolCallId与toolCallName并传播parentMessageId带delta的 chunk 发出ToolCallArgs切换到新toolCallId或流结束时自动发出ToolCallEnd。状态管理事件状态同步采用高效的**快照-增量snapshot-delta**模式完整快照在开始或偶尔发送日常更新用增量StateSnapshotsnapshot携带完整状态前端应替换现有状态模型而非合并。StateDeltadelta为 RFC 6902 定义的 JSON Patch 操作数组前端按序应用补丁保持状态一致若发现不一致可请求新的快照。MessagesSnapshotmessages携带当前会话的完整消息历史用于初始化聊天记录、断线重连后同步、或用户中途加入会话。文档还特别说明MessagesSnapshot中activity与reasoning角色是全有或全无的——若快照携带任一角色的消息则必须是该角色的完整集合重复条目替换客户端副本、缺失条目被移除若完全不带则客户端保留已有消息。两者默认是客户端侧的activity消息不会回传给智能体会从RunAgentInput中剥离reasoning通常只以流式Reasoning事件存在。活动事件活动事件Activity Events暴露聊天消息之间进行中的结构化活动更新同样遵循快照/增量模式便于 UI 立即渲染完整视图并随新信息增量更新ActivitySnapshotmessageId活动消息标识、activityType活动判别符如PLAN、SEARCH、content结构化 JSON 载荷、可选replace默认true为false时若消息已存在则忽略快照。ActivityDeltamessageId、activityType镜像最近快照的值、patchRFC 6902 JSON Patch 操作数组。注意活动消息与文本/推理消息共享同一 ID 空间其messageId不得与文本或推理消息重复。子智能体事件当智能体把工作委派给子智能体时SubagentStarted/SubagentFinished/SubagentError三个事件界定子智能体的活动范围并给出可显示的名称配合大多数其他事件上的subagentRunId归因前端就能区分并发流式输出来自哪个子智能体。SubagentStartedsubagentRunId本次调用的不透明标识标识一次调用而非可复用的定义、name用于显示的名称/类型、可选description、parentSubagentRunId嵌套时、parentToolCallId派生子智能体的工具调用、parentMessageId。SubagentFinishedresult可选完成载荷镜像RunFinished.result、outcome可选判别联合{ type: success }或{ type: suspended, interruptIds?: string[] }省略视为成功suspended表示子智能体中途检查点挂起等待外部输入。SubagentErrormessage与可选code。特别地StateSnapshot/StateDelta上的归因是溯源provenance而非所有权它记录是哪个子智能体产生了更新状态仍是 run 作用域的单一文档不存在每个子智能体的独立状态。完整模型见 docs/concepts/subagents.mdx。推理事件Reasoning推理事件支持 LLM 推理的可见性与延续性同时维护隐私智能体可以浮出推理信号如摘要并通过加密推理条目encrypted reasoning items跨轮次延续推理状态——尤其适用于store:false或零数据留存策略——而不暴露原始思维链chain-of-thought。该设计受 OpenAI 加密推理条目与 Gemini Thought Signatures 启发。事件包括ReasoningStart开始推理建立messageId、ReasoningMessageStart/ReasoningMessageContentdelta为推理内容块需拼接/ReasoningMessageEnd流式推理消息的三元组、ReasoningMessageChunk自动开闭消息的便捷事件空delta或下一个非推理事件隐式关闭消息、ReasoningEnd结束。此外还有ReasoningEncryptedValue将加密的思维链附加到消息或工具调用上。属性subtypemessage 或 tool-call、entityId所属消息/工具调用 ID、encryptedValue加密内容块。客户端只做不透明存储与转发只有智能体或授权后端能解密。使用场景包括给AssistantMessage/ReasoningMessage附加推理以保留后续轮次的上下文给工具调用附加推理以记录参数选择原因。隐私考量、合规指引与实现示例见 docs/concepts/reasoning.mdx。特殊事件Raw透传外部系统事件。event保存原始事件数据可选source标识来源系统用于与不原生遵循 AG-UI 的事件系统互操作。Custom应用自定义事件。name标识自定义事件类型value携带数据。这是协议扩展机制无需修改规范即可扩展语义但团队应记录自定义事件以保证跨实现一致性。草稿事件与弃用事件处于草案状态的扩展可能变更包括MetaEvent边带注解事件可出现在流中任意位置属性metaType与payload用于用户反馈或外部系统信号提案见 docs/drafts/meta-events.mdx以及扩展版生命周期事件RunFinished新增outcome/result字段、RunStarted新增parentRunId/input字段用于支持中断与分支。以下THINKING_*事件已弃用将在 1.0.0 版本移除请改用对应的REASONING_*事件弃用事件替代事件THINKING_STARTREASONING_STARTTHINKING_ENDREASONING_ENDTHINKING_TEXT_MESSAGE_STARTREASONING_MESSAGE_STARTTHINKING_TEXT_MESSAGE_CONTENTREASONING_MESSAGE_CONTENTTHINKING_TEXT_MESSAGE_ENDREASONING_MESSAGE_END迁移指南见 docs/concepts/reasoning.mdx 的 Migration from Thinking Events 一节。事件流模式与实现要点协议中的事件通常遵循三种模式Start-Content-End 模式用于流式内容文本消息、工具调用——Start发起流Content递送数据块End标志完成Snapshot-Delta 模式用于状态同步——Snapshot提供完整状态Delta提供增量更新Lifecycle 模式用于监控 run——Started标志开始Finished/Error标志结束。实现事件处理器时按接收顺序处理事件相同 ID如messageId、toolCallId的事件属于同一条逻辑流实现应对乱序投递保持健壮自定义事件应遵循既有模式以保持一致性。AG-UI 的能力构建块结合 docs/concepts/architecture.mdx 与 Dojo 中的演示apps/dojoAG-UI 目前已覆盖以下能力部分为近期新增/规划中流式聊天Streaming chat实时 token 与事件流支持多轮会话的取消与恢复多模态Multimodality类型化附件与实时媒体文件、图片、音频、转写支持语音、预览、注解、来源追踪生成式 UI静态将模型输出渲染为受应用控制的稳定类型化组件生成式 UI声明式小型声明式语言智能体提出组件树与约束应用校验后挂载共享状态Shared state智能体与应用共享的类型化存储只读与读写基于流式事件溯源的 diff 与冲突解决思考步骤Thinking steps从 trace 与工具事件可视化中间推理不暴露原始思维链前端工具调用Frontend tool calls智能体到前端执行动作的类型化交接及回传后端工具渲染Backend tool rendering在应用与聊天中可视化后端工具输出将副作用作为一等事件发射中断与人工介入Interrupts / human-in-the-loop中途暂停、批准、编辑、重试或升级不丢失状态子智能体与组合Sub-agents and composition带作用域状态、追踪与取消的嵌套委派智能体引导Agent steering用实时用户输入动态重定向智能体执行工具输出流式化Tool output streaming实时流式传输工具结果与日志UI 可实时渲染长时效果自定义事件Custom events协议未覆盖需求的开放式数据交换。快速开始一条命令创建 AG-UI 应用AG-UI 提供 CLI 脚手架工具可在数秒内创建一个新的 AG-UI 应用自动装配客户端与服务器npx create-ag-ui-app my-agent-app若使用最新版本脚手架npx create-ag-ui-applatest搭建完成后启动服务npm run dev对于 CopilotKit 示例打开 http://localhost:3000 即可看到应用运行。完整步骤见 docs/quickstart/applications.mdx。CLI 工具的源码位于 sdks/typescript/packages/cli。三条集成路径Server、Middleware 与 Client根据你的场景AG-UI 集成分为三种类型总览见 docs/quickstart/introduction.mdx类型方式适用场景Server 实现从智能体或服务器直接发射 AG-UI 事件从零构建新智能体框架、需要最大程度控制事件发射、将智能体暴露为独立 APIMiddleware 实现翻译已有协议/应用为 AG-UI 事件已有系统或框架受限、无法直接控制智能体框架、需要通用翻译现有协议Client 实现构建消费 AG-UI 事件的对话应用探索/研究协议本身或为非 Web 场景终端、移动端、聊天平台构建客户端Server搭建一个 AG-UI 兼容的 OpenAI 流式服务器Server 方式的核心是实现一个 HTTP 端点接收RunAgentInput回传 AG-UI 事件流。仓库提供了可复制的模板 integrations/server-starter步骤详见 docs/quickstart/server.mdx克隆仓库后复制模板cp -r integrations/server-starter integrations/openai-server更新新目录下package.json的name/author/version字段在src/index.ts中重命名类export class OpenAIServerAgent extends HttpAgent {}将集成注册进 Dojo 的 apps/dojo/src/menu.ts 与 apps/dojo/src/agents.ts并在 apps/dojo/package.json 的dependencies中加入ag-ui/openai-server: workspace:*启动 Python 服务器与 Dojo 后即可在浏览器中试聊。一个最小 AG-UI 端点的骨架如下Python FastAPI使用ag_uiSDKfrom fastapi import FastAPI, Request from fastapi.responses import StreamingResponse from ag_ui.core import ( RunAgentInput, EventType, RunStartedEvent, RunFinishedEvent, TextMessageStartEvent, TextMessageContentEvent, TextMessageEndEvent, ) from ag_ui.encoder import EventEncoder import uuid app FastAPI(titleAG-UI Endpoint) app.post(/) async def agentic_chat_endpoint(input_data: RunAgentInput, request: Request): accept_header request.headers.get(accept) encoder EventEncoder(acceptaccept_header) async def event_generator(): yield encoder.encode(RunStartedEvent( typeEventType.RUN_STARTED, thread_idinput_data.thread_id, run_idinput_data.run_id, )) message_id str(uuid.uuid4()) yield encoder.encode(TextMessageStartEvent( typeEventType.TEXT_MESSAGE_START, message_idmessage_id, roleassistant, )) yield encoder.encode(TextMessageContentEvent( typeEventType.TEXT_MESSAGE_CONTENT, message_idmessage_id, deltaHello world!, )) yield encoder.encode(TextMessageEndEvent( typeEventType.TEXT_MESSAGE_END, message_idmessage_id, )) yield encoder.encode(RunFinishedEvent( typeEventType.RUN_FINISHED, thread_idinput_data.thread_id, run_idinput_data.run_id, )) return StreamingResponse(event_generator(), media_typeencoder.get_content_type())在此基础上接入 OpenAI 的chat.completions.create(..., streamTrue)将每个 chunk 的delta.content转发为TextMessageChunkEvent文本或ToolCallChunkEvent工具调用最后发射RunFinishedEvent异常时发射RunErrorEvent即构成完整可用的流式服务器。可用以下curl验证端点curl -X POST http://localhost:8000/ \ -H Content-Type: application/json \ -H Accept: text/event-stream \ -d { threadId: thread_123, runId: run_456, state: {}, messages: [ { id: msg_1, role: user, content: Hello, how are you? } ], tools: [], context: [], forwardedProps: {} }EventEncoder会根据请求的Accept头自动选择 SSE 文本编码或二进制编码media_typeencoder.get_content_type()保证响应头匹配。Python SDK 实现见 sdks/python/ag_ui。Middleware把任意协议翻译成 AG-UIMiddleware 方式适用于已有协议/应用。仓库模板 middlewares/middleware-starter 展示了如何继承AbstractAgent并返回ObservableBaseEventexport class OpenAIAgent extends AbstractAgent { private openai: OpenAI constructor(openai?: OpenAI) { super() this.openai openai ?? new OpenAI() } run(input: RunAgentInput): ObservableBaseEvent { return new ObservableBaseEvent((observer) { observer.next({ type: EventType.RUN_STARTED, threadId: input.threadId, runId: input.runId } as any) // ...调用 OpenAI API把响应块转为 TEXT_MESSAGE_CHUNK / TOOL_CALL_CHUNK 事件 observer.next({ type: EventType.RUN_FINISHED, threadId: input.threadId, runId: input.runId } as any) observer.complete() }) } }翻译输入 → 转发流式块 → 发射 AG-UI 事件这一模式适用于 REST/GraphQL API、WebSocket乃至 MQTT 等 IoT 协议。详细教程见 docs/quickstart/middleware.mdx。仓库中还提供了多个真实中间件示例例如 middlewares/a2a-middlewareA2A 协议翻译、middlewares/a2ui-middleware生成式 UI / A2UI 事件处理、middlewares/mcp-apps-middlewareMCP Apps 集成、middlewares/mcp-middlewareMCP 工具集成与 middlewares/event-throttle-middleware事件节流。Client构建一个终端聊天客户端客户端不必是 Web 应用——AG-UI 描述的是事件流而非渲染目标因此终端、移动应用、聊天平台Slack、Microsoft Teams 等都可以作为客户端。仓库提供了完整的终端示例 apps/client-cli-example教程见 docs/quickstart/clients.mdx。要点安装依赖pnpm add ag-ui/client ag-ui/core ag-ui/mastra示例基于 Mastra 智能体用MastraAgent包装一个 MastraAgent配置模型如openai/gpt-4o与基于 LibSQL 的持久化记忆在终端主循环中向agent.messages追加用户消息调用agent.runAgent({}, {...})并注册事件回调await agent.runAgent( {}, // No additional configuration needed { onTextMessageStartEvent() { process.stdout.write( Assistant: ) }, onTextMessageContentEvent({ event }) { process.stdout.write(event.delta) }, onTextMessageEndEvent() { console.log(\n) }, } )运行pnpm dev即可在终端与智能体实时对话随后可添加src/tools/weather.tool.ts之类的 Zod 定义工具让智能体具备真实能力。官方推荐的生产级客户端是 CopilotKit它已原生理解 AG-UI提供开箱即用的 React 组件直接指向你的 AG-UI 端点即可获得完整聊天 UI。集成生态全景AG-UI 起源于 CopilotKit 与 LangChain、CrewAI 的初始合作将广受欢迎的智能体-用户交互基础设施带入了更广泛的智能体生态。README 中按层级给出了完整支持矩阵仓库 integrations 目录即这些集成的源码所在Frameworks内置智能体Built-in Agent✅ SupportedDocs 见 docs/concepts/agents.mdxPartnerships合作框架LangChain / LangGraph✅ Supported集成源码 integrations/langchain、integrations/langgraphCrewAI✅ Supported集成源码 integrations/crew-ai1st Party官方一等集成Microsoft Agent Framework✅ Supportedintegrations/microsoft-agent-frameworkGoogle ADK✅ Supportedintegrations/adk-middlewareAWS Strands Agents✅ Supportedintegrations/aws-strandsMastra✅ Supportedintegrations/mastraPydantic AI✅ Supportedintegrations/pydantic-aiAgno✅ Supportedintegrations/agnoLlamaIndex✅ Supportedintegrations/llama-indexAG2✅ Supportedintegrations/ag2AWS Bedrock Agents️ In ProgressCommunity社区集成Claude Agent SDK✅ Supportedintegrations/claude-agent-sdkClaude Managed Agents SDK✅ Supportedintegrations/claude-managed-agentsLangroid✅ Supportedintegrations/langroidOpenAI Agent SDK️ In ProgressCloudflare Agents️ In Progress社区目录 integrations/community/cloudflare-agents其他社区示例还包括 Genkitintegrations/community/genkit与 Spring AI 等Agent Interaction ProtocolsA2A✅ SupportedPartnership集成 integrations/a2a 与中间件 middlewares/a2a-middlewareInfrastructure / DeploymentAmazon Bedrock AgentCore✅ Supported1st PartySpecification标准Oracle Agent Spec✅ Supported集成 integrations/agent-specGenerative UIMCP Apps✅ Supported中间件 middlewares/mcp-apps-middlewareSDKs多语言Kotlinsdks/community/kotlin、Gosdks/community/go、Dartsdks/community/dart、Javasdks/community/java、Rustsdks/community/rust、Rubysdks/community/ruby、Csdks/community/c均为 ✅ SupportedNim、Flowise、Langflow 处于 In Progress。官方 SDKTypeScript核心包见 sdks/typescript/packagescore、client、encoder、proto、cli、a2ui-toolkit其中core提供协议核心类型与AbstractAgentclient提供HttpAgent与客户端抽象Pythonsdks/python/ag_ui 提供ag_ui.core事件与输入类型、ag_ui.encoderSSE/二进制编码等另有 sdks/python/a2ui_toolkit 工具包.NETsdks/dotnet 包含AGUI.Abstractions、AGUI.Client、AGUI.Server、AGUI.Protobuf、AGUI.A2UI等程序集与 GettingStarted 示例。ClientsCopilotKit✅ Supported1st Party生产级 React 客户端Terminal Agent✅ SupportedCommunity示例 apps/client-cli-example文档 docs/quickstart/clients.mdxChat platformsSlack、Microsoft Teams✅ Supported1st Party Channels SDK 方案React Native✅ Supported1st Party。AG-UI 客户端不一定是 Web 应用协议描述的是事件流而非渲染目标因此终端、移动应用或聊天平台都可以充当客户端。全部集成列表见 docs/integrations.mdx。AG-UI Dojo积木式示例查看器apps/dojo 是 AG-UI 官方的Building-Blocks Viewer积木查看器通过简单聚焦的示例演示 AG-UI 的核心能力——每个示例仅 50–200 行代码。Dojo 将上述每种框架集成与shared_state、tool_based_generative_ui、agentic_chat等功能组合成可在线交互的演示页每个演示都配有代码与讲解是学习各集成写法、观察 AG-UI 事件流实际效果的最佳入口。Dojo 是一个 Next.js 应用其框架注册逻辑集中在 apps/dojo/src/menu.ts 与 apps/dojo/src/agents.tspnpm dev即可本地运行apps/dojo/e2e下还提供了覆盖 265 个测试文件的 Playwright 端到端测试套件。参与贡献与许可证AG-UI 欢迎社区贡献。无论是新增框架集成、新 SDK 语言、示例改进还是文档修订请先阅读 CONTRIBUTING.md 了解规范与命名约定集成放置于integrations/目录中间件放置于middlewares/目录并通过 Pull Request 提交。仓库同时维护 docs/development/roadmap.mdx路线图与 docs/development/updates.mdx更新记录docs/development/contributing.mdx 提供了面向文档贡献者的指南仓库根目录的 AGENTS.md 与 CLAUDE.md 则面向 AI 辅助开发场景说明了构建、测试与提交约定。AG-UI 以MIT 许可证开源见 LICENSE可自由用于商业与非商业项目。小结AG-UI 用一套约 16 种标准事件类型 简单输入约定 传输无关中间件的最小约束打通了智能体后端与任意用户界面之间的双向通道生命周期事件界定 run 边界文本与工具调用事件以 Start-Content-End 流式模式提供实时体验快照-增量模式高效同步状态子智能体事件解决并发流归因推理事件在隐私前提下保留推理延续性Raw/Custom 事件则保证协议可扩展。无论你是用npx create-ag-ui-app直接搭建应用、参考server-starter编写自己的服务器、基于middleware-starter翻译既有协议还是构建终端/移动端等非 Web 客户端都可以从本仓库的 integrations、middlewares、sdks 与 apps/dojo 中找到可直接参考、复制和运行的实现。【免费下载链接】ag-uiAG-UI: the Agent-User Interaction Protocol. Bring Agents into Frontend Applications.项目地址: https://gitcode.com/gh_mirrors/agu/ag-ui创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考