前言¶
下面介绍 dsh-a2a-agent。它面向 DeepSeek Harness(DSH)插件环境,把一个 DSH 智能体转换为 A2A 兼容的 Agent:对外提供 Agent Card、JSON-RPC 2.0 端点,并支持大模型驱动的对话回复。对需要在 DSH 之外调用该智能体的系统来说,它提供了一个标准化的入口。
这是什么¶
dsh-a2a-agent 由 fangweixuan26-hash 维护,许可证为 MIT,要求 Node.js >= 20。
它提供两种形态:
- npm 包形态:可挂载到宿主组合。
- 动态插件形态:可加载客户端侧状态卡片;首次运行含 Client 代码的 Package 需要在 UI 里批准。
核心功能¶
下面列出已核实的能力:
- Agent Card 自动发现
- JSON-RPC 2.0 端点
- 大模型驱动的对话回复
- 实时状态卡片
- 模型失败或不可用时,降级为
[A2A echo]确定性回显 - 复用宿主
webServer,不抢端口 - 所有副作用挂载在 Cordis fiber 上
- CORS 开箱即用
- 支持以下 JSON-RPC 方法:
message/sendmessage/streamtasks/gettasks/cancel
安装与启用¶
组合包安装:
dsh plugin add dsh-a2a-agent
也可以使用 npm 包形态手动挂载:
pnpm add dsh-a2a-agent
然后在宿主组合中添加:
- id: a2a-agent
name: dsh-a2a-agent
如需启用流式,可在 npm 包形态的 cordis.yml 中配置:
config:
enableStreaming: true
启用后,message/stream 可用于 SSE 事件流返回。关闭 enableStreaming 时,message/stream 会返回 -32601 Method not found。
典型用法¶
查看 Agent Card¶
curl http://127.0.0.1:3080/.well-known/agent.json
这条命令用于获取 Agent Card。
查看状态¶
curl http://127.0.0.1:3080/a2a/status
这条命令用于查看端点状态信息。
调用 JSON-RPC 方法¶
向 POST /a2a 提交 JSON-RPC 2.0 请求,可按方法调用:
message/send:发送消息tasks/get:查询任务message/stream:获取 SSE 事件流,需要启用流式tasks/cancel:取消任务
适用场景与注意¶
适合需要把 DSH 智能体接入外部 A2A 客户端、需要统一 Agent Card 发现,或需要查看运行状态的场景。
注意:
- 任务、消息、工件均存储于进程内存,插件停止时自动清空。
- 模型失败或不可用时,会降级为
[A2A echo]确定性回显。 - npm 包形态不带内置 Client 卡片,使用
/a2a/statusHTTP 端点替代。 - 当前未实现:子代理调度、任务持久化、认证、npm 包 Client 卡片。
- 插件以当前 dsh 进程权限运行;安装前应检查源码和 MIT 许可证。
链接¶
GitHub 仓库:
https://github.com/fangweixuan26-hash/dsh-a2a-agent
已核实资料未提供目录页 URL,因此这里不列目录页链接。