前言¶
在 DeepSeek Harness(DSH)里跑长任务时,模型可能连续调用多步工具,界面一直处于「运行中」。眼睛盯着输出流,很难判断这一轮是否已经真正收尾。有人靠切窗口、有人靠系统通知,但和「这一轮回答结束」并不总是一一对应。
下面介绍社区插件 dsh-bubble(维护者 cccchensy):在整轮任务结束、输出停止时,播放一串约 1.05 秒的原创「咕噜」气泡提示音,思路类似桌面版里「回答完成」的轻提示——不抢注意力,但能立刻确认状态已从运行变为空闲。
这是什么¶
dsh-bubble 是 DSH 生态里的一个 client-only 插件 bundle:Host 端几乎为空实现,不写 Session 事件、不注册模型工具、不发网络请求。它在浏览器侧监听会话状态,当某个会话从 running: true 变为 false 时触发一次播放;WAV 以 data URI 内嵌在构建产物里,无需额外下载音频文件。
插件在 SkillHub 目录中归类为「趣味换装」;仓库 cccchensy/dsh-bubble 采用 MIT 许可证,README 标明在 DSH Desktop 0.2.1-rc.3 的 Web 界面下测试,平台为 web。
核心功能¶
何时响铃¶
| 场景 | 行为 |
|---|---|
| 会话从「运行中」变为「空闲」——整轮任务结束、输出停止(含期间多步工具调用) | 响一次 |
| 子代理 / Agent Teams 子会话逐个结束 | 不响;整队只在主任务收尾时响一次 |
| 多个会话几乎同时完成 | 700 ms 去重,只响一次 |
| 切到其他会话、停留在设置或插件页 | 仍会响(监听挂在页面级浮层) |
| 页面刚打开、尚未交互 | 遵守浏览器自动播放策略;第一次点击或打字后解锁音频 |
| 输入框下方小泡泡按钮 | 静音 / 恢复(斜线表示已静音),状态保存在 localStorage |
子代理会话通过会话列表行的 origin === 'subagent' 过滤,只记录状态、不触发提示音。
声音与实现要点¶
提示音不是通用 ding,而是由 numpy 程序合成的气泡声:低沉「咕噜」、两枚上浮气泡、C5–E5–G5 琶音与轻水花,mono 44.1 kHz,峰值约 −1.0 dBFS。试听文件在仓库 assets/bubble-chime.wav。
完成检测订阅客户端 Remote 的 api-session/status,并以 ctx.sessions.list 作兜底;挂载时用当前状态播种,避免硬刷新后为历史完成补响。Web Audio 不可用时回退到 <audio> 元素。
安装与启用¶
前置:DeepSeek Harness(README 测试于 Desktop 0.2.1-rc.3 的 Web 界面)、Node.js ≥ 20、pnpm;部分安装路径需要本机已安装 git(由 dsh plugin 转交 pnpm 处理)。
从 GitHub 安装¶
将 <你的 profile> 换成你实际使用的 DSH profile 名称:
dsh plugin --profile <你的 profile> add github:cccchensy/dsh-bubble
若当前 pnpm 不接受 github: 短写,可让 DSH 会话按 README「方式三」代为克隆目录并以 bundle 安装到当前 profile,装完需硬刷新浏览器。
装完之后¶
- 硬刷新浏览器(
Ctrl/Cmd + Shift + R):客户端模块多在启动时加载。 - 在 DSH Plugins 页面确认
dsh-bubble已启用(默认安装即启用)。 - 发一条消息并等待跑完,任务结束时应听到气泡提示音。
卸载:在 Plugins 页面停用或移除 bundle 即可;不写会话数据。
典型用法¶
日常无需配置项:启用插件后照常使用 DSH。需要安静环境时,点输入框下方泡泡按钮静音;状态会保留到下次打开同一浏览器配置。
想先听音色,可在 GitHub 仓库打开 assets/bubble-chime.wav,或查看 docs/bubble-card.png 中的波形说明。开发侧可用 node scripts/build.mjs 重建内嵌 WAV 的 lib/client.js,用 node scripts/verify.mjs 做结构自检(README 记录 2026-10-29 验证全绿)。
适用场景与注意¶
适合:长时间多步工具任务、需要「整轮结束」听觉反馈、又不想被系统级通知打断的 DSH Web 使用者。
限制(来自 README):
0.1.x未验证;只在页面打开时播放,页面关闭不会响。- 已停止或被用户取消的任务同样算「输出停止」,会响一声(若要区分需在
src/client.template.js的fireCompletion中自行扩展)。 - 插件以当前 DSH 进程与浏览器上下文运行;安装前建议阅读 源码与 MIT 许可证,确认接受其行为与依赖。
DSH 社区目录(如 SkillHub 上的 dsh-bubble 页)是独立站点,与 DeepSeek / 幻方无官方从属关系;插件由社区维护者发布,星标与分类以目录与 GitHub 公开信息为准(当前 GitHub 约 2 stars)。
结尾¶
dsh-bubble 把「整轮任务真的跑完了」做成一声短促、圆润的气泡提示音,并处理好子代理与并发去重,适合作为 DSH Web 界面上的轻量完成反馈。