当前位置: 首页 > news >正文

AI-Agent 中 Agent2Agent(A2A)详解

主题:AI Agent 系统中的 Agent-to-Agent / Agent2Agent(A2A)通信、任务委托、能力发现、流式状态更新与 Artifact 输出。
适用场景:企业级 Agent 编排、多 Agent 协作、A2A + MCP 架构设计、AI Agent 工程落地。

动态展示效果如下:


1. A2A 是什么?

A2A = Agent2Agent / Agent-to-Agent Protocol,可以理解为 AI Agent 之间的通信与协作协议。

它解决的问题是:

一个 Agent 如何发现另一个 Agent 的能力、把任务委托给它、跟踪任务状态,并拿回结构化结果。

A2A 的重点不是“聊天”,而是任务级协作

  • 能力发现:通过 Agent Card 描述 Agent 会什么、支持什么接口、需要什么认证。
  • 任务委托:Client Agent 将任务发送给 Remote Agent。
  • 状态追踪:任务有生命周期状态,例如 submitted、working、input required、completed、failed。
  • 流式更新:长任务可通过 SSE 或异步通知持续返回进度。
  • 结果交付:Remote Agent 生成 Artifact,Client Agent 汇总后输出给用户。

2. A2A 与 MCP 的区别

A2A 和 MCP 经常一起出现,但它们解决的是不同层次的问题。

协议解决的问题典型通信对象例子
A2AAgent 如何调用 / 委托另一个 AgentAgent ↔ AgentSupervisor Agent 调 Research Agent
MCPAgent 如何调用工具、数据源、API、资源Agent ↔ ToolResearch Agent 调搜索工具、数据库、文件系统

一句话:

A2A 负责 Agent 找 Agent;MCP 负责 Agent 用工具。

典型组合:

User ↓ Supervisor Agent ↓ A2A Research Agent / Code Agent / Report Agent ↓ MCP Search / Database / API / File System ↓ Artifact ↓ Final Response

3. A2A 的核心对象模型

对象含义工程作用
A2A Client发起请求的一方通常是主控 Agent、Supervisor、Orchestrator
A2A Server / Remote Agent接收任务并执行的一方一个独立 Agent 服务
Agent CardAgent 能力说明书暴露身份、技能、接口、认证、模态能力
Message通信消息承载用户输入、Agent 回复或中间交互
Part消息或结果中的最小内容单元文本、文件、结构化数据等
Task一次任务执行单元有 taskId、状态、历史、结果
Artifact任务产物报告、代码、图片、表格、JSON、文件等
Streaming流式更新机制长任务实时返回状态和部分结果
Push Notification异步通知适合长时间任务或断开连接场景

4. 标准 A2A 执行流程

UI / AppTool / MCP / APIRemote AgentClient Agent / SupervisorUserUI / AppTool / MCP / APIRemote AgentClient Agent / SupervisorUser提出复杂任务读取 Agent Card返回能力、技能、接口、认证方式SendMessage / SendStreamingMessageTask submittedTask working调用工具、数据库、MCP Server 或业务系统返回执行结果Streaming status updateArtifact updateTask completed汇总结果并输出

5. A2A 动态链路拆解

Step 1:能力发现

Client Agent 先读取 Remote Agent 的 Agent Card。

Agent Card 通常包含:

  • Agent 名称
  • Agent 描述
  • 支持的技能
  • 服务端点
  • 认证方式
  • 支持输入 / 输出模态
  • 是否支持 streaming
  • 是否支持 push notification

示例:

{"name":"Research Agent","description":"用于资料检索、摘要、事实校验的远程 Agent","skills":[{"id":"research","name":"Deep Research","description":"执行长任务资料研究并返回结构化报告"}],"capabilities":{"streaming":true,"pushNotifications":true}}

Step 2:任务发送

Client Agent 选择合适的 Remote Agent 后发送任务。

{"method":"SendMessage","params":{"message":{"role":"ROLE_USER","parts":[{"text":"请生成一份新能源汽车行业分析报告"}]}}}

Step 3:任务执行

Remote Agent 接收任务后进入工作状态。它可能会:

  • 调用内部工具
  • 调用 MCP Server
  • 查询数据库
  • 调用企业 API
  • 请求人工确认
  • 生成中间结果
  • 生成最终 Artifact

Step 4:流式状态更新

长任务不能只等最终结果,通常需要实时反馈。

典型状态流:

TASK_STATE_SUBMITTED → TASK_STATE_WORKING → TASK_STATE_INPUT_REQUIRED → TASK_STATE_WORKING → TASK_STATE_COMPLETED

如果任务失败:

TASK_STATE_SUBMITTED → TASK_STATE_WORKING → TASK_STATE_FAILED

Step 5:Artifact 返回

Artifact 是 Remote Agent 的实际交付物,例如:

  • report.md
  • analysis.json
  • chart.png
  • code.py
  • summary.txt
  • dashboard.html

示例:

