主题: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 经常一起出现,但它们解决的是不同层次的问题。

协议 解决的问题 典型通信对象 例子
A2A Agent 如何调用 / 委托另一个 Agent Agent ↔ Agent Supervisor Agent 调 Research Agent
MCP Agent 如何调用工具、数据源、API、资源 Agent ↔ Tool Research 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 Card Agent 能力说明书 暴露身份、技能、接口、认证、模态能力
Message 通信消息 承载用户输入、Agent 回复或中间交互
Part 消息或结果中的最小内容单元 文本、文件、结构化数据等
Task 一次任务执行单元 有 taskId、状态、历史、结果
Artifact 任务产物 报告、代码、图片、表格、JSON、文件等
Streaming 流式更新机制 长任务实时返回状态和部分结果
Push Notification 异步通知 适合长时间任务或断开连接场景

4. 标准 A2A 执行流程

UI / App Tool / MCP / API Remote Agent Client Agent / Supervisor User UI / App Tool / MCP / API Remote Agent Client Agent / Supervisor User 提出复杂任务 读取 Agent Card 返回能力、技能、接口、认证方式 SendMessage / SendStreamingMessage Task submitted Task working 调用工具、数据库、MCP Server 或业务系统 返回执行结果 Streaming status update Artifact update Task 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. 最小工程实现伪代码

class A2AClient:
    def discover(self, agent_url):
        return http_get(f"{agent_url}/.well-known/agent-card.json")

    def send_message(self, agent_url, message):
        return http_post(
            f"{agent_url}/a2a",
            json={
                "method": "SendMessage",
                "params": {
                    "message": message
                }
            }
        )

class SupervisorAgent:
    def __init__(self, registry):
        self.registry = registry

    def route(self, user_task):
        candidates = []
        for agent in self.registry:
            card = A2AClient().discover(agent.url)
            if self.match(user_task, card):
                candidates.append((agent, card))
        return self.rank(user_task, candidates)[0]

    def execute(self, user_task):
        agent = self.route(user_task)
        response = A2AClient().send_message(
            agent.url,
            {
                "role": "ROLE_USER",
                "parts": [{"text": user_task}]
            }
        )
        return response

11. A2A 适合哪些业务?

场景 A2A 价值
企业知识库 不同部门 Agent 协作回答复杂问题
编程 Agent Planner、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/
Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