DSH 插件:dsh-reset-handoff(主机重置的交接协议)

前言

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 协议确保了操作的可观察性和可恢复性。

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

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

小夜