{"artifactId":"artifact-report-001","name":"industry_report.md","parts":[{"text":"# 新能源汽车行业分析报告\n..."}]}

6. A2A 架构分层

┌────────────────────────────────────────────┐ │ User / Application UI │ ├────────────────────────────────────────────┤ │ Supervisor Agent / Orchestrator │ │ - 任务拆解 │ │ - Agent 选择 │ │ - 多 Agent 编排 │ ├────────────────────────────────────────────┤ │ A2A Client Layer │ │ - 读取 Agent Card │ │ - SendMessage / SendStreamingMessage │ │ - GetTask / SubscribeToTask │ ├────────────────────────────────────────────┤ │ A2A Protocol Layer │ │ - Message │ │ - Task │ │ - Part │ │ - Artifact │ │ - Streaming / Push │ ├────────────────────────────────────────────┤ │ Remote Agent Layer │ │ - Research Agent │ │ - Code Agent │ │ - Data Agent │ │ - Business Agent │ ├────────────────────────────────────────────┤ │ Tool / MCP / API / Database Layer │ └────────────────────────────────────────────┘

7. A2A 三种常见协作模式

7.1 Supervisor + Worker 模式

最常见,适合企业系统。

Supervisor Agent ├── Research Agent ├── Data Agent ├── Code Agent ├── Report Agent └── Review Agent

优点:

  • 路由清晰
  • 权限容易管理
  • 日志容易追踪
  • 便于加入人审和安全策略

缺点:

  • Supervisor 可能成为瓶颈
  • 调度逻辑复杂

7.2 Peer-to-Peer 模式

Agent 之间直接互相委托。

Agent A ↔ Agent B ↔ Agent C

优点:

  • 去中心化
  • 灵活
  • 适合开放生态

缺点:

  • 治理复杂
  • 容易产生循环调用
  • 成本和安全边界更难控制

7.3 Hierarchical 多层模式

适合大型企业或复杂业务系统。

Global Supervisor ├── Research Team Lead │ ├── Web Research Agent │ └── Fact Check Agent ├── Engineering Team Lead │ ├── Code Agent │ └── Test Agent └── Business Team Lead ├── CRM Agent └── Finance Agent

8. A2A 的工程开发重点

8.1 Agent Card 服务

必须让外部 Agent 能发现当前 Agent 的能力。

重点字段:

  • name
  • description
  • skills
  • capabilities
  • endpoints
  • authentication
  • supported input modes
  • supported output modes

8.2 Agent Registry

用于维护 Agent 列表:

agent-registry ├── research-agent ├── code-agent ├── finance-agent ├── hr-agent └── customer-service-agent

Registry 可以是:

  • 静态配置
  • 数据库
  • 服务发现系统
  • 企业 API Gateway
  • 内部 Agent Marketplace

8.3 Router / Planner

Router 决定把任务交给谁。

判断依据:

  • Agent Card 中的 skills
  • 历史成功率
  • 当前负载
  • 权限范围
  • 成本
  • 延迟
  • 用户偏好
  • 安全策略

8.4 Task Store

任务需要可追踪:

taskId contextId status createdAt updatedAt assignedAgent messages artifacts cost traceId

8.5 Streaming Gateway

用于实时输出:

  • SSE
  • WebSocket
  • Push Notification
  • Message Queue

8.6 Observability

生产系统必须记录:

  • taskId
  • contextId
  • traceId
  • agentId
  • latency
  • token usage
  • tool usage
  • retry count
  • error type
  • artifact metadata

8.7 Safety Layer

A2A 系统尤其需要安全控制:

  • Agent 身份认证
  • 调用权限校验
  • Prompt injection 防护
  • 数据脱敏
  • 敏感工具隔离
  • Agent 调用白名单
  • 循环调用检测
  • 成本上限
  • 人工确认机制

9. A2A + MPC 的高级组合

如果结合前面提到的MPC(Model Predictive Control),可以形成更强的多 Agent 决策系统。

核心思想:

Supervisor Agent 不只是把任务分发出去,而是模拟未来多步协作路径,评估成本、风险和成功率,再执行第一步并持续重规划。

流程:

当前任务状态 ↓ 生成多个 Agent 协作方案 ↓ 预测每条方案未来 N 步结果 ↓ 计算 reward / cost / risk ↓ 选择最优方案的第一步 ↓ 执行并观察结果 ↓ 重新规划

适合:

  • 自动化运营
  • 自动数据分析
  • 编程 Agent
  • 金融研究 Agent
  • 复杂业务审批 Agent
  • 企业知识工作流

10. 最小工程实现伪代码

classA2AClient:defdiscover(self,agent_url):returnhttp_get(f"{agent_url}/.well-known/agent-card.json")defsend_message(self,agent_url,message):returnhttp_post(f"{agent_url}/a2a",json={"method":"SendMessage","params":{"message":message}})classSupervisorAgent:def__init__(self,registry):self.registry=registrydefroute(self,user_task):candidates=[]foragentinself.registry:card=A2AClient().discover(agent.url)ifself.match(user_task,card):candidates.append((agent,card))returnself.rank(user_task,candidates)[0]defexecute(self,user_task):agent=self.route(user_task)response=A2AClient().send_message(agent.url,{"role":"ROLE_USER","parts":[{"text":user_task}]})returnresponse

