Skip to content

[AI开发]4 Agent与A2A

Agent是什么

  • 想象一下,你的办公通常就是“人”+“电脑”,人负责思考和使用工具,电脑负责执行任务,最后人将电脑的结果进行分析和决策,提交。
  • 好了,这就是个Agent了,用稍微学术化一点的话来说:“Agent是指任何能够感知其所处环境并对该环境采取行动的实体”
  • 但现在,我们经常讨论的Agent不是人+工具了,而是LLM+工具,用大模型取代了思考和使用工具的步骤,解放人力嘛。
  • 其实Agent的概念中并没有对技术有任何要求,因此实现形式上其实也各不相同。比如,一个连接了LLM并预设一些API的命令行程序可以是Agent,而接入了MCP、能操作编辑器、终端、自主增删改代码的AI编辑器(如Cursor、VS Code)等也可以算是个Agent。所以说Agent只是一个“产品层面”的概念。

工作流是Agent吗

先说结论,我觉得可以算是

  • 工作流(以Dify)为例,通过预设的节点和编排,让LLM参与到整个流程中参与决策和执行,虽说似乎流程是固定的,但在特定的分支、判断等环节换用LLM来决策,可以明显提高流程执行的灵活性和智能化。
  • 对照Agent的定义,感知主要借助上下文来实现,行动则是通过LLM在特定节点中发挥作用来决定工作流的走向。虽说似乎都比较弱,但是也算蹭上定义了
  • 而且工作流相比于一般意义的Agent也有不少独特的优点,比如可视化程度、行为的可控性、可追溯性等,都是利于开发的优势。
  • Agent的显著优点:灵活,智能虽然工作流比不上,但缺点也同样明显:无法并行、效果非常依赖于LLM的智能水平和prompt的设计。
  • 目前看来,各大AI IDE走的Agent路线和Dify等走的工作流路线二者并无高下之分,暂时不会出现被取代的情况,即使是未来LLM的能力更上一层楼,也会有更复杂的工作交给LLM,工作流的作用依然存在。

A2A的概念

简直就是LLM时代的P2P网络。

  • A2A (Agent-to-Agent) 是一种开放协议,旨在使AI智能体(AI Agents)能够相互发现、通信、安全地交换信息并在各种企业平台或应用程序之上协调行动。可以将其理解为为Agente设计的协作框架[1]
  • 毕竟今年AI,尤其是AI的使用方式这方面发展的如此之快,各家的AI产品,从简单的对话、到RAG增强,再到连接MCP、形成Agent,几乎全都是近一两年的事,到目前为止肯定已经有很多Agent了,但是对于多Agent的互联还没有一个统一标准,A2A就是基于此诞生的。

其实看A2A的协议细节[2]有很多地方都与MCP高度相似,但考虑到毕竟A2A是要兼容MCP的,所以也不奇怪。

a2a-mcp-readme

A2A的特点

  1. 主流技术标准:该协议构建在现有的流行标准之上,包括HTTP、SSE(Server-Sent Events)和JSON-RPC,这一套应该都比较熟悉了。
  2. 对等网络:A2A网络(未来如果发展起来,真正构建成网络的话)很像一个对等网络,是去中心化的,因为从概念上并无服务器-客户端之分,Agent可以相互发现和“调用”。但是在建立连接后从技术实现上还是有"C-S"之分的。
  3. 其他优点:当然其他的优点他也有,只不过就没有那么值得说道了,比如开源、自带身份验证和授权、支持长时任务等。

但目前A2A的发展仍属于早期,虽然协议细节基本完善,SDK也差不多成熟了,但是目前相关实践还是比较少,不在AI最前沿做开发的可以等一等。

References

  1. Agent2Agent Protocol (A2A)
  2. Specification - Agent2Agent Protocol (A2A)

上次更新于: