dsh-approval-sound:DSH 等你審批或作答時播放 Windows 提示音

前言

在 DeepSeek Harness(DSH)裏跑 Agent 時,工具權限和 ask_user_question 往往要你先點同意或填答案。窗口不在前臺時,很容易錯過。本插件在 DSH 真正向你「伸手」時播放一聲 Windows 提示音,不必一直盯着屏幕。

這是什麼

dsh-approval-sound 是維護者 liaohongrao 發佈的 DSH 客戶端類 Cordis Host 插件(當前版本 0.1.0,MIT 許可證,GitHub 倉庫)。它只做一件事:在需要你出手時響一聲,不改變審批流程本身。

社區目錄頁:skillhub.cn/plugins/liaohongrao/dsh-approval-sound(獨立站點,與 DeepSeek / 幻方無官方從屬關係)。

何時會響

觸發時機只有兩個,且與審批面板出現同步(監聽 Host 提交後的會話事件,而非桌面 Web UI 裏會先被接管的 waterfall 請求):

  1. 工具請求權限(同意 / 拒絕)—— 會話事件 approval/asked
  2. Agent 向你提問 —— 會話事件 tool/call,且工具名爲 ask_user_question

800 ms 內的重複觸發會在進程內合併,避免連環響。未啓用、非 Windows 或播放失敗都不會影響審批本身。

核心能力

  • 默認使用 Windows UAC 的「叮」(Windows User Account Control.wav);主文件缺失時回退到 notify.wav,再不行用系統提示音。
  • 只掛 DSH Host 事件,不讀會話日誌、不輪詢、不需要爲插件單獨重啓 DSH。
  • 聲音在獨立 Python 進程裏用 winsound 播放(Node 側在沙箱裏短命子進程播放實測可能靜音)。
  • 可通過 backend 選擇 auto / python / powershell;無 Python 時可能走 PowerShell,部分環境仍可能靜音。

環境要求

項目 要求
系統 Windows 10 / 11
DSH 支持 Cordis Host 插件與 dsh.bundle.patch 的版本
Node.js 22+(DSH 自帶)
Python 3.8+,需標準庫 winsound(可選;建議保留 DSH 自帶運行時或安裝 Python)

插件需在 DSH Host 進程加載;僅在瀏覽器 / 純 Web 端運行時拿不到 session/event,插件會跳過。

安裝與啓用

倉庫未發佈 npm,也沒有統一的 dsh plugin add github:… 一行命令;需把 bundle 放到本地後通過插件管理器安裝。作者已在 Windows 的 desktop Profile 本地安裝並試聽通過(含 ask_user_question 真實觸發);其他環境請自行驗證。

  1. 將倉庫克隆或下載到本地,例如 D:\tools\dsh-approval-sound。
  2. 在 DSH 中讓 Agent 調用 plugin_manager,action: install_bundle,target 爲該目錄的絕對路徑。
  3. 確認插件行 approval-sound 已啓用,再觸發一次審批或提問試聽。

若仍保留 2026-10-27 的舊方案(.dsh-approval-sound,計劃任務 + Python 守望進程),先停掉再裝,否則會一聲兩響:

.dsh-approval-sound\disable-autostart.cmd
.dsh-approval-sound\stop-alarm.cmd

安裝前請自行閱讀倉庫源碼與 MIT 許可證;插件以當前 DSH 進程權限運行。

配置

安裝後,插件 config 支持如下字段(默認值見下表):

字段 默認值 說明
enabled true 總開關
sound C:\Windows\Media\Windows User Account Control.wav 主提示音絕對路徑
fallbackSound C:\Windows\Media\notify.wav 回退音
debounceMs 800 去重窗口(毫秒),最小 150
pythonPath '' 指定 Python 可執行文件;留空則自動探測
backend auto auto / python / powershell

通過 bundle patch 自定義提示音與去重窗口的示例:

- insert:
    - id: approval-sound
      name: dsh-approval-sound
      config:
        sound: 'D:\sounds\ding.wav'
        debounceMs: 1200

工作原理(簡述)

DSH Host——提交後的會話事件
  ├─ approval/asked                 ─┐
  └─ tool/call (ask_user_question)  ─┴─▶ index.js(去重 + 選擇後端)
                                            │  stdin: 一行 JSON
                                            ▼
                                     sound_player.py --daemon
                                            │  winsound.PlaySound(SND_ASYNC)
                                            ▼
                                         提示音

相對舊版 .dsh-approval-sound(輪詢 zstd 會話日誌 + 計劃任務自啓),本插件走 Host session/event,鏈路更短,卸載也走插件管理器。

自檢與限制

在倉庫目錄下可先做本地檢查(不依賴 DSH 是否已觸發事件):

python sound\sound_player.py --selfcheck
python sound\sound_player.py --test
npm test

已知限制:僅 Windows;不做 TTS,提示音固定爲 WAV;部分 Profile 若作者未在你環境中安裝驗證,首次裝好後請用審批 / 提問確認出聲,無聲時用 --test 區分「未觸發」與「音頻 / 文件」問題。

結尾

若你常在 Windows 上用 DSH Host 跑 Agent,又需要離開屏幕時仍能聽到「該你點了」,dsh-approval-sound 用 Host 事件 + 單次提示音 + 去重,是一個改動面很小的客戶端插件。

  • 目錄頁:https://www.skillhub.cn/plugins/liaohongrao/dsh-approval-sound
  • 源碼與 README:https://github.com/liaohongrao/dsh-approval-sound
羽毛球分组比赛记分
小程序二维码

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

小夜