dsh-keep-awake:DeepSeek Harness 防休眠插件

在 DeepSeek Harness(DSH)中開發或運行長時間任務(如深度推理、複雜 workflow)時,系統休眠往往會中斷進程或導致任務中斷。dsh-keep-awake 旨在解決這一問題。這是一個系統級插件,在任意 agent、subagent 或後臺任務運行時阻止系統休眠,並在所有任務完成後通過寬限期自動釋放資源。

核心功能

  • 實時狀態監控:在 Web 界面顯示當前運行狀態(保持喚醒中 / 寬限中 / 待機)、運行中的 agent 數量、後臺任務數以及輔助進程的 PID。
  • 活動判定:智能識別運行中的活動,包括主 agent、subagent、workflow 子代理,以及通過 run_in_background 命令或後臺 subagent 任務觸發的後臺任務。
  • 寬限期機制:當檢測到所有活動結束後,進入可配置的寬限期(默認 60s,範圍 15s-5m)自動釋放防休眠標誌。
  • 手動保持喚醒:提供手動開關,無視當前活動狀態強制保持系統喚醒。
  • 阻止屏幕關閉:可選功能,默認只防休眠,勾選後可同時阻止屏幕熄滅。
  • 多語言支持:界面語言跟隨 DSH 全局語言設置(zh/en),切換即時生效。

安裝與配置

插件通過 pnpm 安裝,配置文件爲 profile 目錄下的 settings.yaml。

  1. 進入 profile 目錄(例如 ~/.dsh/profiles/web)。
  2. 添加插件包:
    pnpm add "dsh-keep-awake@github:bearice/dsh-keep-awake"
  1. 編輯 package.json,將 "dsh-keep-awake" 加入 dsh.profile.bundles 字段。
  2. 運行 pnpm install 並重啓 profile。

在 settings.yaml 中配置參數:

keep-awake:
  enabled: true
  graceMs: 60000          # 寬限期(毫秒),默認 60s
  preventDisplaySleep: false  # 是否同時阻止屏幕關閉
  manualHold: false       # 是否手動保持喚醒

工作原理

插件通過每 5 秒的輪詢配合事件即時重掃(agent/status、subagent/start|end、job 集變更)來檢測活動狀態。一旦檢測到活動,它會通過 subprocess 服務啓動一個平臺輔助進程來設置休眠標誌,進程退出即釋放:

  • Windows:使用 PowerShell SetThreadExecutionState(ES_CONTINUOUS | ES_SYSTEM_REQUIRED),勾選阻止屏幕時添加 ES_DISPLAY_REQUIRED。
  • macOS:使用 caffeinate -i -s。
  • Linux:使用 systemd-inhibit --what=idle --mode=block sleep 1e8。

依賴與兼容性

  • Node.js:需要 Node.js >= 22.0.0。
  • 依賴庫:需要 @deepseek-ai/schemastery ^3.18.1。

結尾

該插件通過自動管理操作系統電源狀態,使 DSH 能夠在不進行人工干預的情況下處理長時間運行的任務。完整源碼與文檔位於 GitHub。

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

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

小夜