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,請確保本地文件路徑配置正確。
羽毛球分组比赛记分
小程序二维码

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

小夜