首页 资讯 下载 教程 Skills 社群

OpenClaw 集成 Agent2Agent (A2A) 协议:跨平台 Agent 通信

什么是 A2A 协议

Agent2Agent (A2A) 协议是 Google 在 Cloud Next 2026 发布的跨平台 Agent 通信标准

  • 让不同公司的 Agent 能够协作
  • 标准化 Agent 间消息格式
  • 包含认证、能力发现、任务分发

A2A 与 MCP 的区别

协议 连接 场景
MCP Agent ↔ 工具 工具使用
A2A Agent ↔ Agent 协作任务

两者互补,一起构成完整 Agent 技术栈。

OpenClaw 当前支持

截至 v2026.4.18,OpenClaw 没有原生 A2A 支持,但可以通过:

  • Webhook 接收 A2A 请求
  • HTTP 客户端发送 A2A 消息
  • MCP 桥接转换 A2A 调用
  • 自定义 Skill 完整实现

预计 OpenClaw v2026.Q3 左右会添加原生 A2A 支持。

方式 1:Webhook 接收 A2A

暴露 A2A 端点

# config.yaml
hooks:
  webhooks:
    enabled: true
    port: 18790
    endpoints:
      - path: "/a2a/inbox"
        token: "$A2A_SHARED_SECRET"
        flow: "a2a-handler"
        contentType: "application/json"

处理 A2A 消息

# workflows/a2a-handler.lobster
name: a2a-handler
args:
  message:
    description: "A2A 消息体"

steps:
  - id: parse
    tool: llm-task
    args:
      prompt: |
        解析 A2A 消息:
        - source_agent: 发送方 Agent
        - task_type: 任务类型
        - capabilities_required: 所需能力
      input: ${message}
  
  - id: validate
    tool: lobster
    args:
      pipeline: "a2a-auth-check ${parse.source_agent}"
  
  - id: execute
    when: ${validate.authorized}
    tool: llm-task
    args:
      agent: "worker"
      prompt: |
        执行 A2A 任务:
        ${parse.task}
  
  - id: respond
    tool: http-post
    args:
      url: "${message.response_url}"
      headers:
        Authorization: "Bearer $A2A_TOKEN"
      body:
        agent_id: "openclaw-agent"
        task_id: "${parse.task_id}"
        status: "completed"
        result: $execute.output

声明能力

为了让其他 Agent 发现你的能力,创建 capabilities 端点:

hooks:
  webhooks:
    endpoints:
      - path: "/a2a/capabilities"
        flow: "a2a-capabilities"
# workflows/a2a-capabilities.lobster
steps:
  - id: return
    tool: http-response
    args:
      body:
        agent_id: "openclaw-my-agent"
        agent_type: "OpenClaw"
        capabilities:
          - name: "code-review"
            description: "审查代码质量、安全性、最佳实践"
            input_schema:
              type: "object"
              properties:
                language: {type: "string"}
                code: {type: "string"}
                focus: {type: "array"}
          - name: "document-translation"
            description: "中英文档互译"
            input_schema:
              type: "object"
              properties:
                source_lang: {type: "string"}
                target_lang: {type: "string"}
                document: {type: "string"}

方式 2:发送 A2A 消息

使用 HTTP 工具

# 发送 A2A 请求到其他 Agent
- id: send-to-partner
  tool: http-post
  args:
    url: "https://partner-agent.com/a2a/inbox"
    headers:
      Content-Type: "application/json"
      Authorization: "Bearer $PARTNER_A2A_TOKEN"
    body:
      agent_id: "openclaw-my-agent"
      target_agent: "partner-agent"
      message_type: "task_request"
      task:
        description: "分析这批销售数据"
        data: ${sales_data}
        deadline: "2026-04-20T18:00:00Z"
      response_url: "https://my-agent.com/a2a/callbacks/${task_id}"

A2A 客户端 Skill(可选)

可以封装成独立 Skill:

skills:
  a2a-client:
    config:
      myAgentId: "openclaw-my-agent"
      defaultToken: "$A2A_TOKEN"

使用:

用户:让合作方的 analytics-agent 分析这份数据

