前言¶
在 Windows 环境下使用 DeepSeek Harness (DSH) 时,重启服务是一个常见操作。常规做法中,重启后如果看护进程异常或端口探测失败,DSH 可能无法自动恢复,导致对话中断。
mandarin715/dsh-autostart 是一个 Windows 专用的 DSH 插件。它通过常驻看护进程接管重启逻辑,解决了“重启失败导致 DSH 停摆”的问题。同时,它提供无控制台窗口的运行环境,并支持一键开机自启。
核心功能¶
- 一键开机自启:通过写入注册表实现开机自动运行。
- 一键重启且保证恢复:重启失败时,插件会拒绝关闭 DSH,确保服务始终在线。
- 常驻看护进程无控制台窗口:DSH 依附于隐藏控制台启动,避免弹窗。
- 服务状态监控与端口探测:实时探测服务状态。
- 支持钩子脚本:服务启动后可执行自定义脚本。
- 注册表自启管理:管理启动项的读写。
安装与启用¶
通过命令行安装插件:
dsh plugin --profile web add "github:Mandarin715/dsh-autostart#v0.2.1"
安装后重启 DSH,进入「设置 → 通用设置」,在页面下方找到插件卡片。
- 点击「启用自启」,插件会将配置写入注册表
HKCU\...\Run。 - 在卡片中点击「重启服务」进行测试。
配置¶
插件配置位于 profile 的 cordis.patch.yml 文件中:
- id: dsh-autostart
name: dsh-autostart
config:
hookScript: '' # 可选,服务起来后执行的脚本绝对路径
dshPort: 3080
allowedHosts: [] # 必须显式填写,如 ['derp.example.com']
重要说明:hookScript 等配置项在启用自启时会被快照写入配置文件。因此,修改配置(如 hookScript)后,必须重新在设置页点击「启用自启」才能生效。
关于 allowedHosts:默认为空数组,即不信任任何非回环的 Host。若通过反向代理访问,必须将域名显式填入白名单,否则写操作会被拒绝。
注意事项¶
- 系统限制:仅支持 Windows 系统。
- 运行环境:需要 Node.js >= 20 和 DSH >= 0.1.0-rc.6。
- Agent 影响:重启时会中断正在执行的 Agent 回合,结果可能未落盘。
- 配置生效:配置修改需重新启用自启。
- 重启保底:重启失败时不会关闭 DSH,但可能产生竞态条件(与其他自启项同时启动)。
- 安全软件:写入注册表可能被安全软件拦截,导致「启用自启」失败。
短结尾¶
该插件通过常驻看护机制,解决了 Windows 环境下 DSH 重启不可靠的痛点。安装后需在设置页重新启用以应用配置。更多细节可参考项目目录页或 GitHub 仓库。