前言¶
DeepSeek Harness (DSH) 提供了智能体开发的 Web UI。在操作过程中,智能体何时接收消息、开始思考、调用工具或结束回合可能难以察觉。dsh-sound-notifier 插件通过在 Web UI 中播放合成提示音来解决这一问题。
插件简介¶
这是一个 DSH 插件,用于在 Web UI 中根据智能体状态变化播放提示音。它通过 Web Audio API 合成声音,无需外部音频资源。
功能特性¶
插件在以下时刻播放提示音:
* 消息接收:播放两声短促提示音(660 Hz → 990 Hz)。
* 思考开始:播放上升音调(392 → 784 Hz,三角波)。
* 工具调用:播放清晰双响(233 Hz → 311 Hz,三角波)。
* 回合结束:播放大三和弦琶音(C5–E5–G5)。
其他特性:
* 仅顶级会话播放提示音,子代理保持静音。
* 使用 Web Audio API 合成,无需音频资源。
* 刷新页面后已播放事件不会重放(通过 sessionStorage 实现)。
安装与启用¶
在 DeepSeek Harness 仓库根目录下执行以下命令:
pnpm dsh plugin --profile web add /path/to/dsh-sound-notifier
安装后,需要重启 DSH 以加载插件。
配置与使用¶
插件加载后,可以通过编辑 client.js 中的 SOUNDS 表来自定义声音。
* 编辑配置:修改 freq(起始频率)、endFreq(结束频率)、dur(持续时间)、type(波形)、gain(音量)等参数。
* 验证配置:在不重启的情况下验证配置是否生效,可以使用:
pnpm dsh --profile web --dump-config
工作原理与限制¶
- 轮询延迟:事件触发到播放提示音存在约 400 毫秒的延迟。
- 依赖 Web Server:固定端点
/sound-alerts/events依赖webServer,无 webServer 时无法进行轮询。 - 会话过滤:仅顶级会话(
agent.owner === undefined)播放提示音,子代理页面保持静音。 - 内部调用跳过:内部 LLM 调用(如 compaction 和 session-title)不会触发思考提示音。
- 浏览器限制:浏览器自动播放策略限制,音频上下文按需创建。