Agent:[调用 a2a-client]
      [向 analytics-agent 发送 A2A 任务]
      [等待回调]
      分析结果已返回:...

方式 3:MCP 桥接

将 A2A 暴露为 MCP 服务器:

# 自定义 MCP 服务器,将 A2A 封装
mcp:
  servers:
    a2a-partner:
      type: "custom"
      command: "node ./mcp-a2a-bridge.js"
      env:
        A2A_ENDPOINT: "https://partner.com/a2a"
        A2A_TOKEN: "$A2A_TOKEN"

让 OpenClaw 像使用普通工具一样调用其他 Agent。

认证和授权

共享密钥

最简单的认证:

a2a:
  authentication:
    type: "shared-secret"
    secret: "$A2A_SHARED_SECRET"

JWT Token

生产环境推荐:

a2a:
  authentication:
    type: "jwt"
    issuer: "my-agent.com"
    audience: "a2a-network"
    privateKey: "~/.openclaw/a2a-key.pem"
    publicKeys:
      partner-agent: "~/.openclaw/partner-public.pem"

授权列表

a2a:
  authorization:
    allowedAgents:
      - "partner-agent"
      - "analytics-agent"
    capabilityAcl:
      "code-review":
        allowedAgents: ["partner-agent"]
      "document-translation":
        allowedAgents: ["*"]  # 允许所有已认证 Agent

实际应用

场景 1:企业内部 Agent 协作

公司内多个部门的 Agent 协作:

财务 Agent(数据分析能力)
销售 Agent(客户知识)
产品 Agent(需求管理)

用户向财务 Agent 提问销售数据异常:
财务 Agent:
  [A2A 调用销售 Agent 获取客户信息]
  [A2A 调用产品 Agent 获取产品信息]
  [综合分析]
  [返回答案]

场景 2:B2B Agent 交易

公司 A 采购 Agent --A2A--> 公司 B 销售 Agent

采购:需要 100 台服务器,预算 50 万
销售:报价 48 万,可 15 天交付
采购:接受,生成合同
销售:发送正式合同

自动完成 B2B 交易。

场景 3:跨框架协作

OpenClaw Agent --A2A--> LangChain Agent
OpenClaw Agent --A2A--> AutoGPT Agent
OpenClaw Agent --A2A--> CrewAI Agent

不同框架的 Agent 通过 A2A 协作。

监控和调试

A2A 消息日志

# 查看 A2A 入站消息
openclaw logs --filter "a2a.inbound"

# 查看 A2A 出站消息
openclaw logs --filter "a2a.outbound"

调试工具

# 测试发送 A2A 消息
openclaw a2a test-send \
  --target "https://partner.com/a2a/inbox" \
  --task "test"

# 测试接收
curl -X POST https://my-agent.com/a2a/inbox \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer token" \
  -d '{"message_type":"task_request",...}'

安全考虑

1. 严格认证

  • 永远验证发送方 Agent 身份
  • 使用强 token,定期轮换
  • 记录所有 A2A 通信

2. 权限最小化

  • 不要给所有 Agent 所有能力
  • 按任务类型授权
  • 限制执行范围

3. 速率限制

a2a:
  rateLimits:
    perAgent: "10/minute"
    global: "100/minute"

4. 输入验证

  • 验证消息结构
  • 拒绝异常格式
  • 记录可疑请求

未来展望

OpenClaw 原生支持(预计 v2026.Q3)

# 预期配置
a2a:
  enabled: true
  agentId: "openclaw-my-agent"
  capabilities: [...]

与 Agentic AI Foundation 标准化

A2A 可能加入 Linux 基金会的 Agentic AI Foundation,与 MCP 一起成为开放标准。

行业采纳

预计 2026 Q4 - 2027 Q1 主流 AI 框架都会支持 A2A。

注意事项

  • A2A 协议 1.0 刚发布,规范可能演进
  • 跨公司 A2A 涉及数据传输,注意合规
  • 生产部署务必使用强认证
  • A2A 调用可能增加延迟,对延迟敏感场景评估
  • 监控成本,A2A 可能间接消耗 Token
  • 保持关注 OpenClaw 原生 A2A 支持的发布
  • 在等待原生支持期间,Webhook 方案已足够实用