dsh-sonic:音效提醒插件

前言

DeepSeek Harness (DSH) 的插件生态允许在浏览器端扩展交互能力。在开发智能体或工具时,Agent 处于后台运行状态,或者用户不在当前页面时,视觉反馈往往会被忽略。dsh-sonic 插件通过浏览器实时合成音效,填补了听觉反馈的空白,用于在 Agent 需要用户确认(如审批请求、等待作答)或任务完成(Agent 状态变为 idle)时播放提示音。

插件概述

dsh-sonic 是一个由 xjwwjx 维护的客户端插件。它利用 Web Audio API 实时合成 8 种音效,无需加载任何外部音频文件。插件旨在提供清晰、即时的听觉反馈,帮助用户感知 Agent 的状态变化。

核心功能

音效触发

  • 确认音:在审批请求(沙箱提权、插件运行授权)、ask_user_question 等待用户作答时触发。
  • 完成音:当 Agent 状态由 running 转为 idle 时触发。

8 种实时合成音效

所有音效均由浏览器端实时合成,支持以下类型:
- ding:单音清脆
- dingdong:门铃双音
- pop:轻快气泡
- chime:柔和三连音
- success:上扬琶音
- beep:电子短哔
- alarm:提醒双音
- marimba:木琴敲击

设置面板

在 DeepSeek Harness Web 的设置 → 通用中,可配置以下选项:
- 一键静音
- 音量滑块
- 分别挑选确认音与完成音
- 点击即试听
- 自动保存配置并同步给模型

模型工具

插件向模型提供了两个工具:
- sonic_play:立即播放指定的音效(用于测试或演示)。
- sonic_status:读取当前面板的选择状态。

安装与启用

dsh-sonic 以 bundle 插件的形式安装,类似于 @liustack/modlens,随 Web profile 自动加载。

  1. 将本包链接进 profile。编辑 ~/.dsh/profiles/web/package.json:
    - 在 dependencies 中添加:"dsh-sonic": "file:<本包路径>"
    - 在 dsh.profile.bundles 列表中添加:"dsh-sonic"
  2. 在 profile 目录执行安装命令:pnpm install
  3. 重启 DeepSeek Harness Web —— 插件随组合自动加载,进程重启后依然生效。

工作原理

插件采用 Host 与 Browser 分离的架构:

  • Host 端:监听 approval/request、ask_user_question、agent/status 等事件,将通知放入队列。提供 POST /sonic/state 接口接收设置,以及 GET /sonic/drain 接口供浏览器拉取待播放的音效队列。
  • Browser 端:每 1 秒轮询 /sonic/drain,根据返回的数据播放对应的音效。同时维护设置面板,通过 settings.general.item 接收用户配置。

自定义音效

音效的配置位于 dsh/client.js 的 PRESETS 常量中。每个音效是一组音符参数,支持频率(freq/endFreq)、时长(at/dur)、波形(type)和音量(gain/attack)。
若需新增音效,在 PRESETS 中添加条目,并在 Host 端 sonic_play 工具的枚举中补充对应的 key 即可。

注意事项

  • 安装方式:本文介绍的是静态 bundle 插件的安装方式。动态版(会话内 cordis_define 加载)源码位于 examples/dynamic-host.js 与 examples/dynamic-client.js,仅作参考,且进程重启后会丢失。
  • 权限与路径:静态版安装需配置 profile 的 package.json 和 dsh.profile.bundles,请确保本地文件路径配置正确。
羽毛球分组比赛记分
小程序二维码

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

小夜