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
羽毛球分组比赛记分
小程序二维码

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

小夜