dsh-hive:将 DeepSeek Harness 会话转化为对等协作蜂巢

前言

DeepSeek Harness (DSH) 自带了 subagent 系统:父会话 fork 子代理,共享上下文,任务结束即销毁。这适合处理短期、依赖性强的小任务。

但实际开发中,常需要多个独立、长期运行的顶层会话(例如一个“协调者”会话拆解任务,多个“工人”会话并行处理)彼此协作。DSH 原生的子代理机制无法满足这种对等、长生命周期的协作需求。

dsh-hive 插件解决了这个问题。它将 DSH 的会话转化为一个“蜂巢”,允许一个会话直接向另一个会话发送任务、唤醒对方,并自动接收结果。这种通信发生在顶层会话之间,而非子代理之间。

插件介绍

dsh-hive 是一个 DeepSeek Harness 插件,由开发者 llluchy 维护。它通过暴露两个模型可调用的工具,实现了会话间的 peer-to-peer 通信。

核心价值在于:让多个独立的会话能够像同事一样互相派活,各自维护独立的上下文和历史,互不干扰。

核心功能

插件提供了以下能力:

  1. Wake on delivery:消息到达目标会话的瞬间,立即唤醒对方,开始新的一轮对话。
  2. Automatic result callback:发送任务时,消息会自动携带“任务完成后回传结果”的指令(包含发送者的会话 ID)。接收方只需遵循该约定回复即可。
  3. Task correlation:回调指令中包含任务文本的前 40 个字符作为标签。接收方在回复时会重复该标签,方便发送方区分回复属于哪个任务。
  4. Send-and-yield:发送任务后,发送方的当前回合立即结束(concludesTurn),不会阻塞等待回复。回复会作为新消息在后续回合中到达并唤醒发送方。
  5. No self-delivery:插件禁止向自身会话发送消息,以避免逻辑错误。

安装与启用

dsh-hive 是一个 DeepSeek Harness bundle(声明了 dsh.bundle 并包含 cordis.patch.yml),安装流程与官方教程一致,无需手动修改 harness 代码。

执行以下命令安装:

dsh plugin --profile <name> add github:llluchy/dsh-hive

安装后,可通过 dsh --profile <name> --dump-config 检查配置层中是否包含 dsh-hive。启动 Harness 后,在任何对话中询问 list_sessions,即可看到当前进程中的活跃会话列表。

典型用法

基本流程:发送任务并获取结果

在发送方会话中,指示模型执行以下步骤:

  1. 调用 list_sessions 获取目标会话的 ID。
  2. 调用 send_to_session,将 ID 和任务文本作为参数传入。

发送方发送任务后回合结束。目标会话被唤醒,在自己的上下文中处理任务。由于任务消息自带回调指令,目标会话会自动向发送方回传结果。发送方在下一回合被唤醒,即可看到结果。

批量发送

在规划阶段,先列出目标会话,然后一次性发起多个 send_to_session 调用。所有任务会被送达,发送方在整批任务处理完毕后释放,后续通过回复逐个收到结果。

仅通知,不期待回复

如果发送的消息本身就是回复(例如对前序任务的确认),或者不需要对方回传结果,可将 expectReply 设为 false。此时消息不带回调指令,用于避免陷入回复循环。

工具参考

list_sessions

列出当前 DSH 进程中处于“活跃/加载”状态的会话。

返回值:{ ok, count, sessions: [{ id, status, cwd? }] }

  • Live-only targeting:仅返回当前正在运行的会话。从未打开过的“冷会话”不会出现在列表中,也无法被目标。

send_to_session

将消息直接投递到指定会话,并唤醒对方。

参数 类型 必填 说明
sessionId string 是 目标会话 ID(来自 list_sessions)
message string 是 消息内容
expectReply boolean 否 是否追加自动回调指令。默认 true。设为 false 表示此消息本身是回复或不需要回传。

返回值:成功时返回 { ok: true, deliveredTo, expectReply, senderId };失败时返回 { ok: false, error }(如会话 ID 为空、未知会话或自我发送)。

适用场景与注意

dsh-hive 适用于需要将复杂工作流拆分为多个独立角色长期运行的场景。

注意事项:

  1. 权限限制:list_sessions 和 send_to_session 只能看到当前 DSH 进程中已加载的会话。无法查询或唤醒未打开的会话。
  2. 软约定:回调机制是基于约定的。插件会生成“请回复”的指令,但接收方是否强制执行、是否设置 expectReply: false,取决于接收方模型的决策。没有硬状态机防止死循环。
  3. 无持久化:该插件只负责投递消息和唤醒会话,不维护消息时间线、已读回执或成员列表。

总结

dsh-hive 提供了一种轻量级的对等会话协作方案。它不强制复杂的状态机,而是依赖模型遵循约定的指令流。如果你需要构建多角色、独立上下文的协作系统,可以通过以下链接查看更多细节:

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