|
1智能体到用户交互(AG-UI)协议 1. MCP标准化了Agent到Tool之间通信。
2. A2A(Agent2Agent)协议标准化了Agent到Agent通信。
但仍然缺少一块......
这就是智能体到用户通信的协议:
让我们了解为什么这很重要。
2智能体到用户协议背后的问题为什么(AG-UI)?
今天,我们可以使用LangGraph、CrewAI、Mastra、dify、AutoGen、Hiagent(字节)等智能体工具工具包构建强大的多步骤智能体工作流。 但是,当您尝试将该Agent引入实际应用程序时,事情就崩溃了:
1.您希望逐个Token流式传输LLM响应,而无需构建自定义WebSocket服务器。
2.您希望在工具执行进度发生时显示它,暂停以获得人工反馈,而不会阻塞或丢失上下文。
3.您希望同步大型、不断变化的对象(如代码或表格),而无需将所有内容重新发送到UI。
4.您希望让用户在智能体运行中中断、取消或回复,而不会丢失上下文。
这是另一个问题:
每个智能体后端都有自己的工具调用、ReAct样式规划、状态差异和输出格式机制。
所以如果你使用LangGraph,前端将实现自定义的WebSocket逻辑、杂乱的JSON格式和特定于LangGraph的UI适配器。
但要迁移到CrewAI/Dify等,一切都必须进行调整。
这不会缩放。
3解决方案AG-UI协议
AG-UI(智能体-用户交互协议)是CopilotKit推出的开源协议,可解决此问题。
它标准化了后端智能体和前端UI之间的交互层(下面的绿色层)。
可以这样想:
1.就像REST是客户端到服务器请求的标准一样......
2.AG-UI是将实时智能体更新流式传输回UI的标准。
从技术上讲......
它使用服务器发送事件(SSE)将结构化JSON事件流式传输到前端。
每个事件都有一个显式的有效负载(如Python字典中的keys),例如:
1.TEXT_MESSAGE_CONTENT用于令牌流式处理。
2.TOOL_CALL_START以显示工具执行情况。
3.STATE_DELTA更新共享状态(代码、数据等)
4.AGENT_HANDOFF在智能体之间顺利传递控制权
并且它带有TypeScript和Python的SDK,使这种即插即用适用于任何堆栈,如下所示:

|
在上图中,来自Agent的响应并不特定于任何工具包。这是一个标准化的AG-UI响应。
这意味着您需要编写一次后端逻辑并将其挂接到AG-UI中,一切正常:
1.LangGraph、CrewAI、Mastra —都可以发出AG-UI事件。
2.可以使用CopilotKit组件或您自己的React堆栈构建UI。
3.您可以在本地将GPT-4交换为Llama-3/DeepSeek V3,而无需更改前端中的任何内容。
这是让您的Agent应用程序感觉像真实软件的层,而不仅仅是美化的聊天机器人。 |