前言¶
在 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 倉庫。