综合介绍
A2A(Agent2Agent)是谷歌开发的一个开源协议,目的是让不同框架或厂商开发的AI智能体能够互相通信和协作。它提供了一套标准化的方法,让智能体可以发现彼此的能力、分担任务并完成工作。A2A解决的核心问题是企业AI中智能体无法互通的难题。项目托管在GitHub上,代码免费开放,任何人都可以下载使用或参与开发。目前已有50多家公司支持这一协议,包括Salesforce和SAP。谷歌希望通过A2A为智能体建立通用语言,推动多智能体协作落地。
功能列表
- 支持智能体间任务创建、分配和状态跟踪,适合长时间任务处理。
- 提供
AgentCard
,以JSON格式记录智能体的能力、地址和认证要求。 - 兼容多种交互形式,包括文字、表单、双向音视频。
- 支持异步任务处理,智能体可在后台运行。
- 提供流式传输功能,通过SSE(服务器推送事件)实时更新任务状态。
- 支持推送通知,智能体可主动向客户端发送任务进展。
- 确保通信安全,保护智能体间的数据交换。
使用帮助
A2A是一个开源协议,使用前需要一定的编程知识。以下是详细步骤,帮助你快速上手。
获取和安装
- 访问GitHub仓库
打开https://github.com/google/A2A,这是A2A的官方页面。首页的README介绍了项目背景和基本指引。 - 下载代码
在命令行输入:
git clone https://github.com/google/A2A.git
下载后进入目录:
cd A2A
- 安装依赖
A2A支持Python和JavaScript。以Python为例,需安装Python 3.8+,然后运行:
pip install -r requirements.txt
如果没有requirements.txt
,进入samples/python/common
查看具体依赖。
- 运行示例
仓库提供多个示例。以Python的“费用报销”智能体为例:
- 进入
samples/python/agents/google_adk
。 - 创建
.env
文件,填入配置(如端口号,详见README)。 - 运行:
python main.py
这会启动一个基础的A2A服务器。
主要功能操作
1. 搭建A2A服务器
A2A的核心是让智能体运行一个服务器。步骤如下:
- 编写智能体代码
在Python中,继承A2AServer
类。例如,一个简单回声智能体:
from common.server import A2AServer
class EchoAgent(A2AServer):
def handle_message(self, message):
return {"content": {"text": f"回声: {message.content.text}"}}
- 启动服务器
执行:agent = EchoAgent() agent.run(host="0.0.0.0", port=8080)
其他智能体可通过
http://localhost:8080/a2a
访问。
2. 连接其他智能体
A2A支持客户端与服务器通信:
- 创建客户端
使用A2AClient
连接:from common.client import A2AClient client = A2AClient("http://localhost:8080/a2a")
- 发送消息
发送一条消息:message = {"content": {"text": "测试消息"}, "role": "user"} response = client.send_message(message) print(response["content"]["text"])
3. 使用AgentCard发现能力
每个智能体都有一个AgentCard
,记录其功能:
- 获取方法:
curl http://localhost:8080/a2a/card
- 返回的JSON包括智能体名称、能力描述和支持的操作。
4. 处理任务
A2A支持任务管理:
- 提交任务
发送任务请求:task = {"task_type": "analyze", "data": "示例数据"} task_id = client.submit_task(task)
- 跟踪状态
查询任务进展:status = client.get_task_status(task_id) print(status) # 如:submitted, working, completed
5. 流式传输
对于支持streaming
的服务器,客户端可实时接收更新:
- 使用
tasks/sendSubscribe
提交任务。 - 服务器通过SSE返回状态或结果,例如:
event: TaskStatusUpdateEvent data: {"task_id": "123", "state": "working"}
6. 推送通知
支持pushNotifications
的服务器可主动通知客户端:
- 设置webhook:
client.set_push_notification_webhook("https://your-webhook-url")
- 服务器会在任务更新时推送消息。
注意事项
- 建议使用虚拟环境运行,避免依赖冲突。
- 示例代码在
samples
目录,涵盖多种框架,如CrewAI、LangGraph。 - 如需帮助,可在GitHub的Discussions提问。
通过这些步骤,你可以搭建并运行A2A智能体,体验其通信能力。
JSON 格式协议文件
https://github.com/google/A2A/blob/main/specification/json/a2a.json
应用场景
- 企业任务协作
一个财务智能体收集报销单据,另一个审批智能体审核,A2A让它们无缝协作,完成流程自动化。 - 跨平台客服
一个智能体处理文字咨询,另一个处理语音请求,A2A确保它们共享信息,提升效率。 - 开发测试
开发者用A2A模拟多智能体环境,测试协议或框架的兼容性。
QA
- A2A支持哪些语言?
官方示例用Python和JavaScript,但协议是语言无关的,可用其他语言实现。 - 它是免费的吗?
是的,A2A完全开源,代码免费,但运行可能需要服务器费用。 - 如何改进协议?
在GitHub提交Issues,或通过Google表单提供私密反馈。
A2A 协议:谷歌押注 AI Agent 互联互通的未来?
人工智能(AI) Agent 正从概念走向企业应用的现实,它们被寄予厚望,能够自主处理重复性或复杂的任务,从而提升生产力。从自动化 IT 支持到优化供应链规划,企业内部署 AI Agent 的案例日益增多。然而,一个关键瓶颈随之浮现:这些来自不同供应商、构建在不同框架上的 Agent 如何有效协作?
当前的 AI Agent 往往像信息孤岛,难以跨越系统和应用程序的边界进行交互。这极大地限制了它们发挥更大价值的潜力。为了打破这种局面,Google Cloud 近日联合 Atlassian, Salesforce, SAP, ServiceNow 等超过 50 家技术合作伙伴及服务提供商,共同推出了一项名为 Agent2Agent (A2A) 的开放协议。
打破藩篱:A2A 协议的核心目标
A2A 协议旨在为 AI Agent 提供一种标准的通信方式,使它们能够安全地交换信息、协调行动,无论其底层技术或开发商是谁。这听起来像是为日益碎片化的 AI Agent 生态系统建立一套通用的“语言”和“规则”。
与仅仅作为另一个工具被调用不同,A2A 试图让 Agent 之间能够进行更自然的、非结构化的协作。这对于处理需要多个 Agent 接力完成、跨越数小时甚至数天的复杂任务至关重要。想象一下,招聘经理只需向其个人 Agent 下达指令,该 Agent 就能自动与其他专门负责筛选简历、安排面试、甚至进行背景调查的 Agent 协作,全程无需人工干预不同系统。
值得注意的是,A2A 并非凭空创造,而是建立在现有的 HTTP, SSE, JSON-RPC 等成熟标准之上。这降低了企业将其集成到现有 IT 架构中的门槛。同时,该协议强调安全性,支持企业级的认证和授权方案。此外,对文本、音频、视频等多种模态的支持,也预示着其未来应用的广阔性。
Google 方面表示,A2A 的设计借鉴了其内部大规模部署 Agent 系统的经验,并旨在补充 Anthropic 推出的 Model Context Protocol (MCP)
。如果说 MCP 侧重于为 Agent 提供必要的工具和上下文信息,那么 A2A 则更专注于 Agent 之间的直接通信和协作流程。
A2A 如何运作?
根据公布的规范草案,A2A 的交互围绕“客户端 Agent”(发起任务)和“远程 Agent”(执行任务)展开。
其核心机制包括:
- 能力发现 (Capability discovery): 远程 Agent 通过 JSON 格式的“Agent Card”声明自身能力,帮助客户端 Agent 找到合适的协作者。这类似于一种 Agent 的“黄页”。
- 任务管理 (Task management): 交互以完成“任务”为导向。协议定义了任务对象及其生命周期,支持即时完成和需要状态同步的长时任务。任务的产出被称为“工件 (artifact)”。
- 协作 (Collaboration): Agent 间通过发送消息来传递上下文、回复、工件或用户指令。
- 用户体验协商 (User experience negotiation): 消息包含不同类型的内容“部分 (parts)”,允许 Agent 协商所需的内容格式(如 iframe, 视频, Web 表单等),以适应最终用户的界面能力。
一个具体的例子是前面提到的软件工程师招聘场景。用户的 Agent(客户端)可以发现并连接处理招聘平台数据的 Agent(远程)、负责安排面试日历的 Agent(远程)以及后续处理背景调查的 Agent(远程),通过 A2A 协议协调它们共同完成招聘流程。
生态与挑战:开放协议的战略考量
Google Cloud 选择以开放协议的形式推出 A2A,并联合如此众多的行业伙伴,其战略意义不言而喻。
首先,这体现了 Google 试图在 AI Agent 领域建立标准、掌握主导权的雄心。通过开放协议吸引广泛参与,可以加速形成围绕 Google Cloud 的 Agent 生态系统,对抗其他可能构建封闭体系的竞争对手。
其次,对于企业客户而言,一个统一的、开放的互操作性标准无疑是受欢迎的。它意味着更高的灵活性,可以混合搭配来自不同供应商的最佳 Agent,避免被单一平台锁定,并有望降低长期集成成本。众多合作伙伴(从 Box, Cohere 到 SAP, Workday,再到 Accenture, Deloitte 等咨询巨头)的早期支持,也印证了市场的期待。这些合作伙伴的积极参与是 A2A 能否成功的关键因素,它们不仅提供了技术验证,更重要的是将推动协议在各自平台和客户项目中的实际应用。
然而,协议的成功并非板上钉钉。挑战依然存在:
- 采纳速度与广度: 协议的价值在于广泛采纳。能否说服足够多的开发者和企业真正使用 A2A 标准构建和集成 Agent,仍有待观察。
- 标准演进与维护: 开放标准需要持续的社区投入和有效的治理机制,以适应快速发展的 AI 技术。
- 实际效果验证: 协议在处理极其复杂的现实世界协作任务时的健壮性、效率和安全性,还需要在生产环境中得到充分检验。
A2A 的发布,标志着业界在解决 AI Agent 互操作性难题上迈出了重要一步。虽然目前还处于草案阶段,计划于今年晚些时候推出生产就绪版本,但它描绘了一个 AI Agent 能够跨越边界、协同工作的未来图景。Google 及其合作伙伴能否将这一愿景变为现实,将对企业自动化和 AI 应用的未来产生深远影响。