前言¶
在 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 请求):
- 工具请求权限(同意 / 拒绝)—— 会话事件
approval/asked - 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 真实触发);其他环境请自行验证。
- 将仓库克隆或下载到本地,例如
D:\tools\dsh-approval-sound。 - 在 DSH 中让 Agent 调用
plugin_manager,action: install_bundle,target为该目录的绝对路径。 - 确认插件行
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