前言¶
DeepSeek Harness (DSH) 的 Agent 任务通常运行在远程服务器或 Kali 等终端上。当开发者通过 SSH 隧道或浏览器远程访问时,服务端本地的播放设备发出的声音无法被感知。这导致在长时间运行的任务中,用户难以察觉 Agent 是否卡住、完成或出错。
dsh-dudulu 插件将“判定 + 出声”的全部逻辑移至浏览器端。它通过监听 DSH 的会话状态边沿,在网页打开时直接播放提示音,让用户能随时获知 Agent 的进展。
核心功能¶
-
触发时机
- 任务完成。
- 任务暂停(等待审批 / 提问)。
- 任务出错。
-
检测与播放
- 全部在浏览器端完成,与 DSH 服务端跑在哪台机器、什么操作系统无关。
- 利用
@deepseek-ai/dsh-client-connection的sessions store直接监听状态边沿(pendingInteraction、running),比通过turn/end推断更准确。
-
音效支持
- 默认提示音为内置的
dudulu01.mp3(Base64 嵌入,不依赖外部托管)。 - 若音频解码失败,会自动回落到内置合成音“嘟嘟噜”(三段上行短音,纯 oscillator 生成)。
- 默认提示音为内置的
-
设置面板
- 总开关控制。
- 三类通知(完成、暂停、出错)的独立开关。
- 音量滑条(0–100,支持实时试听)。
- 自定义提示音上传(支持恢复默认与清除)。
安装与启用¶
确保你使用的是 DeepSeek Harness 的 web profile。
- 执行安装命令:
dsh plugin --profile web add github:Cmjingahaha/dsh-dudulu
- 重启
dsh web服务。 - 打开浏览器设置页面,找到 dudulu · 嘟一声 配置项。
配置与使用¶
-
解锁自动播放
浏览器通常禁止自动播放音频。首次使用时,请在网页上进行一次点击或按键操作,以解锁AudioContext。 -
调整参数
在设置面板中,根据需要调整总开关、各类通知开关以及音量。支持上传小于 1MB 的自定义音频文件。 -
保存偏好
设置偏好保存在浏览器的localStorage中(键名dsh-dudulu.v1),刷新页面或重启后依然有效。
限制与故障排查¶
-
子代理不响
目前插件仅为主 Agent 的回合事件播放提示音,子代理(subagent)运行时的提示音已被排除。 -
网页需保持打开
插件依赖浏览器环境运行,关闭网页后提示音功能失效。 -
硬刷新
修改插件源码或配置后,务必在浏览器中执行硬刷新(Ctrl + Shift + R)以清除前端缓存。 -
常见错误排查
- 若设置面板未出现「dudulu · 嘟一声」条目,请检查浏览器控制台(F12)是否有
failed to apply loader entry (dsh-dudulu)错误。 - 检查插件软链是否存在:
~/.dsh/profiles/web/node_modules/dsh-dudulu → ~/.dsh/plugins-local/dsh-dudulu。
- 若设置面板未出现「dudulu · 嘟一声」条目,请检查浏览器控制台(F12)是否有
总结¶
dsh-dudulu 解决了远程开发场景下声音无法传递的痛点。通过浏览器端的轻量级实现,它为 DSH 的 Agent 任务提供了清晰的状态反馈机制。所有配置均基于本地浏览器存储,无需服务端额外配置。