前言¶
DeepSeek Harness (DSH) 是一个长生命周期进程。有时需要重启以重新加载插件、应用配置或恢复卡死状态。然而,内部代理不能重启 DSH 本身:它无法查看结果,无法看到正在运行的业务,如果重启失败,也没有人负责诊断。解决方案是“交接”:DSH 写入一个请求,外部运维代理读取它、运行重启流程,并在重启后写回结果。
插件介绍¶
该插件是 DSH 的一个主机插件,用于通过版本化 JSON 协议将重置请求传递给外部运维代理。它遵循“预检查快照 -> 重启 -> 健康检查 -> 恢复”的流程。由 nicecx 维护。
核心功能¶
- 主机插件:允许外部重置 DSH。
- JSON 协议 (v1):用于请求和结果文件。
- 流程:预检查快照、健康检查、恢复。
- 安全:成熟度门控 (GATE) 以确保安全重启。
- 工具:
reset_handoff、reset_status。 - 降级:优雅降级支持。
安装与启用¶
dsh plugin --profile <profile> add github:<owner>/dsh-reset-handoff
使用方式¶
工具与命令¶
reset_handoff(reason, scope?):提交重置请求。它不会在进程内重启 DSH。reset_status():查询最新请求和结果(只读)。
协议与执行¶
插件与执行器是解耦的,它们通过 ~/.dsh/reset-handoff/ 下的两个 JSON 文件共享协议(可通过 DSH_RESET_HANDOFF_DIR 覆盖):
* request.json:由 DSH 写入。
* result.json:由执行器写入。
参考执行器(纯 Python)位于 hermes/reset_agent.py 中。
* 运行 python3 reset_agent.py 执行五步流程。
* 运行 python3 reset_agent.py --dry-run 打印流程而不进行重启。
注意事项¶
- 依赖检查:必须在重启前验证插件依赖。
- 健康检查:重启前进行健康检查,重启后进行观察。
- 优雅降级:插件必须优雅降级。
- 禁止自杀:永远不要创建自杀/无条件重启作业。
- 外部重启:外部执行器必须重启 dsh web 服务(例如 macOS
launchd)。
结语¶
该插件通过将重启逻辑移出 DSH 进程,解决了“重启 DSH 自身”的死锁问题。它使用版本化 JSON 协议确保了操作的可观察性和可恢复性。