DSH 電源(dsh-power):三檔可控的重啓與關閉

前言

在 DeepSeek Harness(DSH)裏改配置、換插件或讓 Host 半身生效,歷來常見做法是殺進程或關終端再開。後臺任務與正在進行的 AI 回合會被粗暴打斷,工具調用結果往往不可知;同時跑多路 AI 時,也很難判斷誰還在收尾、誰已被中斷。

DSH 電源(倉庫 DX12xyz/dsh-power,包名 @local/dsh-power)把「重啓 / 關閉 DSH」做成有語義、可協調、可恢復的操作:人類在側邊欄一點即可選擇等待、中斷或強制;AI 也可通過同名工具走同一套流程。重啓前後有檢查點與恢復報告,並對外提供 resumableToolCalls 服務,供其他插件掛起工具調用到下次啓動再回填結果。插件由社區維護者 DX12xyz 發佈,分類爲客戶端,許可證 MIT;社區插件目錄見 SkillHub 插件頁,源碼見 GitHub。

這是什麼

DSH 電源是 DSH 的客戶端插件:在側邊欄提供「重啓 / 關閉」入口,Host 側註冊五個 restart_dsh_* 工具與 restart-dsh skill,並負責跨重啓檢查點、恢復通知與可選的逃生艙聯動。

維護者文檔寫明:本機在 DSH 0.2.1-rc.5(Web,Windows)上驗證過;支持 Web + Desktop(Windows)。當前版本 1.8.2,不發佈到 npm,通過 git、本地目錄或自行 npm pack 的 tgz 安裝。

核心功能

三檔重啓與三檔關閉

重啓與關閉共用「等待 / 中斷 / 強制」三檔語義,多路請求按「強制 > 點名 > 阻塞等待」合併升級。

  • 等待:阻塞等待所有其他運行中 AI 完成當前回合後再執行;不中斷任何 AI,人類界面與 AI 側均最推薦。
  • 中斷(點名):向未就緒的運行中 AI 廣播插話,要求其停止派生子代理/工具並進入就緒;默認最多等 120 秒(可在設置頁改 rollCallWaitMs,0 表示永久等待),到點仍會繼續並如實記錄未就緒的 AI。
  • 強制:立即中斷未就緒 AI 並執行;人類側需紅色警告下長按確認 5 秒;AI 側需先 restart_dsh_force_safeguard 上保險,再 restart_dsh_force_dangerous 執行,且須審批通過並消費保險,無保險不會重啓。

關閉流程同樣三檔,但只退出、不再啓動;等待模式有硬上限(默認 5 分鐘,shutdownMaxWaitMs,0 爲無限)。強制模式在等待超時後會通過獨立 detach 回收器強殺 Host(Windows 爲 taskkill /F,POSIX 爲 SIGKILL),再按模式嘗試重新拉起或結束。

人類入口與 AI 工具

側邊欄底部出現「DSH電源」按鈕(網頁版與桌面版共用同一 DOM),菜單僅「重啓 / 關閉」。連接狀態非 connected 時按鈕隱藏。

人類界面 AI 工具 行爲摘要
等待 restart_dsh_blocking_wait_safe 等所有其他運行中 AI 完成當前回合後重啓
中斷 restart_dsh_roll_call_caution 點名就緒後重啓
強制 restart_dsh_force_dangerous(須先上保險) 立即中斷並重啓
— restart_dsh_force_safeguard 爲下一次強制調用上保險,僅消費一次
— restart_dsh_status 只讀:階段、運行中 AI、待執行重啓/關閉、上次結果;無副作用、無需審批

另有 restart-dsh skill:在插件加載時註冊,有重啓訴求或同意以重啓解決時按其規則選模式。

權限方面:restart_dsh_status 任何權限免審批;等待/點名在 workspace-write 及以上免審批;強制與強制保險僅在完全訪問(danger-full-access + approval: never)免審批。人類側邊欄操作不受 AI 權限限制,強制由長按確認,不需要 AI 側強制保險。

檢查點、恢復與可掛起工具調用

重啓前寫入有界、脫敏檢查點;重啓後向受影響會話報告未決工具調用、後臺任務與恢復狀態。這不是進程凍結,不恢復舊進程狀態。

