dsh-attention-beep

前言

在 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 任務監控的門檻,提升了長任務和卡死場景下的調試效率。

GitHub 倉庫 | 社區目錄

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

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

小夜