前言¶
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 協議確保了操作的可觀察性和可恢復性。