AI个人学习
和实操指南
豆包Marscode1

A2A:谷歌发布AI智能间通信的开放协议

综合介绍

A2A(Agent2Agent)是谷歌开发的一个开源协议,目的是让不同框架或厂商开发的AI智能体能够互相通信和协作。它提供了一套标准化的方法,让智能体可以发现彼此的能力、分担任务并完成工作。A2A解决的核心问题是企业AI中智能体无法互通的难题。项目托管在GitHub上,代码免费开放,任何人都可以下载使用或参与开发。目前已有50多家公司支持这一协议,包括Salesforce和SAP。谷歌希望通过A2A为智能体建立通用语言,推动多智能体协作落地。

A2A:谷歌发布不同AI智能间通信的开放协议-2


 

功能列表

  • 支持智能体间任务创建、分配和状态跟踪,适合长时间任务处理。
  • 提供AgentCard,以JSON格式记录智能体的能力、地址和认证要求。
  • 兼容多种交互形式,包括文字、表单、双向音视频。
  • 支持异步任务处理,智能体可在后台运行。
  • 提供流式传输功能,通过SSE(服务器推送事件)实时更新任务状态。
  • 支持推送通知,智能体可主动向客户端发送任务进展。
  • 确保通信安全,保护智能体间的数据交换。

 

使用帮助

A2A是一个开源协议,使用前需要一定的编程知识。以下是详细步骤,帮助你快速上手。

获取和安装

  1. 访问GitHub仓库
    打开https://github.com/google/A2A,这是A2A的官方页面。首页的README介绍了项目背景和基本指引。
  2. 下载代码
    在命令行输入:
git clone https://github.com/google/A2A.git

下载后进入目录:

cd A2A
  1. 安装依赖
    A2A支持Python和JavaScript。以Python为例,需安装Python 3.8+,然后运行:
pip install -r requirements.txt

如果没有requirements.txt,进入samples/python/common查看具体依赖。

  1. 运行示例
    仓库提供多个示例。以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

 

应用场景

  1. 企业任务协作
    一个财务智能体收集报销单据,另一个审批智能体审核,A2A让它们无缝协作,完成流程自动化。
  2. 跨平台客服
    一个智能体处理文字咨询,另一个处理语音请求,A2A确保它们共享信息,提升效率。
  3. 开发测试
    开发者用A2A模拟多智能体环境,测试协议或框架的兼容性。

 

QA

  1. A2A支持哪些语言?
    官方示例用Python和JavaScript,但协议是语言无关的,可用其他语言实现。
  2. 它是免费的吗?
    是的,A2A完全开源,代码免费,但运行可能需要服务器费用。
  3. 如何改进协议?
    在GitHub提交Issues,或通过Google表单提供私密反馈。

 

A2A 协议:谷歌押注 AI Agent 互联互通的未来?

人工智能(AI) Agent 正从概念走向企业应用的现实,它们被寄予厚望,能够自主处理重复性或复杂的任务,从而提升生产力。从自动化 IT 支持到优化供应链规划,企业内部署 AI Agent 的案例日益增多。然而,一个关键瓶颈随之浮现:这些来自不同供应商、构建在不同框架上的 Agent 如何有效协作?

当前的 AI Agent 往往像信息孤岛,难以跨越系统和应用程序的边界进行交互。这极大地限制了它们发挥更大价值的潜力。为了打破这种局面,Google Cloud 近日联合 Atlassian, Salesforce, SAP, ServiceNow 等超过 50 家技术合作伙伴及服务提供商,共同推出了一项名为 Agent2Agent (A2A) 的开放协议。

A2A:谷歌发布不同AI智能间通信的开放协议-1

打破藩篱: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”(执行任务)展开。

A2A:谷歌发布不同AI智能间通信的开放协议-2

其核心机制包括:

  1. 能力发现 (Capability discovery): 远程 Agent 通过 JSON 格式的“Agent Card”声明自身能力,帮助客户端 Agent 找到合适的协作者。这类似于一种 Agent 的“黄页”。
  2. 任务管理 (Task management): 交互以完成“任务”为导向。协议定义了任务对象及其生命周期,支持即时完成和需要状态同步的长时任务。任务的产出被称为“工件 (artifact)”。
  3. 协作 (Collaboration): Agent 间通过发送消息来传递上下文、回复、工件或用户指令。
  4. 用户体验协商 (User experience negotiation): 消息包含不同类型的内容“部分 (parts)”,允许 Agent 协商所需的内容格式(如 iframe, 视频, Web 表单等),以适应最终用户的界面能力。

一个具体的例子是前面提到的软件工程师招聘场景。用户的 Agent(客户端)可以发现并连接处理招聘平台数据的 Agent(远程)、负责安排面试日历的 Agent(远程)以及后续处理背景调查的 Agent(远程),通过 A2A 协议协调它们共同完成招聘流程。

A2A:谷歌发布不同AI智能间通信的开放协议-3

生态与挑战:开放协议的战略考量

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 应用的未来产生深远影响。

未经允许不得转载:首席AI分享圈 » A2A:谷歌发布AI智能间通信的开放协议
zh_CN简体中文