如今,企业越来越多地构建和部署自主代理,以帮助扩展、自动化和增强整个工作场所的流程 - 从订购新笔记本电脑到协助客户服务代表,再到协助供应链规划。
为了最大限度地发挥代理 AI 的优势,这些代理能够在一个动态的、多代理的生态系统中跨孤立的数据系统和应用程序进行协作,这一点至关重要。使代理能够相互作,即使它们是由不同的供应商或不同的框架构建的,也将增加自主性并成倍提高生产力,同时降低长期成本。
2025年4月9日,Google推出了一个名为 Agent2Agent (A2A) 的新开放协议,得到了 50 多个技术合作伙伴的支持和贡献,这些合作伙伴包括 Atlassian、Box、Cohere、Intuit、Langchain、MongoDB、PayPal、Salesforce、SAP、ServiceNow、UKG 和 Workday;以及领先的服务提供商,包括埃森哲、BCG、凯捷、Cognizant、德勤、HCLTech、印孚瑟斯、毕马威、麦肯锡、普华永道、TCS 和 Wipro。A2A 协议将允许 AI 代理相互通信、安全地交换信息以及在各种企业平台或应用程序之上协调作。
一、A2A设计原则
A2A 是一种开放协议,它为代理提供了一种相互协作的标准方式,而不受底层框架或供应商的影响。在与合作伙伴一起设计协议时,遵循五个关键原则:
- 拥抱Agent能力:A2A 专注于使代理能够以自然、非结构化的方式进行协作,即使他们不共享内存、工具和上下文。正在实现真正的多代理场景,而不会将代理局局限于“工具”。
- 以现有标准为基础:该协议建立在现有的流行标准(包括 HTTP、SSE、JSON-RPC)之上,这意味着它更容易与企业日常使用的现有 IT 栈集成。
- 安全机制:A2A 旨在支持企业级身份验证和授权,在启动时与 OpenAPI 的身份验证方案相同。
- 支持长时间运行的任务:将 A2A 设计为灵活的,并支持各种场景,它擅长完成从快速任务到深入研究的所有工作,而这些工作可能需要数小时甚至数天,而人类则需参与其中。在整个过程中,A2A可以向其用户提供实时反馈、通知和状态更新。
- 支持多模态: 代理世界不仅限于文本,这就是为什么我们设计 A2A 来支持各种模式,包括音频和视频流。
二、工作原理
A2A 是一种“client” Agent和“remote”Agent通信的模式。客户端代理负责制定和传达任务,而远程代理负责处理这些任务。此交互涉及几个关键功能:
- 功能发现: 代理可以使用 JSON 格式的“Agent Card”公布其功能,从而允许客户端代理确定可以执行任务的最佳代理,并利用 A2A 与远程代理进行通信。
- 任务管理: 客户端和远程代理之间的通信最终目的是为了完成任务,其中代理负责满足最终用户的请求。这个 “task” 对象由协议定义,并且有一个生命周期。它可以立即完成,或者对于长时间运行的任务,每个代理都可以进行通信,以便在完成任务的最新状态上彼此保持同步。任务的输出称为 “artifact”(工件)。
- 协作: 代理可以相互发送消息以传达上下文、回复、构件或用户说明。
- 用户体验协商: 每条消息都包含 “parts”,这是一个完全格式化的内容,就像生成的图像一样。每个部分都有指定的内容类型,允许客户端和远程代理协商所需的正确格式,并明确包括用户 UI 功能的协商,例如 iframe、视频、Web 表单等。
三、如何使用
3.1 前置条件
-
python3.13+
-
uv
-
LLM API Key
3.2 使用
3.2.1 克隆仓库
git clone https://github.com/google/A2A.git
3.2.2 导航到samples目录
cd samples/python/agents/langgraph
3.2.3 把API Key添加到环境变量
echo "GOOGLE_API_KEY=your_api_key_here" > .env
3.2.4 创建python虚机环境并安装相关包
conda create -n a2a python=3.13
# 等待安装完毕,激活虚机环境
conda activate a2a
# 并安装uv包
pip install uv
3.2.5 在终端运行A2A server
# Basic run on default port 10000
uv run .
# On custom host/port
uv run . --host 0.0.0.0 --port 8080
3.2.6 在另一个终端运行A2A client
uv run hosts/cli
问题:How much is the exchange rate for 1 USD to INR?
输出效果如下所示: