dsh-bubble:任务结束时播放「咕噜」气泡提示音

前言

在 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,装完需硬刷新浏览器。

装完之后

  1. 硬刷新浏览器(Ctrl/Cmd + Shift + R):客户端模块多在启动时加载。
  2. 在 DSH Plugins 页面确认 dsh-bubble 已启用(默认安装即启用)。
  3. 发一条消息并等待跑完,任务结束时应听到气泡提示音。

卸载:在 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 界面上的轻量完成反馈。

羽毛球分组比赛记分
小程序二维码

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

小夜