dsh
OpenPetsHQ/openpets将 DeepSeek Harness 的生命周期状态、错误与审批请求,桥接到本地运行的 OpenPets 桌面伙伴。
DeepSeek Harness 音效提示:智能体需要确认、回合完成、后台任务结束或失败时播放短提示音,内置 5 套音色、逐事件开关与音量、免打扰规则,配置存放在宿主设置文档。
English | 中文
DeepSeek Harness 的音效提示插件:智能体需要你确认、这一轮跑完、后台任务结束、或者出错时, 用一声短音告诉你,不必一直盯着屏幕。
音效由 Web Audio 实时合成,包内不含任何音频文件;配置持久化在 DSH 的宿主设置文档里, 换浏览器、重开 DSH 都还在。
收录 ≠ 背书。插件是第三方代码,请只安装你信任的来源。本插件不发起任何网络请求, 不读写设置文档以外的文件,日志里不输出你的消息内容或文件路径。
五类事件,各自独立开关、独立音量:
| 事件 | 什么时候响 | 默认 |
|---|---|---|
| 等待审批 | 智能体请求越权执行工具时 | 开,音量 80% |
| 等待回答 | 智能体向你提问、等你选一个答案时 | 开,音量 80% |
| 任务完成 | 当前对话的这一轮回答结束 | 开,音量 70% |
| 后台任务结束 | 其它会话(后台任务、子代理)结束运行 | 开,音量 70% |
| 任务失败 | 会话运行出错、需要你介入 | 开,音量 90% |
| 提权授权 | 审批请求被判定为沙箱提权 | 关(会和「等待审批」重复) |
五套内置音色,同一事件音型相同、音色不同:marimba(木质,默认)、glass(玻璃)、
pulse(电子)、arcade(8-bit)、minimal(极简轻点)。
免打扰:
dsh plugin --profile desktop add github:tangjx2007/dsh-audio-cue
把 desktop 换成你的 profile 名(用 dsh web 的话通常是 web)。装完刷新页面即可,
宿主设置分节需要重启一次 dsh。
仓库已提交构建产物(
lib/),所以从 git 安装不需要执行任何构建脚本。
设置 → 插件 → 插件配置 → 音效提示:总开关、音色方案、总音量、每个事件的开关/音量/试听、 免打扰规则、恢复默认。中英双语,跟随界面语言。
想快速确认「为什么没响」,在对话里发:
/audio-cue
它会回一张表,逐个事件告诉你当前会不会响;/audio-cue test 直接播放一次审批音,
用来确认音频通路本身是通的。
| dsh-audio-cue | 完成音效类插件(如 dsh-turn-chime、dsh-sound-cue) | |
|---|---|---|
| 事件覆盖 | 5 类(含后台任务、失败、提权) | 通常 1–2 类 |
| 音色 | 5 套方案,逐事件试听 | 固定一两个音 |
| 配置粒度 | 逐事件开关 + 逐事件音量 + 总音量 | 总开关 + 总音量 |
| 配置存放 | 宿主设置文档($DSH_HOME/settings.yaml) | 浏览器本地 |
| 音频资源 | 无(运行时合成) | 视实现而定 |
dsh-sandbox,它把理由固定写成 escalate sandbox to <mode>: <justification>——插件匹配这个
格式来判定提权,因此真提权不会漏。格式不匹配时一律归为「等待审批」(宁可标错音效,也不漏事件)。
该项默认关闭。| 参数 | 效果 |
|---|---|
/audio-cue | 输出当前配置与逐事件的抑制原因 |
/audio-cue test | 强制播放一次「等待审批」音,绕过所有抑制规则 |
data/plugins/tangjx2007__dsh-audio-cue.yml(提交到 awesome-dsh-plugin 仓库;本仓库内是草稿)notifyscreenshots.json 声明 1–8 张图,路径相对该文件npm run build # 生成 lib/(自研打包器,无第三方构建依赖)
npm run test # node --test
npm run verify # 构建一致性 + 全量断言
规范与设计文档:
docs/spec/audio-cue.mddocs/spec/audio-cue-design.mddocs/tasks/src/ 分成两层:config/dnd/classify/events/cue-spec 是零浏览器依赖的纯逻辑(Node 里直接单测),
synth/player/settings-ui/client 是需要 Web Audio / DOM / Cordis 的胶水层。