Agent2Agent (A2A) 协议
开放协议,让不同的AI Agent能发现彼此、协商交互方式并安全协作,构建互联互通的智能体生态。
证据仅包含README、LICENSE、SECURITY.md和CI工作流,未提供任何关于权限最小化、用户确认、数据流透明、敏感数据处理、依赖安全、外部影响、回滚或来源归属的具体实现或文档。因此所有信任标准均得0分。
证据中未包含任何代码或测试,无法评估自洽性、依赖可用性或失败消息。因此所有可靠性标准均得0分。
README描述了目标受众和使用场景,但未提供具体的能力边界、触发精度或环境适配细节。因此所有适应性标准均得0分。
README提供了项目概述和链接,但未包含安装说明、命名稳定性、示例、已知限制、版本变更日志或维护责任的具体信息。许可证文件存在,但未在评分中体现。因此所有约定标准均得0分。
证据中未提供任何关于输出可用性、边际价值或成本效益的具体信息。因此所有有效性标准均得0分。
证据中未提供任何可验证的声明或来源,无法进行声明可追溯性、跨来源佐证或事实与推断分离的评估。因此所有可验证性标准均得0分。
- 该仓库仅包含协议文档和CI配置,未提供任何可执行代码或测试,无法验证其实际功能。
- 发布者身份未经验证,且未提供任何安全或权限相关的实现细节,使用前需谨慎评估。
这个 Agent 能做什么,适合哪些场景?
A2A是一个开放协议,定义了一套标准化的消息格式和交互流程,使得不同框架、不同厂商构建的AI Agent(智能体)能够通信和协同工作。它解决了AI Agent之间互操作性缺失的问题,让它们以Agent而非工具的形式相互协作。协议基于JSON-RPC 2.0 over HTTP(S),通过‘Agent Card’进行发现,支持同步请求/响应、流式(SSE)和异步推送通知,并能交换文本、文件和结构化数据。项目由Linux基金会托管,提供Python、Go、JS等官方SDK,并配套完整的文档和示例。采用A2A协议,可以为Agent提供一种通用语言,促进更互联、更强大、更具创新性的AI生态系统。
A2A协议定义了一套标准化的交互机制,使Agent能够:1)通过发布'Agent Card'来发现彼此的能力,Agent Card包含了能力描述和连接信息;2)协商交互模式,包括文本、表单和媒体;3)通过任务管理相关方法(如message/send、task/get、task/cancel等)进行长期任务的协作,支持同步、流式和异步推送;4)在不暴露内部状态、记忆或工具的情况下安全协作。该协议本身不提供可执行文件,而是通过SDK(如a2a-python、a2a-go、a2a-js)为Agent开发提供库支持,开发者可以使用这些SDK将其Agent暴露为符合A2A的服务器,或创建客户端连接其他Agent。
- 使用Python SDK将基于LangGraph构建的Agent部署为A2A服务器,使其能被其他系统调用。
- 在医疗场景中,使用A2A连接多个不同框架的Agent,构建协作式患者分诊系统。
- 企业IT部门需要集成多个供应商的Agent,A2A作为标准协议实现跨供应商的Agent协同。
- 开发者创建A2A客户端,调用远程Agent执行特定任务,如客户服务机器人集成本地订单查询Agent。
- 使用A2A的流式传输和异步推送功能,实现实时对话或长任务进度通知。
这个 Agent 有哪些优点和局限?
- 开放、社区驱动的标准,Linux基金会托管,支持多厂商协作。
- 提供多种语言官方SDK,降低接入门槛。
- 支持灵活的交互模式(同步、流式、异步),适应不同场景。
- 协议设计考虑了企业级需求的安全、认证和可观测性。
- 作为新协议,生态尚在早期,实际应用案例可能有限。
- 需要开发者学习新协议和SDK,有学习成本。
- 运行需依赖网络和HTTP服务,不适合离线环境。
- 目前不支持动态方法发现(如QuerySkill()),灵活性和扩展性受限。
如何安装或部署这个 Agent?
A2A本身是协议规范,无需安装。但为了使用它,需要选择相应的SDK并安装依赖。官方提供了多种语言的SDK:Python SDK (pip install a2a-sdk)、Go SDK (go get github.com/a2aproject/a2a-go)、JS SDK (npm install @a2a-js/sdk)、Java SDK (通过Maven)、.NET SDK (dotnet add package A2A)、Rust SDK (cargo add a2a-lf)。安装后,还需要阅读官方文档和示例来了解如何实现A2A服务器或客户端。
如何使用这个 Agent?
首先,查看官方文档和协议规范(https://a2a-protocol.org)。然后,根据语言选择合适的SDK,并按照文档创建符合A2A的Agent服务器或客户端。参考官方示例(a2a-samples仓库)快速上手。例如,使用Python SDK,你可以从a2a.server导入A2ARequestHandler和A2AServer,定义你的Agent的逻辑,然后启动服务器。