11. A2A 适合哪些业务?

场景A2A 价值
企业知识库不同部门 Agent 协作回答复杂问题
编程 AgentPlanner、Coder、Reviewer、Tester 分工
金融分析数据 Agent、研究 Agent、风控 Agent 协作
电商运营商品 Agent、价格 Agent、广告 Agent、客服 Agent 协作
自动化办公邮件、日历、文档、CRM Agent 联动
数据分析Data Agent、Chart Agent、Report Agent 协作
智能客服售前、售后、订单、物流、知识库 Agent 协同

12. 总结

A2A 是 AI Agent 生态中的Agent 间通信与任务协作标准

它的核心价值是:

  1. 发现能力:通过 Agent Card 知道远程 Agent 能做什么。
  2. 委托任务:Client Agent 可以把任务交给 Remote Agent。
  3. 追踪状态:Task 生命周期让复杂任务可观测。
  4. 流式反馈:长任务可以逐步返回中间状态。
  5. 交付结果:Artifact 让输出结构化、可追踪、可复用。
  6. 保护边界:Agent 可以协作,但不必暴露内部 prompt、memory、tools。
  7. 生态互通:不同框架、不同团队、不同厂商的 Agent 可以互相协作。

最终可以记成:

A2A:Agent ↔ Agent MCP:Agent ↔ Tool Task:协作过程的状态载体 Artifact:最终或中间交付物 Agent Card:Agent 的能力说明书

参考资料

  • A2A Protocol latest specification: https://a2a-protocol.org/latest/specification/
  • What is A2A: https://a2a-protocol.org/latest/topics/what-is-a2a/
  • A2A and MCP: https://a2a-protocol.org/latest/topics/a2a-and-mcp/
  • Key Concepts: https://a2a-protocol.org/latest/topics/key-concepts/
  • Streaming & Asynchronous Operations: https://a2a-protocol.org/latest/topics/streaming-and-async/
  • Protocol Definitions: https://a2a-protocol.org/latest/definitions/
http://www.jsqmd.com/news/1077794/

相关文章:

  • AI能力为什么会失效?该怎么处理?
  • Windows风扇控制终极指南:掌握Fan Control实现静音高效散热
  • 机器狗怎么挑才不踩坑?三款热门 AI 机器狗横评,越疆 Rover X1 凭什么更值得看
  • 从Kolmogorov扩展定理到环路交织:构建无穷维概率空间的数学桥梁
  • Mac NTFS读写终极方案:3分钟免费搞定跨平台文件传输![特殊字符]
  • 关于前端引流长久运营的思考
  • 如何使用ExifToolGUI实现照片批量重命名:从基础操作到高级技巧
  • 芯通康 EMC 整改实战:ESD 静电测试不过?手把手排查 + PCB 整改全流程
  • 三招让你的暗黑破坏神2在现代PC上完美重生:D2DX宽屏高帧率解决方案
  • 初等函数和高等代数中的线性函数定义分歧
  • 靠谱的售后好的糯玉米供应商
  • 打破中医 AI 效验认证难题,知医邦以循证体系筑牢数智诊疗临床底气
  • 工业级遗传算法实战:解决早熟收敛与约束违规
  • Mate Engine:免费开源虚拟桌面伴侣,打造你的专属二次元伙伴
  • 跨国会议纪要怎么整理?在库拉平台用 Grok 快速搞定多语言速记的选型攻略
  • 前端 - React - - useEffect和useLayoutEffect的区别
  • Kimi K2.5实战指南:Agent Swarm如何重构AI编程工作流
  • 【从0到1构建一个ClaudeAgent】协作-自主Agent
  • AI 驱动的智能合约安全审计:从静态分析到漏洞模式识别的工程实践
  • 如何快速批量导出Photoshop图层:终极效率提升指南
  • FanControl:Windows系统风扇控制的智能散热管理方案
  • 5个关键特性揭秘:如何用libtorrent构建高性能BitTorrent应用
  • 从词向量到大模型:NLP 技术演进浅记
  • 你的 AI 助手为什么总是 “掉线“?真正的原因不在网络
  • 终极iOS激活锁绕过指南:免费解锁iPhone 15-16的完整解决方案
  • NXP RW61x Wi-Fi CLI实战指南:从网络连接到电源管理
  • 终极Windows系统优化指南:Win11Debloat让你的电脑重获新生
  • 轻松搞定B站缓存视频:m4s-converter让你珍藏的视频重获新生
  • 3分钟解锁Mac NTFS读写:Free-NTFS-for-Mac开源终极方案
  • 全覆盖路径规划技术革命:如何让机器人实现100%无死角覆盖?