DSH 电源(dsh-power):三档可控的重启与关闭

前言

在 DeepSeek Harness(DSH)里改配置、换插件或让 Host 半身生效,历来常见做法是杀进程或关终端再开。后台任务与正在进行的 AI 回合会被粗暴打断,工具调用结果往往不可知;同时跑多路 AI 时,也很难判断谁还在收尾、谁已被中断。

DSH 电源(仓库 DX12xyz/dsh-power,包名 @local/dsh-power)把「重启 / 关闭 DSH」做成有语义、可协调、可恢复的操作:人类在侧边栏一点即可选择等待、中断或强制;AI 也可通过同名工具走同一套流程。重启前后有检查点与恢复报告,并对外提供 resumableToolCalls 服务,供其他插件挂起工具调用到下次启动再回填结果。插件由社区维护者 DX12xyz 发布,分类为客户端,许可证 MIT;社区插件目录见 SkillHub 插件页,源码见 GitHub。

这是什么

DSH 电源是 DSH 的客户端插件:在侧边栏提供「重启 / 关闭」入口,Host 侧注册五个 restart_dsh_* 工具与 restart-dsh skill,并负责跨重启检查点、恢复通知与可选的逃生舱联动。

维护者文档写明:本机在 DSH 0.2.1-rc.5(Web,Windows)上验证过;支持 Web + Desktop(Windows)。当前版本 1.8.2,不发布到 npm,通过 git、本地目录或自行 npm pack 的 tgz 安装。

核心功能

三档重启与三档关闭

重启与关闭共用「等待 / 中断 / 强制」三档语义,多路请求按「强制 > 点名 > 阻塞等待」合并升级。

  • 等待:阻塞等待所有其他运行中 AI 完成当前回合后再执行;不中断任何 AI,人类界面与 AI 侧均最推荐。
  • 中断(点名):向未就绪的运行中 AI 广播插话,要求其停止派生子代理/工具并进入就绪;默认最多等 120 秒(可在设置页改 rollCallWaitMs,0 表示永久等待),到点仍会继续并如实记录未就绪的 AI。
  • 强制:立即中断未就绪 AI 并执行;人类侧需红色警告下长按确认 5 秒;AI 侧需先 restart_dsh_force_safeguard 上保险,再 restart_dsh_force_dangerous 执行,且须审批通过并消费保险,无保险不会重启。

关闭流程同样三档,但只退出、不再启动;等待模式有硬上限(默认 5 分钟,shutdownMaxWaitMs,0 为无限)。强制模式在等待超时后会通过独立 detach 回收器强杀 Host(Windows 为 taskkill /F,POSIX 为 SIGKILL),再按模式尝试重新拉起或结束。

人类入口与 AI 工具

侧边栏底部出现「DSH电源」按钮(网页版与桌面版共用同一 DOM),菜单仅「重启 / 关闭」。连接状态非 connected 时按钮隐藏。

人类界面 AI 工具 行为摘要
等待 restart_dsh_blocking_wait_safe 等所有其他运行中 AI 完成当前回合后重启
中断 restart_dsh_roll_call_caution 点名就绪后重启
强制 restart_dsh_force_dangerous(须先上保险) 立即中断并重启
— restart_dsh_force_safeguard 为下一次强制调用上保险,仅消费一次
— restart_dsh_status 只读:阶段、运行中 AI、待执行重启/关闭、上次结果;无副作用、无需审批

另有 restart-dsh skill:在插件加载时注册,有重启诉求或同意以重启解决时按其规则选模式。

权限方面:restart_dsh_status 任何权限免审批;等待/点名在 workspace-write 及以上免审批;强制与强制保险仅在完全访问(danger-full-access + approval: never)免审批。人类侧边栏操作不受 AI 权限限制,强制由长按确认,不需要 AI 侧强制保险。

检查点、恢复与可挂起工具调用

重启前写入有界、脱敏检查点;重启后向受影响会话报告未决工具调用、后台任务与恢复状态。这不是进程冻结,不恢复旧进程状态。

