dsh-notification-chime:任务完成与审批的应用内提示音

前言

DeepSeek Harness(DSH)里的一次 Session 可能跑很久。切到其他窗口之后,你往往不能及时知道:Agent 是否已经回复结束,还是停在某个工具调用或计划上等你点批准。盯着界面等并不现实,系统通知也未必能区分「完成」和「待审批」。

下面介绍社区插件 通知提示音(coopobot/dsh-notification-chime):在 Harness 应用内播放两种可区分的短提示音,并在设置里提供试听与状态查看。声音由页面内的 Web Audio 合成,不依赖外部音频文件,也不走会显示为 powershell.exe 的那类系统侧播放路径。

这是什么

dsh-notification-chime 是分类为 客户端 的 DSH bundle 插件,维护者为 coopobot。它只做一件事:在合适的 Session 事件发生时,于 Electron 渲染进程(或支持 Client 插件的 Web GUI)里播放提示音——任务结束时一种音,出现人工审批类交互时另一种音。

插件 Host 半部为空,逻辑全部在 Client 侧;不修改 Host 进程、不启动子进程、不访问网络。许可证为 MIT。在 Harness 0.2.1-rc.2 上开发与验证;无需额外运行时依赖。

社区目录页:https://www.skillhub.cn/plugins/coopobot/dsh-notification-chime
源码与说明:https://github.com/coopobot/dsh-notification-chime

核心功能

两种提示与触发规则

场景 行为
普通 Session 的 turn 结束为 completed、error 或 max-tokens 播放 完成音
出现 approval 或 plan-review 待处理交互 播放 审批音
子智能体完成 不播放
用户主动中止(aborted / interrupted / forked) 不播放
已有审批未处理、状态未变 不重复播放审批音

完成音与审批音在音高与节奏上刻意区分:完成为 C5 → E5 → B5(带一点 C6 泛音),偏柔和上行;审批为更短、更高的 C6 → G5 → C6 三连音。均为正弦/三角波加包络合成。

降噪与合并

600ms 内多次「完成」、900ms 内多次「审批」只响一次,避免连播打扰。

设置与自检

路径:设置 → 通用 → 通知提示音。可 试听 完成音(首次点击也会解锁浏览器音频上下文);状态行显示音频是否就绪,以及最近一次真实触发(完成或审批)的时间。任务结束后无需保持该设置页打开。

工作原理(概要)

Client 插件订阅页面内的 uiSession.sessionStatus(各 Session 的 running、pendingInteraction、completionUnread)与 sessions.list(用于识别子智能体)。对比前后快照:running: true → false 或出现 completionUnread 视为完成;审批类 pendingInteraction 首次出现视为需要人工审批。随后用 Web Audio 播放,并把状态同步到上述设置项。更完整说明见仓库 docs/ARCHITECTURE.md。

环境要求

  • DeepSeek Harness Desktop,或支持 Client 插件的 Web GUI。
  • 在 Harness 0.2.1-rc.2 上开发和验证。
  • 无需安装任何运行时依赖;bundle 本地包名为 @local/notification-chime(@local 仅用于本地链接,非可发布 npm scope)。

安装与启用

安装入口在 Harness 左侧边栏的「插件」页面,不是 设置 → 插件——后者是内置插件与运行时状态的只读清单,没有安装按钮。侧边栏收起时需先展开;「插件」与「定时任务」在同一组全局面板中。

从 Git 地址安装

  1. 打开左侧 插件(Plugins)面板。
  2. 点击右上角 添加插件,或点旁侧箭头选择 安装第三方插件。
  3. 在包名输入框填入仓库 Git 地址:
https://github.com/coopobot/dsh-notification-chime
  1. Host 会先用 git ls-remote 检查仓库,再由 pnpm 安装。私有仓库需本机 Git 凭据。
  2. 按提示检查并安装。安装完成后 bundle 默认启用;若设置项未立刻出现,刷新一次页面。

从本地目录安装

若你已在磁盘上有该 bundle 的目录(例如自行下载或解压后的文件夹),在同上「添加插件」对话框中填入该目录的 绝对路径,例如 Linux 下:

/home/me/dsh-notification-chime

Windows 下示例见官方 README(如 C:\Users\me\dsh-notification-chime)。

开发调试:由 Agent 安装本地 bundle

让 DSH Agent 调用 plugin_manager 的 install_bundle,target 填仓库目录绝对路径,适合本地改代码联调。

安装前建议浏览源码与 MIT 许可证;Client 插件在 Harness 客户端环境中运行,权限与当前 GUI 进程一致。

典型用法

  1. 按上一节完成安装并确认 bundle 已启用(插件 → 已安装插件)。
  2. 打开 设置 → 通用 → 通知提示音,点击 试听,确认系统音量合成器中出现 DeepSeek Harness(浏览器中打开 GUI 时则为对应浏览器)且有电平。
  3. 正常使用 Session:长时间任务可在后台跑;结束或需要 approval / plan-review 时会自动发声。
  4. 若结束未听到声音,先看设置里「上次触发」是否更新:有更新仍无声,按 README 排障检查默认输出设备、远程桌面音频与音频上下文是否已通过试听解锁。

适用场景与注意

适合谁:经常并行多窗口、依赖 Harness 跑长任务,又需要区分「跑完了」和「等你点批准」的开发者或日常用户。

不适合或不会响的情况:只关心子智能体结束(故意过滤);主动中止、中断或 fork 的 turn;重复挂着未处理的审批(不会反复催音)。

兼容性:插件依赖 Client 内部的 uiSession、sessions 与 settings.general.item 等接口,尚未承诺跨大版本稳定;升级 Harness 后若失效,优先核对这三处契约。提示音跟随系统默认输出设备;远程桌面/虚拟声卡是否可听取决于客户端音频设置。

生态说明:DSH 强调「一切皆插件」;SkillHub 目录 为社区站点,与 DeepSeek / 幻方无官方从属关系,并非官方应用商店。

排障速查

  • 有设置项但试听无声:先点试听解锁 Chromium 音频上下文;查合成器电平与默认输出设备。
  • 找不到「通知提示音」:确认 bundle 启用、刷新页面或在通用设置中搜「提示音」;查日志是否有 Client 插件加载失败。
  • 找不到安装入口:用左侧 插件 页,不要用 设置 → 插件。

仓库 npm run check / npm test 用于 manifest 与 Client 检测逻辑的自检;CI 在 Node 20 与 22 上运行。

结尾

dsh-notification-chime 用两种应用内合成提示音,补上「任务已结束」和「需要你审批」这两类最容易被切屏错过的信号,并在设置里提供可验证的试听与上次触发时间。需要安装或细节时,以社区目录与 GitHub README 为准:

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

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

Xiaoye