DeepSeek Harness 插件:dsh-work-done-bell

前言

DeepSeek Harness(DSH)開發中,代理的狀態常顯示爲 idle。但這通常只代表調度器空閒,後臺任務或子代理仍在運行。若在 idle 時觸發提示音,一個任務可能會響鈴多次。dsh-work-done-bell 解決了這個問題,它等待的是“真正的完成”。

插件定位

這是一個 DeepSeek Harness 客戶端插件,由 FunctionHookTJU 維護。它會在 DSH 會話真正完成所有工作後(即進入靜默狀態),播放 Windows 系統提示音,並在右下角彈出 Toast 通知。該插件將完成提示的狀態持久化存儲,支持開關切換。

核心功能

插件通過“靜默檢測”機制判斷會話是否結束,避免誤報。

  1. 靜默檢測條件:會話必須同時滿足以下條件纔算真正完成:
    • 狀態爲 idle。
    • 沒有屬於該會話的運行中或正在停止的任務。
    • 沒有屬於該會話的運行中代理。
  2. 超時保護:靜默檢測存在 90 秒的截止期限。如果超過 90 秒仍未檢測到靜默,該次會話將不再觸發提示音。
  3. 去重處理:在 2.5 秒內的多次完成會合併爲一次提示音,防止併發任務導致聲音疊加。
  4. 提示音邏輯:聲音來源是 DSH 日誌中的 turn/end 原因,而非猜測:
    • completed / blocked / max-tokens:播放 Asterisk(默認通知音)。
    • error:播放 Hand(停止音)。
    • aborted / interrupted(包括手動停止):靜音。
  5. UI 交互:右下角提供持久開關,用於控制提示音和 Toast 的顯示。

安裝與啓用

使用 file: 協議安裝,確保依賴能正確解析。

1、克隆倉庫:

git clone https://github.com/FunctionHookTJU/dsh-work-done-bell

2、在目錄下執行安裝命令:

dsh plugin --profile web add file:/absolute/path/to/dsh-work-done-bell

3、重啓 DSH 後端,無需在配置文件中手動編輯其他內容。

診斷與狀態查詢

插件提供 HTTP 接口供調試。瀏覽器端每秒輪詢該接口獲取狀態。

通過以下命令檢查當前狀態(開啓 verbose=1 可查看詳細原因和策略):

curl "http://127.0.0.1:3080/dsh-work-done-bell/state?verbose=1"

平臺限制與注意事項

  • 聲音限制:聲音播放功能僅支持 Windows 平臺,通過 System.Media.SystemSounds 執行。在其他平臺上,插件加載並顯示 Toast,但保持靜音。移植時需修改 play() 函數中的命令爲 afplay 或 paplay。
  • 沙盒策略:播放聲音的命令必須攜帶已解析的沙盒策略。如果宿主 shell 服務拒絕該命令,聲音將無法播放。在 verbose=1 模式下,lastError 和 lastPolicy 字段會記錄原因。
  • Toast 顯示:Toast 通知需要瀏覽器有打開的頁面才能顯示,聲音播放不依賴頁面打開。
  • 命名方式:Toast 通知顯示的是會話的短 ID,而非標題。

總結

dsh-work-done-bell 是一個實用的 DSH 客戶端插件,通過精確的“靜默檢測”和超時機制,解決了後臺任務導致的誤報問題。對於需要長時間運行或包含子代理的複雜任務,它能提供清晰的聽覺反饋。

  • 插件目錄:https://www.skillhub.cn/plugins/FunctionHookTJU/dsh-work-done-bell
  • GitHub 倉庫:https://github.com/FunctionHookTJU/dsh-work-done-bell
羽毛球分组比赛记分
小程序二维码

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

小夜