闲社服务运行正常AI智能体自动化平台
f

A2A桥接固件

技能标识:firm-a2a-bridge

>

作者:admin | 来源记录:ClawHub
登记来源
ClawHub
版本
V 2.0.0
检测标记
后台标记通过
免费
免费获取
0
收藏
来源与检测标记为平台登记信息,并不代表已展示可复核的检测报告。使用前请核对版本、依赖和所需权限,建议先在隔离环境中运行。
概述
安装方式
版本历史

A2A桥接固件

firm-a2a-bridge

⚠️ AI生成内容 — 部署至生产环境前需人工验证。

目的

此技能为OpenClaw实现了A2A协议RC v1.0(智能体间通信协议),使智能体能够通过标准化的MCP接口实现相互发现、任务交换和推送通知接收。

覆盖的缺口:

缺口严重程度工具
G1 — 无法生成智能体卡片严重openclawa2acardgenerate
G2 — 无法验证智能体卡片
严重 | openclawa2acardvalidate |
| G3 — 无法发送A2A任务 | 高 | openclawa2atask_send |
| G4 — 无法跟踪A2A任务 | 高 | openclawa2atask_status |
| G5 — 无法推送A2A通知 | 中 | openclawa2apush_config |
| G6 — 无法发现智能体 | 高 | openclawa2adiscovery |
| G7 — 无法取消任务 | 高 | openclawa2acancel_task |
| G8 — 无法订阅SSE | 高 | openclawa2asubscribe_task |

工具

openclawa2acard_generate

根据SOUL.md文件生成.well-known/agent-card.json文件。 自动从SOUL.md的前置元数据和正文中提取身份、技能、能力和安全方案。

参数:

  • - soulpath(字符串,必填)— SOUL.md文件的路径
  • baseurl(字符串,必填)— 智能体可访问的基础URL
  • outputpath(字符串,可选)— JSON文件的输出路径
  • capabilities(字典,可选)— A2A能力(流式传输、推送通知)
  • securityschemes(字典,可选)— OAuth2/apiKey/http方案
  • extensions(列表,可选)— A2A扩展声明
  • sign(布尔值,可选)— 使用JCS+JWS签名卡片
  • signingkey(字符串,可选)— 签名密钥(在输出中隐藏)
  • defaultinputmodes(列表,可选)— 默认输入MIME类型
  • defaultoutput_modes(列表,可选)— 默认输出MIME类型

示例:
json
{
name: openclawa2acard_generate,
arguments: {
soul_path: ./souls/ceo/SOUL.md,
base_url: https://agents.example.com/ceo
}
}

openclawa2acard_validate

根据A2A v1.0 RC规范验证智能体卡片。 检查必填字段、URL格式、技能结构、能力和安全方案。

参数:

  • - cardpath(字符串,可选)— agent-card.json文件的路径
  • cardjson(字典,可选)— 内联智能体卡片(替代card_path)

openclawa2atask_send

向远程A2A智能体发送消息/任务。 在A2A生命周期中创建任务(已提交→处理中→已完成/失败)。 包含针对localhost URL的SSRF保护。

参数:

  • - agenturl(字符串,必填)— 目标智能体的URL
  • message(字符串,必填)— 要发送的文本消息
  • contextid(字符串,可选)— 用于分组任务的上下文ID
  • blocking(布尔值,可选)— 等待完成
  • metadata(字典,可选)— 附加元数据

openclawa2atask_status

获取任务状态或列出任务。 映射A2A协议的GetTask/ListTasks操作。

参数:

  • - taskid(字符串,可选)— 特定任务ID(GetTask)
  • contextid(字符串,可选)— 按上下文过滤(ListTasks)
  • include_history(布尔值,可选)— 包含消息历史

openclawa2apush_config

A2A推送通知webhook配置的CRUD操作。 支持创建、获取、列出、删除,并带有SSRF保护。

参数:

  • - taskid(字符串,必填)— 相关任务的ID
  • action(字符串)— create、get、list、delete
  • webhookurl(字符串,可选)— webhook的URL(创建时必填)
  • authtoken(字符串,可选)— 用于投递的Bearer令牌
  • configid(字符串,可选)— 配置ID(获取/删除时必填)

openclawa2acancel_task

取消正在执行的A2A任务(CancelTask RC v1.0)。 如果任务已处于终态则返回错误。

参数:

  • - task_id(字符串,必填)— 要取消的任务ID

openclawa2asubscribe_task

通过SSE订阅任务更新(SubscribeToTask RC v1.0)。 广播TaskStatusUpdateEvent和TaskArtifactUpdateEvent。

参数:

  • - taskid(字符串,必填)— 要监视的任务ID
  • callbackurl(字符串,可选)— 事件回调URL

openclawa2adiscovery

通过智能体卡片端点或本地SOUL.md扫描发现A2A智能体。

参数:

  • - urls(字符串列表,可选)— 要扫描的智能体URL
  • soulsdir(字符串,可选)— 包含SOUL.md文件的本地目录
  • checkreachability(布尔值,可选)— 检查URL的可访问性

架构

SOUL.md 文件 A2A协议 v1.0 RC
│ │
├── card_generate ──► .well-known/agent-card.json
│ │
├── card_validate ◄── 规范验证(8项检查)
│ │
├── task_send ────────► SendMessage(已提交→处理中→已完成)
│ │
├── task_status ──────► GetTask / ListTasks
│ │
├── cancel_task ──────► CancelTask(→已取消)
│ │
├── subscribe_task ───► SubscribeToTask(SSE事件)
│ │
├── push_config ──────► CRUD webhook配置(SSRF安全)
│ │
└── discovery ────────► 智能体卡片端点探测 + 本地SOUL.md扫描

安全性

  • - 路径遍历保护:所有文件路径均经过Pydantic验证
  • SSRF保护:tasksend和pushconfig中禁止localhost/127.0.0.1/0.0.0.0/::1 URL
  • URL方案验证:仅接受http/https
  • 令牌掩码:auth_token被掩码(仅显示最后4个字符)
  • 输入验证:所有参数均经过Pydantic v2严格约束验证

测试

bash
python -m pytest tests/test_smoke.py -k TestA2aBridge -v

17个测试覆盖:

  • - 从有效SOUL.md生成卡片(含JCS+JWS签名)
  • 处理缺失文件
  • 路径遍历保护
  • 有效/无效卡片验证(检测已弃用的v0.4.0模式)
  • 带SSRF保护的任务发送
  • 任务取消(CancelTask)
  • SSE订阅(SubscribeToTask)
  • 任务状态(GetTask/ListTasks)
  • 推送通知配置(CRUD + SSRF)
  • 本地智能体发现

标签

skill ai

通过对话安装

以下为平台配置的接入选项,并非逐项实测通过。能否安装取决于客户端支持、技能来源和运行环境:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 firm-a2a-bridge-1776287710 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 firm-a2a-bridge-1776287710 技能

通过命令行安装

skillhub install firm-a2a-bridge-1776287710

下载

⬇ 下载 firm-a2a-bridge v2.0.0(免费)

文件大小: 3.43 KB | 发布时间: 2026-4-16 16:40

v2.0.0 最新 2026-4-16 16:40
A2A RC v1.0 rewrite: 8 tools, cancel, subscribe SSE, push CRUD, JWS signing
返回顶部