掘金 人工智能 前天 11:03
告别API碎片化:AG-UI如何统一AI前端交互协议
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

AG-UI (Agent User Interaction Protocol) 是一套开源协议,旨在统一AI应用的前后端交互,解决AI应用开发中的碎片化问题。它定义了Agent与UI之间的通信标准,实现前端应用与后端Agent的解耦,支持流式事件驱动的通信方式,提供了多种标准化事件类型,如文本传输、工具调用和状态管理等。AG-UI的核心在于让前端专注用户交互,后端专注于Agent的逻辑处理,从而实现更流畅、更灵活的AI应用体验。

💡 AG-UI的核心在于定义了前端应用与后端Agent之间的标准通信协议,解决了不同AI服务商API格式不统一的问题,实现前后端解耦。

💬 AG-UI采用事件驱动架构,支持双向流式交互,Agent通过标准Events与前端通信,包括文本、工具调用和状态管理等,提升用户体验。

🛠️ AG-UI支持工具调用,Agent通过事件通知前端调用工具,前端可控制用户交互,实现Human-in-the-Loop工作流,增强人机协作。

🔄 AG-UI提供状态管理机制,通过STATE_SNAPSHOT和STATE_DELTA事件,实现状态同步,支持复杂交互的流式更新,提升用户体验。

🌐 AG-UI鼓励前端主导工具调用,前端定义Agent可使用的工具,控制用户感知,实现更安全、灵活的AI应用。

docs.ag-ui.com/introductio…

AG-UI是什么

AG-UI全称Agent User Interaction Protocol,是一套开源的Agent与UI界面之间的交互协议。

前有MCP和A2A,AG-UI又是干啥的?

当前AI应用开发主要面临的一些挑战

这种碎片化会导致开发者在和多个AI服务对接或构建复杂AI应用时重写大量代码。

假设有一套通信协议,可以统一前端应用和后端Agent之间的交互格式,做到前后端解耦,让大家各司其职,岂不美哉。AG-UI的出现,就是为了解决这个问题。

AG-UI的核心架构

AG-UI简单来说,就是为前端应用层与后端Agent层之间的通信制定了标准。

AG-UI的几个特点

事件 Events

AG-UI采用流式事件驱动架构(streaming event-based architecture),支持前端和Agent之间的双向通信。

AG-UI内部制定了16种标准化事件类型

例如,一个典型的chatbot产生的事件流如下

RUN_STARTED -> TEXT_MESSAGE_START -> TEXT_MESSAGE_CONTENT -> TEXT_MESSAGE_END -> RUN_FINISHED

    [        {            "type": "RUN_STARTED",            "threadId": "thread_1",            "run_id": "run_1"        },        {            "type": "TEXT_MESSAGE_START",            "messageId": "message_1",            "role": "assistant"        },        {            "type": "TEXT_MESSAGE_CONTENT",            "messageId": "message_1",            "delta": "你好"        },        {            "type": "TEXT_MESSAGE_END",            "messageId": "message_1"        },        {            "type": "RUN_FINISHED",            "threadId": "thread_1",            "run_id": "run_1"        }    ]

通过将前端应用与后端Agent之间的交互拆分为不同的事件,前端可着重关注在收到对应事件时,应该向用户展示什么样的交互,而不用关心具体的后端Agent实现。

Agents

Agent是AG-UI里的核心组成部分,负责处理前端发起的请求,和LLM交互并生成响应(响应需遵循Events格式),同时还要管理对话状态和消息历史。在Agent底层可以和其他任意的AI服务连接(比如任意的LLM、定制的AI系统、RAG、其他Agent等等)。

Agent具备丰富的交互能力

AG-UI本身并没有限制Agent的能力,只是在需要和前端用户交互的场景下,让Agent可以通过预定义的若干Events通知前端,让前端聚焦在用户行为上。

消息 Messages

传统与LLM通信时,message中的role通常被分为systemuserassistant。在AG-UI中,除了以上三种类型的消息,工具调用的结果也被当成一种消息类型(称为tool)。

   // Conversation history    [      // User query      {        id: "msg_1",        role: "user",        content: "What's the weather in New York?",      },      // Assistant response with tool call      {        id: "msg_2",        role: "assistant",        content: "Let me check the weather for you.",        toolCalls: [          {            id: "call_1",            type: "function",            function: {              name: "get_weather",              arguments: '{"location": "New York", "unit": "celsius"}',            },          },        ],      },      // 注意,这里的工具调用其实是由Agent通知给前端,由前端用户决定是否调用工具,并把调用结果传给Agent,让Agent继续后续流程      // Tool result      {        id: "result_1",        role: "tool",        content:          '{"temperature": 22, "condition": "Partly Cloudy", "humidity": 65}',        toolCallId: "call_1",      },      // Assistant's final response using tool results      {        id: "msg_3",        role: "assistant",        content:          "The weather in New York is partly cloudy with a temperature of 22°C and 65% humidity.",      },    ]

状态管理 State Management

状态管理,除了基本的同步聊天消息之外,你可以同步任意的状态,让人和AI的操作可以衔接操作。

官方提供了一个比较有意思的Demo:让AI优化一份菜谱,菜谱在前端使用富交互展示的,随着AI Agent的优化,前端交互可实时进行更新。

feature-viewer-langgraph.vercel.app/feature/sha…

状态同步仍然使用Event

有了这个能力,前端应用可以实现更复杂交互的流式更新,给用户更好的交互体验。

工具调用 Tools

在AG-UI中,工具可以

前面提到了,在AG-UI中,需要和前端交互的工具需要在前端定义,并通过协议传给Agent,当Agent认为需要使用工具时,会使用Event向前端发消息,前端可向用户展示被调用的工具名称和参数,让用户决定是否继续。

ToolCallStart -> ToolCallArgs -> ToolCallEnd

关于AG-UI的思考

以下仅代表个人观点,欢迎讨论

初看AG-UI这个协议,感觉不就是把AI应用的前后端交互做了解耦,并且定义了一套数据传输格式么。(当然,这就好比说HTTP协议不就是定义了请求和响应的格式么hhh)

细想一下,AG-UI是有一些独特的特点的(具体好不好,要交给历史来决定了)

未来可能有哪些发展

以下仅代表个人观点,欢迎讨论

类比MCP的出现,MCP之前,各家AI应用存在重复实现相同能力的情况,MCP出现之后,大家把各种原子化的能力统统包装成MCP服务,可以在Claude、Cursor、Cline等多个AI应用中自由集成。

AG-UI可能也会有类似的发展:

目前AG-UI已经支持了LangGraph、CrewAI等框架,后续可能会有更多AI Agent框架原生集成AG-UI,Agent开发更加标准化。

各大厂商和服务商会提供自己的AI Agent,并原生支持AG-UI。同一个Agent可以被不同的AI应用多次使用。智能体市场发展壮大,并可能出现智能体按用量计费的商业模式。

AG-UI将前后端交互进一步解耦,交互设计专家可以专注创造最佳的用户体验,AI开发者可以专注提升Agent能力。未来用户可以自由结合喜欢的前端界面+能力强大的Agent,不再会出现喜欢A的交互但是想用B的能力的情况,实现“各取所长”的理想组合。

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

AG-UI AI协议 Agent 前端 后端
相关文章