前言¶
在 DSH 中做智能体协作时,常需要让多个 agent 在同一项目里互相发现、发送消息,并保留可查询的项目历史。已有做法通常要自己处理 socket、在线状态、消息幂等和附件预算。@dpskh/a2a 把这些能力做成一个 DSH 插件:挂载后提供 hub、mesh client、a2a 工具和 /a2a 命令面。
下面按能力、配置、用法和限制介绍这个插件。
这是什么¶
@dpskh/a2a 是用于 DeepSeek Harness 的 Agent2Agent 实时 mesh 插件,维护者为 dpskh,许可证为 MIT。资料中给出的挂载版本是 0.3。
它把以下能力放在一个入口插件里:
ctx.a2aHub:项目注册表、不可变消息历史、可选 hub server 与实时 WebSocketctx.a2aMesh:每个已加入 agent 一个 WebSocket presence,并串行注入 inbound messagesa2a_peers、a2a_message、a2a_history工具/a2a hub、project、connect、disconnect、status、peers、history、help命令面
它面向的是可信私有网络内的实时协作。
核心功能¶
Hub 与消息¶
hub 侧提供项目注册表和不可变消息历史。消息支持基于 messageId 的幂等处理。文本与附件共享 4 MiB decoded-content budget,单条消息最多八条附件。
Mesh client¶
mesh client 侧为每个已加入 agent 维护一个 WebSocket presence,并把 inbound messages 串行注入。presence 基于 WebSocket 连接状态;仅当前在线接收者可被直发,没有离线投递或持久 roster。
工具¶
下面三个工具面向模型侧:
a2a_peers:查看当前项目内当前存在的 roster namesa2a_message:向target.type=agent/name或target.type=project发送消息,可带replyTo、附件路径和messageIda2a_history:通过before、after、limit或from查看过去项目消息
命令面¶
/a2a 命令面包括:
/a2a hub/a2a project/a2a connect/a2a disconnect/a2a status/a2a peers/a2a history/a2a help
资料中给出的命令示例包括:
/a2a connect <project> [--as <name>]/a2a status/a2a peers/a2a history
浏览器协作控制¶
@dpskh/ui-a2a 提供协作控制。浏览器消费 Host a2a.snapshot,不直接连接 Hub WebSocket。
安装与启用¶
已核实资料未给出可直接照抄的官方安装命令,因此本文不补充安装命令。
资料中给出的启用方式是:挂载 @dpskh/a2a 0.3,即可获得实时 A2A mesh。启用 hub 和 mesh 前,还需要将 storage backend 路由到 a2a domain。
典型配置¶
下面是资料中给出的配置示例。hub 配置用于运行可选 hub server;mesh 配置用于声明 mesh client 相关字段。
- id: a2a
name: '@dpskh/a2a'
config:
hub:
host: 127.0.0.1
port: 43123
maxPort: 43223
mesh:
project: main
agentId: main
name: main
autoConnect: true
persistConnections: false
reconnectMs: 500
其中:
hub.host、hub.port、hub.maxPort用于配置可选 hub servermesh.project、mesh.agentId、mesh.name、mesh.autoConnect、mesh.persistConnections、mesh.reconnectMs为资料中列出的 mesh 配置项
如果复制了 0.2 配置,persistBindings、autoRejoin、pollIntervalMs、heartbeatMs、caps 这些 0.2 mesh fields 会被忽略。
典型用法¶
先连接项目,再查看当前 peer,然后发送消息,最后按需查询历史。
1、连接项目:
/a2a connect <project> [--as <name>]
2、查看当前项目内当前存在的 roster names:
/a2a peers
也可以调用工具:
a2a_peers
3、向当前 peer 或项目发送消息:
a2a_message
可携带 target.type=agent/name 或 target.type=project、replyTo、附件路径和 messageId。
4、查看过去项目消息:
/a2a history
也可以调用:
a2a_history
参数可通过 before、after、limit 或 from 控制范围。
5、查看或断开:
/a2a status
/a2a disconnect
/a2a help
信任模型与限制¶
这个插件假设运行在完全可信的私有网络中:hub endpoints 不认证调用者,调用方提供的 project 和 member identities 为可信声明。不要把它暴露到公网或不可信网络。
已知限制包括:
- 仅当前在线接收者可直发,无离线投递或持久 roster
- mesh client 一次只连接一个 hub
delivered、failed、disconnected等 delivery outcomes 仅内存保存,不持久化- inbound attachments 写入系统临时目录
- 0.2 mesh fields
persistBindings、autoRejoin、pollIntervalMs、heartbeatMs、caps被忽略以兼容复制的 0.2 配置 package.json标记private: true
适用场景与注意¶
适合以下情况:
- 在 DSH 中让多个 agent 于同一项目内实时通信
- 需要查看当前在线 roster
- 需要查询项目内过往消息
- 需要在浏览器中使用
@dpskh/ui-a2a协作控制
需要注意:
- 插件以当前 dsh 进程权限运行,安装前应检查源码与许可证
- 许可证为 MIT
- 资料未给出官方安装命令,使用时以仓库文档为准
- DSH 插件生态强调“一切皆插件”,社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系
链接¶
- GitHub: https://github.com/dpskh/dsh-a2a
- 社区目录线索: https://www.skillhub.cn/plugins/dpskh/dsh-a2a