resumableToolCalls 服务允许其他插件把一次工具调用挂起到下次启动再回填真实结果,避免平台写入 TOOL_OUTCOME_UNKNOWN。

诊断相关:restart.log、status.json、boot 对账,以及外部 CLI scripts/restart-cli.mjs。

设置与逃生舱联动

插件详情页「电源设置」可调整点名等待时间,写入运行设置并立即生效,不触发插件热重载。

若已安装逃生舱插件(Host 服务 escapePod 存在),关闭对话框会显示「同时关闭正在运行的逃生舱」(默认不勾选)。仅勾选时 DSH 退出前调用 escapePod.shutdown('dsh-power shutdown'),最多等 5 秒,失败只写日志、不阻止关机。重启流程不关闭逃生舱。

安装与启用

要求:文档验证环境为 DSH 0.2.1-rc.5(Web,Windows);Web 与 Desktop(Windows)均可。

方式一:插件页安装(推荐)

  1. 打开 DSH 插件页 →「安装插件」;
  2. 安装源填 https://github.com/DX12xyz/dsh-power,或 git 简写 github:DX12xyz/dsh-power;
  3. 等待安装完成,按提示重启 DSH(Host 半身须重启;Client 半身刷新页面即可)。

方式二:命令行(以 Web profile web 为例)

dsh plugin --profile web add github:DX12xyz/dsh-power

方式三:本地目录(改代码 / 离线)

dsh plugin --profile web add "link:<仓库根目录绝对路径>"

方式四:离线 tgz

在仓库根目录 npm pack 后安装产出的 tgz(示例文件名 local-dsh-power-1.8.2.tgz):

cd <仓库根目录>
npm pack
dsh plugin --profile web add "file:<仓库根目录>/local-dsh-power-1.8.2.tgz"

卸载:

dsh plugin --profile web remove @local/dsh-power

安装后务必重启 DSH。装好判据:

  • Client:侧边栏底部有「DSH电源」,菜单只有「重启 / 关闭」;
  • Host:会话中调用 restart_dsh_status 能返回当前阶段与运行中 AI。

卸载后 $DSH_HOME/.dsh-restart/ 可能残留 checkpoint、status.json 与运行设置,确认不需要时再手动清理。安装后不要在 AI 回合运行期间手工编辑 cordis.patch.yml;改配置优先用插件设置页,或等回合结束后再改。

典型用法

人类最短路径

  1. 侧边栏底部点「DSH电源」,选「重启」或「关闭」。
  2. 重启时模式下拉默认「等待」,可改「中断 / 强制」,可填可选原因(会出现在重启后通知里)。
  3. 确认后:等待档会阻塞到所有其他运行中 AI 完成当前回合再重启;重启期间页面会短暂断开,随后自动恢复。

确认交互要点:等待可在确认框取消;中断需「下一步」后再确认;强制需长按 5 秒,松开、失焦、Escape 等会取消。

AI 最短路径

先只读查状态,再选安全重启:

restart_dsh_status
restart_dsh_blocking_wait_safe

如需强制,顺序为:

restart_dsh_force_safeguard
restart_dsh_force_dangerous

适用场景与注意

适合需要在改配置、装插件或排障时可控地重启或退出 DSH、且希望多路 AI 与工具调用有如实报告与可恢复挂起的用户。

插件以当前 DSH 进程权限运行;安装前应自行查看 GitHub 仓库 源码与 MIT 许可证。SkillHub 上的社区目录与 DeepSeek / 幻方无官方从属关系,安装来源以你填写的 git 地址或本地包为准。

已知限制包括:平台支持 Web + Desktop(Windows);逃生舱为独立包 @local/dsh-escape-pod,本插件不依赖它;五个 AI 工具不声明 timeoutMs,挂起的重启调用仅在重启失败或回合取消时提前返回错误。

结尾

DSH 电源把「杀进程重开」换成等待、中断、强制三档,并在重启前后用检查点与恢复报告交代未决工具与后台任务;人类侧边栏与 AI 工具共用同一语义,强制路径对人类与 AI 分别有长按与审批+保险约束。

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

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

小夜