前言¶
在 DeepSeek Harness(DSH)里,根会话往往会在模型先给出一段总结后准备结束本轮,而子智能体或本轮启动的后台任务可能仍在运行、结果尚未回到收件箱。原生收尾不会为此多等,容易出现「结论先写出来、异步结果晚到」的割裂:折叠后的「仅最终回答」里看不到后来才到的审查、验证或环境问题。
下面介绍社区插件 dsh-wait-reply(维护者 melo7up,分类:工作流)。它在根轮次即将结束且收件箱仍空时,借助宿主已有的 subagents.waitForChildren 并观察本轮后台任务,把控制留在同一轮;若在已输出无工具调用的正文之后又收到子结果或后台通知,会触发一次带来源标识的内部汇总请求,要求模型完整重述结论,而不是把异步结果悄悄丢弃。
这是什么¶
dsh-wait-reply 是一个无依赖的本地 bundle 插件,通过 Cordis patch 挂入 DSH 的收尾流程。一句话定位:在根会话准备结束时等待子智能体与本轮后台任务结束,必要时在同一轮内补一次完整汇总。
项目托管于 GitHub(melo7up/dsh-wait-reply),社区目录页为 skillhub.cn 上的条目。当前 package 版本为 0.1.1,许可证 MIT,声明的 DSH 引擎版本为 0.2.2-rc.1。README 写明:若 DSH 官方日后提供同等能力,可停用或卸载本插件即可。
核心功能¶
插件行为可归纳为三件事(均来自项目 README):
-
收尾前等待
根会话即将结束、下一步收件箱为空、且未被取消时,调用宿主subagents.waitForChildren,同时观察由该会话在本轮启动的后台任务,直至它们结束。 -
控制交回原轮次
子结果、后台任务通知或用户新输入到达后,把控制交回原来的轮次;若仍有工作,下次准备结束时再等。插件不等待其他会话、无主或更早轮次启动的后台任务,也不读取或消费任务输出——结果仍由宿主原有的通知与job_output交给模型。 -
总结后的完整汇总
若本轮已输出不带工具调用的正文,之后又收到子结果或后台通知,在处理完结果后注入一条来源为dsh-wait-reply的内部汇总请求,附上先前回复,要求完整重述结论、改动、验证及遗留问题。每批结果只请求一次汇总(增加一次模型调用);普通问答不额外汇总。用户新输入优先于对旧回复的汇总。
其他约束与说明(便于评估是否启用):
- 内部汇总不会伪装成人类输入,也不改写原始回复;不取消子智能体或后台任务,不调用目标完成;
AGENTS.md无需修改。 - 本轮仍在运行的后台任务(包括不会自行结束的命令)会阻止收尾;插件不会替模型自动结束任务。
- 没有
jobs服务的宿主仍保留子智能体等待与完整汇总;waitForChildren无取消参数。停用插件时只解除插件自己的等待并卸下监听,宿主侧等待在子工作结束后自行结束,不会因插件停用而取消子智能体。 - 版本或
waitForChildren接口不匹配时,插件保持未激活并写警告,会话回到原生收尾,不阻止 DSH 启动。
安装与启用¶
本插件是无依赖本地 bundle。README 给出的安装方式如下。
在非正在使用的桌面 profile 上,可用 CLI 从本地绝对路径添加:
dsh plugin --profile <name> add /absolute/path/to/dsh-wait-reply
正在运行的 DSH 桌面端独占 desktop profile 时,应在应用内通过 设置 → 插件 从本地目录安装。完全退出应用后,才可用上述命令管理该 profile。
关闭:在设置里停用插件行 dsh-wait-reply。有热重载的环境会立刻解除等待与监听;无热重载时管理器可能提示需重启。关闭插件不会改变 DSH「收起后显示的回复」偏好(按轮次生效,不能合并已分开的多轮);需要显示效果时可手动设为「仅最终回答」,那只影响展示,不代替本插件逻辑。
卸载:设置里移除 bundle dsh-wait-reply,或在 profile 未被运行中的桌面端占用时:
dsh plugin --profile <name> remove dsh-wait-reply
卸载不取消子智能体,也不删除已有会话记录。
典型用法与验收场景¶
README 未提供独立业务配置项;启用插件后行为由 DSH 收尾与子智能体、后台任务的使用方式决定。下列为 README 记载的合成验收(2026-11-10,本机 DSH 桌面端、tokenhub/deepseek-flash(Max)、「仅最终回答」模式),可用作理解插件与显示模式如何配合:
- 在本轮启动后台任务(例如
sleep/printf)。 - 模型先输出审查草稿,再输出独立补充。
- 异步结果返回后,插件触发完整汇总。
- 最终折叠后同时显示 Standards、Spec、验证及新返回的问题;会话日志显示只有一个轮次、一次工具调用和一次内部汇总请求。
该验收未操作真实项目数据。最终措辞与完整度仍依赖模型遵循汇总请求;插件不撤回已流出的正文,也不修复已结束的旧轮次。
开发者可在仓库内运行测试(不读取真实会话):
node --test test/compat.test.mjs
node test/isolate.mjs --packages /path/to/node_modules/@deepseek-ai
或使用 npm script:
npm test
适用场景与注意¶
适合谁
- 经常在同一根轮次里派发子智能体或后台命令,并希望收尾前等结果回到同一轮的工作流使用者。
- 使用「仅最终回答」或类似展示方式,希望最后一屏同时包含先写的草稿与迟到的子智能体/后台结论的开发者。
务必注意
- 插件以当前 DSH 进程权限运行;安装前请自行查看源码与 MIT 许可证,确认 bundle 来源可信。
- 仅 README 写明在 DSH
0.2.2-rc.1(及所述隔离运行时、桌面端合成场景)验证;Grok 等其它模型、审批流、token 上限、复杂嵌套、外部子智能体后端、应用重启后的恢复等列为「未验证」,不宜默认支持。 - 没有热重载的 profile 上,等待过程中未必能即时热停用。
- skillhub.cn 为社区插件目录,与 DeepSeek / 幻方无官方从属关系;DSH 生态理念是「一切皆插件」,本插件是其中一条工作流增强路径。
结尾¶
dsh-wait-reply 针对「根轮次过早收尾、异步结果晚到」这一具体问题,在兼容的 DSH 版本上把等待与可选的完整汇总收进同一轮,并与宿主原有的子智能体、任务通知机制对齐。需要了解分类与简介时,可打开目录页 https://www.skillhub.cn/plugins/melo7up/dsh-wait-reply;阅读行为细节、安装命令与测试说明时,以 GitHub 仓库 README 为准:https://github.com/melo7up/dsh-wait-reply。