DeepSeek Harness 插件:dsh-completion-sound

DeepSeek Harness (DSH) 的核心设计理念是“一切皆插件”。在使用 DSH 进行智能体开发时,开发者需要明确的反馈来确认 Agent 是否完成了当前的任务,或者在长时间等待时收到提示。DSH 原生自带完成音效,但功能较为单一。dsh-completion-sound 插件在此基础上扩展了音效、长任务特殊音乐提醒以及桌面通知功能。

核心功能

该插件提供以下功能:

  • 完成音效:使用 WebAudio 合成双音调(E5 → A5)提示单次交互完成。
  • 长任务音乐:当任务时长超过阈值(默认 10 分钟)时,播放特殊音乐并显示一个“点击任意处停止”的模态框。
  • 自定义特殊音乐:支持指定单个音频文件,或指定一个音频目录(插件会随机扫描并播放目录中的文件)。
  • 预置音频资源:内置“关羽歌”音频文件(约 13.5 MB),位于 assets/guan-yu.wav。
  • 可配置阈值:长任务阈值可在 1 分钟至 10080 分钟(7 天)之间调整。
  • 桌面通知:提供跨平台的桌面通知支持,优先使用浏览器通知,在不可用时自动回退到系统通知(macOS 使用 osascript,Linux 使用 notify-send)。
  • 独立设置页面:所有配置集中在“设置 → 完成音效”页面。
  • 冲突处理:该插件通过 cordis.patch.yml 禁用了 DSH 内置的完成音效行(ui-completion-sound),并插入自己的配置行,避免在同时启用两者时出现双重播放。

安装与启用

安装该插件会将其添加到指定的 DSH 配置文件(profile)中。安装命令如下:

dsh plugin --profile web add github:jensentsts/dsh-completion-sound

请将 web 替换为你实际使用的 profile 名称。由于构建产物已提交,安装过程无需额外授权构建权限。

如果你需要固定特定的代码版本以防止后续更新引入变更,可以使用 commit hash 进行安装:

dsh plugin --profile web add github:jensentsts/dsh-completion-sound#<sha>

卸载命令:

dsh plugin --profile web remove @jensentsts/dsh-completion-sound

配置说明

在 DSH 界面的“设置 → 完成音效”页面中,可以进行以下配置:

  • 启用:开关完成音效。
  • 通知:开关桌面通知功能。
  • 音量:音量大小,范围 0-1,默认 0.5。
  • 长任务阈值:触发特殊音乐的分钟数,默认为 10。
  • 特殊音乐:开关长任务完成时是否播放特殊音乐。
  • 特殊路径:指定特殊音乐文件的路径或目录路径。留空则使用内置的“关羽歌”。

特殊路径语义:
* 空字符串:使用内置的 assets/guan-yu.wav。
* 文件路径:播放该文件。
* 目录路径:递归扫描该目录下的音频文件(支持 .aac, .flac, .m4a, .mp3, .oga, .ogg, .opus, .wav, .webm,最多 512 个),每次播放时随机选择一个。

注意事项

  • 权限与安全:安装插件意味着在本地机器上运行第三方代码,并使用当前用户权限。在安装前,请务必审查其源码。
  • 系统依赖:桌面通知的系统级回退功能需要系统环境支持。Linux 系统通常需要安装 libnotify-bin(提供 notify-send),macOS 则依赖内置的 osascript。
  • 插件架构:这是一个 DSH Bundle,通过 package.json 中的 dsh.bundle.patch 指向 cordis.patch.yml,并在 dsh.client 中声明了 web 平台的注入逻辑。

总结

dsh-completion-sound 通过音效和通知机制,解决了智能体开发中“何时结束”和“长时间等待”的感知问题。它提供了从简单音报到长任务提醒的完整配置能力,适合需要精细化控制交互反馈的开发者。

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

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

小夜