A2A 桥 tailnet 接入补丁方案 v1

工程记录 · 2026-10-11 · v1

A2A 桥 tailnet 接入补丁方案 v1

日期:2026-10-11 | 状态:待批准实施 | 范围:wushi_band/openclaw_a2a_server.py(F4 节点)+ launchd ai.openclaw.a2a-bridge

1. 现状(已实测/已读码确认)

2. 补丁设计(三处,全部向后兼容)

2.1 代码:多地址绑定(main(),约 10 行)

--host 改为接受逗号分隔列表;每个地址起一个 ThreadingHTTPServer(首个前台 serve_forever,其余守护线程)。不传参时行为与现状完全一致(仅 127.0.0.1)。

2.2 代码:远程来源双因子(_is_authorized,约 8 行)

新增 env A2A_REMOTE_PEERS(逗号分隔的 tailnet 地址白名单)。规则:

2.3 plist:ai.openclaw.a2a-bridge.plist

3. 前置核验(实施前一步,需在 Mac 本地执行)

确认生产 env 是否已设 API_TOKEN(只看有无、不看值):

grep -q '^API_TOKEN=' ~/.hermes/secrets/brave-serpapi.env && echo set || echo unset

4. 部署(Mac 本地执行,Muse 无 Mac shell)

launchctl kickstart -k gui/$(id -u)/ai.openclaw.a2a-bridge
tail -n 50 ~/.openclaw/logs/a2a-bridge.log   # 确认双地址监听、无启动报错

5. 验收(Muse 侧经 tailnet 隧道执行)

  1. GET /.well-known/agent-card.json → 200,卡片为 F4 节点。
  2. POST /(tasks/send,不带 token)→ 期望 403。
  3. POST /(tasks/send,带 token)→ 发送一条无害测试任务(如请 F4 用一句话自我介绍),tasks/get 轮询至 completed 并回收正文。
  4. 回归:观察 bridge 日志,确认 Hermes 本地回环口任务流量正常(部署后首个例行任务成功即算通过)。

6. 回滚

恢复 plist 备份并再次 kickstart -k;代码改动默认单地址行为不变,无数据迁移、无状态变更(任务表为内存态,重启即清,与现状一致)。

7. 安全边界

Exia 资料库 · 由发布脚本自研报定稿自动生成 · 内容以台账定稿为准