前言¶
DeepSeek Harness (DSH) 的插件生态允许开发者扩展主程序的能力。在智能体开发中,经常需要两个独立的顶层会话进行协作。传统的 subagent 机制虽然可以解决任务分发,但在某些场景下,开发者更希望两个 Agent 以对等身份直接交互。dsh-peer-relay 正是为了解决这一需求而生,它提供了一套 Host 端的工具,让普通顶层 Agent 能够向另一个普通顶层会话提交异步任务。
插件定位¶
这是一个由 klpzj 维护的 Host-only 插件,采用 MIT 许可证。它的核心作用是作为两个 DSH 会话间的中继层,实现任务的双向投递与异步结果接收。
核心功能¶
插件提供了五个主要工具,用于管理对等会话和任务:
peer_list:列出与当前会话同工作区的 live 普通顶层会话。peer_call:向同工作区的指定 Session 提交异步任务。peer_create:在当前工作区创建新 peer 会话(可指定agent_preset,默认继承当前会话的 preset)。peer_status:查询当前 Agent 发起的任务状态。peer_cancel:取消当前 Agent 发起的任务。
安装与启用¶
插件通过 DSH 的插件命令安装,安装后需重启 Host 以加载。
dsh plugin --profile web add dsh-peer-relay
典型用法¶
在 DSH Host 环境中,开发者可以按照以下步骤建立对等协作:
- 列出会话:首先使用
peer_list查看当前工作区下有哪些可用的对等会话。 - 创建会话:如果需要新的协作方,使用
peer_create在当前工作区创建一个新的 peer 会话。 - 提交任务:使用
peer_call向目标 Session 提交异步任务。 - 监控与取消:通过
peer_status检查任务执行情况,必要时使用peer_cancel取消任务。
适用场景与注意事项¶
- Host-only:插件仅运行在 DSH Host 内,不包含 Client 或 Web UI。
- 数据持久化:固定使用
~/.dsh/peer-relay.sqlite存储会话与任务状态。 - 会话解析:固定使用 Host 已配置的 Typert
agentlookup 解析会话(包括官方冷恢复路径)。 - 会话类型限制:工具仅向普通顶层会话安装,不向 subagent 安装。
- 功能边界:插件不包含 ACL(访问控制列表)、存储适配器、降级路径或交互协议状态。
- 工作区约束:peer 协作严格面向同项目工作。
peer_list仅返回与主会话 cwd 相同的会话,peer_call拒绝跨工作区目标,peer_create创建的新会话固定落在主会话的 cwd。
总结¶
dsh-peer-relay 为 DSH 插件开发者提供了一种轻量级的会话间通信方案。它不依赖复杂的协议栈,而是通过 SQLite 和 DSH 的基础会话机制实现直连。对于需要多个 Agent 并行处理同一项目任务的开发者,这是一个实用的工具。