resumableToolCalls 服務允許其他插件把一次工具調用掛起到下次啓動再回填真實結果,避免平臺寫入 TOOL_OUTCOME_UNKNOWN。

診斷相關:restart.log、status.json、boot 對賬,以及外部 CLI scripts/restart-cli.mjs。

設置與逃生艙聯動

插件詳情頁「電源設置」可調整點名等待時間,寫入運行設置並立即生效,不觸發插件熱重載。

若已安裝逃生艙插件(Host 服務 escapePod 存在),關閉對話框會顯示「同時關閉正在運行的逃生艙」(默認不勾選)。僅勾選時 DSH 退出前調用 escapePod.shutdown('dsh-power shutdown'),最多等 5 秒,失敗只寫日誌、不阻止關機。重啓流程不關閉逃生艙。

安裝與啓用

要求:文檔驗證環境爲 DSH 0.2.1-rc.5(Web,Windows);Web 與 Desktop(Windows)均可。

方式一:插件頁安裝(推薦)

  1. 打開 DSH 插件頁 →「安裝插件」;
  2. 安裝源填 https://github.com/DX12xyz/dsh-power,或 git 簡寫 github:DX12xyz/dsh-power;
  3. 等待安裝完成,按提示重啓 DSH(Host 半身須重啓;Client 半身刷新頁面即可)。

方式二:命令行(以 Web profile web 爲例)

dsh plugin --profile web add github:DX12xyz/dsh-power

方式三:本地目錄(改代碼 / 離線)

dsh plugin --profile web add "link:<倉庫根目錄絕對路徑>"

方式四:離線 tgz

在倉庫根目錄 npm pack 後安裝產出的 tgz(示例文件名 local-dsh-power-1.8.2.tgz):

cd <倉庫根目錄>
npm pack
dsh plugin --profile web add "file:<倉庫根目錄>/local-dsh-power-1.8.2.tgz"

卸載:

dsh plugin --profile web remove @local/dsh-power

安裝後務必重啓 DSH。裝好判據:

  • Client:側邊欄底部有「DSH電源」,菜單隻有「重啓 / 關閉」;
  • Host:會話中調用 restart_dsh_status 能返回當前階段與運行中 AI。

卸載後 $DSH_HOME/.dsh-restart/ 可能殘留 checkpoint、status.json 與運行設置,確認不需要時再手動清理。安裝後不要在 AI 回合運行期間手工編輯 cordis.patch.yml;改配置優先用插件設置頁,或等回合結束後再改。

典型用法

人類最短路徑

  1. 側邊欄底部點「DSH電源」,選「重啓」或「關閉」。
  2. 重啓時模式下拉默認「等待」,可改「中斷 / 強制」,可填可選原因(會出現在重啓後通知裏)。
  3. 確認後:等待檔會阻塞到所有其他運行中 AI 完成當前回合再重啓;重啓期間頁面會短暫斷開,隨後自動恢復。

確認交互要點:等待可在確認框取消;中斷需「下一步」後再確認;強制需長按 5 秒,鬆開、失焦、Escape 等會取消。

AI 最短路徑

先只讀查狀態,再選安全重啓:

restart_dsh_status
restart_dsh_blocking_wait_safe

如需強制,順序爲:

restart_dsh_force_safeguard
restart_dsh_force_dangerous

適用場景與注意

適合需要在改配置、裝插件或排障時可控地重啓或退出 DSH、且希望多路 AI 與工具調用有如實報告與可恢復掛起的用戶。

插件以當前 DSH 進程權限運行;安裝前應自行查看 GitHub 倉庫 源碼與 MIT 許可證。SkillHub 上的社區目錄與 DeepSeek / 幻方無官方從屬關係,安裝來源以你填寫的 git 地址或本地包爲準。

已知限制包括:平臺支持 Web + Desktop(Windows);逃生艙爲獨立包 @local/dsh-escape-pod,本插件不依賴它;五個 AI 工具不聲明 timeoutMs,掛起的重啓調用僅在重啓失敗或回合取消時提前返回錯誤。

結尾

DSH 電源把「殺進程重開」換成等待、中斷、強制三檔,並在重啓前後用檢查點與恢復報告交代未決工具與後臺任務;人類側邊欄與 AI 工具共用同一語義,強制路徑對人類與 AI 分別有長按與審批+保險約束。

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

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

小夜