为了最大化代理AI的价值,关键在于它们能在动态的多代理生态中高效协作,打破孤立的数据系统与应用程序壁垒。实现代理间的互操作性,即使它们来自不同厂商或构建于不同框架,也能显著提升自主性与生产力,同时降低长期运维成本。

谷歌推出了开放协议—Agent2Agent(A2A),旨在让AI代理之间能够通信、共享信息,并在多种企业平台中协同操作。A2A补充了Anthropic的模型上下文协议(MCP),参考了Google在构建大规模代理系统中的经验,专为解决企业部署多代理系统面临的挑战而设计。它使开发者能创建可与任何支持A2A的代理互联的系统,并为企业带来标准化的代理管理方法,助力实现协作AI的巨大潜力。(链接在文章底部)

01 技术原理

A2A 实现客户端代理与远程代理之间的任务通信:前者负责发起任务,后者负责执行任务。核心能力包括:

  1. 能力发现:通过 JSON 格式的“代理卡片”公开功能,便于选择合适的代理协作。

  2. 任务管理:围绕任务对象协作,支持即时或长时间运行任务,输出结果称为“工件”。

  3. 协作通信:代理可交换上下文、回复、工件及用户指令等信息。

  4. 体验协商:消息由多个“部分”组成,支持多种内容类型,便于适配用户界面能力。

MCP(模型上下文协议)用于工具和资源连接:通过结构化输入/输出来连接代理与工具、API 和资源。A2A(代理间通信协议)用于代理协作:支持不同代理间的动态、多模态通信,无需共享记忆、资源或工具。

A2A 协议通过一套清晰的机制实现代理之间的协作。代理的能力通过公开的 Agent Card(位于/.well-known/agent.json)供客户端发现合适代理。A2A Server 是实现协议的代理端,负责接收任务请求并执行;A2A Client 则是发起任务请求的应用或代理,通过如tasks/send接口提交 Task(任务)。任务具有唯一 ID,并在 submitted、working、completed 等状态间流转,期间通过 Message(消息)进行交互,消息由多个 Part(内容片段)组成,如文本、文件或结构化数据。

代理在任务过程中生成的输出称为 Artifact(工件),也由 Parts 构成。对于长时间任务,服务器可使用流式传输(Streaming)通过 SSE 向客户端推送实时更新,或通过推送通知(Push Notifications)主动将更新发送至客户端配置的 webhook 接口。

通过 A2A 协作,招聘软件工程师的流程可大大简化。在像 Agentspace 这样统一的界面中,用户(如招聘经理)可以指派自己的代理,根据职位描述、地点和技能要求寻找候选人。该代理会与其他专业代理协作,获取合适人选。用户收到推荐后,可进一步指示代理安排面试,从而简化人才筛选流程。面试结束后,还可调用其他代理完成背景调查。这只是 AI 代理跨系统协作以招聘合格候选人的一个典型例子。

https://github.com/google/A2A

欢迎交流~,带你学习AI,了解AI