前言¶
DeepSeek Harness 的核心設計理念是“一切皆插件”,但在實際運維中,當需要重啓後端進程或進行資源重載時,往往面臨會話中斷、工作排空不及時或上下文丟失的風險。dsh-restart-resume 插件旨在解決這些問題,它不依賴複雜的內部機制,而是通過外部監督器來管理進程的生命週期,並提供重啓後的同會話續接能力。
插件定位¶
這是一個面向 DeepSeek Harness 的安全自重啓與同會話續接插件,由 Asteroid0449 維護,開源協議爲 MIT。它專注於解決傳統重啓方式中容易強殺會話、破壞上下文或導致數據未持久化的問題。
核心功能¶
該插件提供以下核心能力:
- 等待工作排空:默認等待全部活躍會話、已發佈子代理和後臺 jobs 排空,防止重啓過程中丟失工作。
- 受監督重啓:由外部監督器重新拉起後端,且只響應退出碼 75,避免普通崩潰導致無限重啓環路。
- 同會話續接:重啓後自動嘗試恢復原會話的消息,保持上下文連續性。
- Web 頁面自動恢復:續接落盤後,Web 頁面會自動恢復。
- 狀態工具集:提供
dsh_restart、dsh_restart_status、dsh_restart_cancel三個工具,用於控制重啓流程和查詢狀態。
安裝與啓用¶
從 Releases 下載對應版本(0.2.2)的壓縮包後,通過 DSH 的命令行工具安裝到 Web profile:
dsh plugin --profile web add .\dsh-restart-resume-0.2.2.tgz
安裝完成後,插件會註冊三個工具到當前會話中。
典型用法¶
1. 首次驗證¶
安裝後,可以通過 Agent 工具查詢自重啓狀態,確認插件已正常註冊。
2. 監督器契約配置¶
DSH 必須由理解退出碼 75 的監督器啓動。監督器在每次拉起進程前需要設置以下環境變量:
DSH_RESTART_SUPERVISOR=1
DSH_BOOT_ID=<每次啓動生成的新標識>
DSH_RUNTIME_VERSION=<啓動器實際校驗過的 DSH 版本>
3. 配置與調用¶
在調用重啓工具時,可以配置 resumeMode:
* continue:繼續原始任務中尚未完成的配置、驗證和交付(默認)。
* report-only:用於獨立測試。
工具調用示例:
* dsh_restart:安排受監督重啓,默認寫入持久化 marker。
* dsh_restart_status:查詢當前階段、倒計時、阻塞項及 bootId。
* dsh_restart_cancel:取消尚未退出的重啓請求。
適用場景與注意¶
適用場景:適用於需要在不中斷 Agent 上下文的情況下進行後端維護、版本升級或資源重載的生產環境。
注意事項:
1. 監督器依賴:DSH 必須由理解退出碼 75 的監督器啓動。插件不能憑空重新拉起已經退出的進程。沒有監督器時,dsh_restart 工具會拒絕執行。
2. 排空機制:默認等待全部活躍會話、已發佈子代理和後臺 jobs 排空,期間出現新工作會退回等待狀態。
3. 安全限制:原子 marker、有效期、頻率限制和冪等消息機制,旨在避免重複續接與重啓環路。
4. 檢查源碼:安裝前應檢查源碼與許可證。
總結¶
該插件通過嚴格的監督器契約和原子 marker 機制,實現了 DeepSeek Harness 的安全自重啓與同會話續接。它避免了盲目重啓帶來的風險,是維護長期運行智能體系統的實用工具。