前言¶
在 DeepSeek Harness(DSH)的工作流中,長任務跑完後聽不見提示、命令卡死時無法自動中斷、模型反覆生成低效代碼導致長時間等待是常見痛點。dsh-attention-beep 插件旨在解決這些問題:通過宿主進程直接播放本機人聲提醒,在命令卡死時自動中斷並將恢復指引寫回工具結果,以及在 spawn 之前攔截已知的性能陷阱寫法。
核心功能¶
1. 任務結束與卡死提示¶
插件利用 Windows 的 .NET / WPF 框架和 Get-CimInstance Win32_Process,通過 DSH 宿主進程直接發聲。這意味着即使瀏覽器標籤頁在後臺、被靜音或最小化,用戶也能聽到任務結束、命令卡死、整輪無進展或模型請求權限時的提示音。聲音由宿主播放,不經過瀏覽器。
2. 自動脫困與恢復¶
當 pwsh 命令確認卡住時,插件會自動中斷這一次工具調用。同時,它會把“發生了什麼、shell 現在什麼狀態、怎麼繼續”的恢復指引寫回工具結果,讓模型在同一輪裏能接上任務。默認配置下,中斷只針對單次調用,不會取消整輪會話。
3. 命令守衛¶
插件在 spawn 命令之前攔截已知的性能陷阱寫法(如 Get-ChildItem -Recurse -Include)。命中規則時,直接以工具錯誤返回並附上改法(約 0 ms),而不是等待執行幾十秒。若確實需要使用原寫法,可通過配置 run_in_background: true 繞過守衛。
4. 平臺支持¶
該插件僅支持 Windows。三塊核心能力(音頻播放、進程探針、命令守衛針對 PowerShell 方言)均依賴 Windows 環境。
安裝與啓用¶
安裝命令如下:
dsh plugin --profile web add github:kiterunner1/dsh-attention-beep
注意:安裝前必須停止正在運行的 DSH 進程,否則 profiles/<name>/node_modules 可能會寫入失敗,導致 profile 無法正常工作。
安裝完成後,需重啓 DSH 才能生效。若需修改宿主代碼(lib/*.js),同樣需要重啓。
配置說明¶
插件的配置在 loader 行的 config 中,默認值參考 cordis.patch.yml。用戶層可在 $DSH_HOME/settings.yaml 中按 id 覆蓋配置。
常用配置項包括:
* enabled: 是否啓用插件。
* watchTools: 監控的工具列表,默認爲 [pwsh]。
* warnMs / killMs: 卡死判定的預警和中斷時間閾值。
* guardEnabled: 是否啓用命令守衛。
* guardAllow: 命令子串放行列表,命中則跳過守衛檢查。
聲音配置支持 voice:<key>(內置人聲)、系統預設或絕對路徑的自定義音頻文件。
典型用法¶
- 修改提示音:編輯
$DSH_HOME/settings.yaml,配置sound項指向自定義文件。 - 繞過守衛:在工具調用配置中添加
run_in_background: true,強制後臺運行,跳過守衛攔截。 - 防止思考時取消:設置
stallAutoResume: false,確保在模型調用ask_user_question等工具等待用戶輸入時,整輪不會被取消。
適用場景與注意¶
該插件適合在 Windows 環境下使用 DSH 進行自動化開發或調試的用戶。安裝和調試時請確保源碼與許可證符合要求。
總結¶
dsh-attention-beep 通過本機音頻反饋和自動化恢復機制,降低了 DSH 任務監控的門檻,提升了長任務和卡死場景下的調試效率。