前言¶
在 DeepSeek Harness(DSH)中運行長任務(如批量遷移、模型生成、過夜任務)時,經常會忘記關機。dsh-shutdown-after-task 插件提供了一種通過右下角按鈕觸發自動關機的方法,解決了這一痛點。該插件由用戶 virggle 維護,是 DeepSeek Harness 生態中的一個零依賴、純配置層插件。
核心功能¶
- 右下角浮動文本按鈕(可拖動):點擊切換「任務完成後關機」模式(默認關閉)。按鈕位置可拖動,位置自動保存。
- 自動避讓:當其他插件的角落彈窗(如價格提示)與按鈕重疊時,按鈕會自動避讓,彈窗消失後歸位。
- 可取消倒計時:任務成功完成後,彈出 60 秒倒計時橫幅(實時顯示剩餘秒數)和「取消關機」按鈕。倒計時期間可通過 GUI 取消。
- 新任務打斷:倒計時期間任一會話開始新任務,會自動撤消關機指令,但模式保持開啓。
- 取消即退出:點擊「取消關機」按鈕,不僅取消本次關機,還會退出該模式(下個任務不再觸發)。
- 僅成功時關機:配置爲僅成功時關機;若本批次有會話出錯,則不關機並提示原因。
- 多會話判定:以 root 會話爲統計單位,全部 root 會話空閒纔算任務完成。
安裝與啓用¶
通過官方目錄安裝:
dsh plugin --profile web add dsh-shutdown-after-task
安裝後重啓 DSH。若右下角未出現按鈕,刷新頁面(Ctrl+R)即可。
配置¶
編輯 profile 的 cordis.patch.yml(或設置 > 插件配置):
- id: dsh-shutdown-after-task
config:
countdownSec: 60 # 倒計時秒數(10–600,默認 60)
marginSec: 5 # 系統 shutdown /t 額外餘量(0–60,默認 5)
onlyOnSuccess: true # 僅成功時關機(false = 完成即關,含出錯)
典型用法¶
- 點擊右下角「任務完成後關機」按鈕,按鈕變黃表示已開啓模式。
- 正常跑任務。
- 當全部 root 會話空閒且無錯誤時,按鈕上方會彈出倒計時橫幅。
- 倒計時內點擊「取消關機」按鈕,本次關機取消,模式退出。
工作原理與細節¶
- 觸發時機:模式開啓後,全部 root 會話從
running狀態回到idle狀態。 - 成功判定:本批次無
agent/error(僅在onlyOnSuccess: true時生效)。 - 系統指令:倒計時開始時執行
shutdown /s /t <countdownSec + marginSec>。 - 日誌路徑:運行日誌記錄在
$DSH_HOME/dsh-shutdown-after-task.log。 - 狀態查詢:可通過
GET http://127.0.0.1:<port>/api/dsh-shutdown-after-task/state查詢當前狀態。
注意事項¶
- 僅支持 Windows:插件執行
shutdown.exe,其他平臺插件會保持惰性並記日誌。 - 內存狀態:模式狀態保存在內存中,DSH 重啓後默認關閉,需重新點擊按鈕開啓。
- inbox 隊列判定:root 會話空閒但 inbox 有排隊消息時也會觸發關機(按「全部 root 空閒」判定)。
- 頁面刷新:腳本隨 index 響應注入,安裝後需刷新頁面才能看到按鈕。
總結¶
dsh-shutdown-after-task 適合需要在過夜任務或長時間批量任務結束後自動關閉電腦的場景。它通過 GUI 提供了直觀的控制,同時支持配置項以適應不同的關機策略。更多細節可參考:GitHub 倉庫。