前言¶
在 DeepSeek Harness(DSH)裏跑長任務時,模型可能連續調用多步工具,界面一直處於「運行中」。眼睛盯着輸出流,很難判斷這一輪是否已經真正收尾。有人靠切窗口、有人靠系統通知,但和「這一輪迴答結束」並不總是一一對應。
下面介紹社區插件 dsh-bubble(維護者 cccchensy):在整輪任務結束、輸出停止時,播放一串約 1.05 秒的原創「咕嚕」氣泡提示音,思路類似桌面版裏「回答完成」的輕提示——不搶注意力,但能立刻確認狀態已從運行變爲空閒。
這是什麼¶
dsh-bubble 是 DSH 生態裏的一個 client-only 插件 bundle:Host 端幾乎爲空實現,不寫 Session 事件、不註冊模型工具、不髮網絡請求。它在瀏覽器側監聽會話狀態,當某個會話從 running: true 變爲 false 時觸發一次播放;WAV 以 data URI 內嵌在構建產物裏,無需額外下載音頻文件。
插件在 SkillHub 目錄中歸類爲「趣味換裝」;倉庫 cccchensy/dsh-bubble 採用 MIT 許可證,README 標明在 DSH Desktop 0.2.1-rc.3 的 Web 界面下測試,平臺爲 web。
核心功能¶
何時響鈴¶
| 場景 | 行爲 |
|---|---|
| 會話從「運行中」變爲「空閒」——整輪任務結束、輸出停止(含期間多步工具調用) | 響一次 |
| 子代理 / Agent Teams 子會話逐個結束 | 不響;整隊只在主任務收尾時響一次 |
| 多個會話幾乎同時完成 | 700 ms 去重,只響一次 |
| 切到其他會話、停留在設置或插件頁 | 仍會響(監聽掛在頁面級浮層) |
| 頁面剛打開、尚未交互 | 遵守瀏覽器自動播放策略;第一次點擊或打字後解鎖音頻 |
| 輸入框下方小泡泡按鈕 | 靜音 / 恢復(斜線表示已靜音),狀態保存在 localStorage |
子代理會話通過會話列表行的 origin === 'subagent' 過濾,只記錄狀態、不觸發提示音。
聲音與實現要點¶
提示音不是通用 ding,而是由 numpy 程序合成的氣泡聲:低沉「咕嚕」、兩枚上浮氣泡、C5–E5–G5 琶音與輕水花,mono 44.1 kHz,峯值約 −1.0 dBFS。試聽文件在倉庫 assets/bubble-chime.wav。
完成檢測訂閱客戶端 Remote 的 api-session/status,並以 ctx.sessions.list 作兜底;掛載時用當前狀態播種,避免硬刷新後爲歷史完成補響。Web Audio 不可用時回退到 <audio> 元素。
安裝與啓用¶
前置:DeepSeek Harness(README 測試於 Desktop 0.2.1-rc.3 的 Web 界面)、Node.js ≥ 20、pnpm;部分安裝路徑需要本機已安裝 git(由 dsh plugin 轉交 pnpm 處理)。
從 GitHub 安裝¶
將 <你的 profile> 換成你實際使用的 DSH profile 名稱:
dsh plugin --profile <你的 profile> add github:cccchensy/dsh-bubble
若當前 pnpm 不接受 github: 短寫,可讓 DSH 會話按 README「方式三」代爲克隆目錄並以 bundle 安裝到當前 profile,裝完需硬刷新瀏覽器。
裝完之後¶
- 硬刷新瀏覽器(
Ctrl/Cmd + Shift + R):客戶端模塊多在啓動時加載。 - 在 DSH Plugins 頁面確認
dsh-bubble已啓用(默認安裝即啓用)。 - 發一條消息並等待跑完,任務結束時應聽到氣泡提示音。
卸載:在 Plugins 頁面停用或移除 bundle 即可;不寫會話數據。
典型用法¶
日常無需配置項:啓用插件後照常使用 DSH。需要安靜環境時,點輸入框下方泡泡按鈕靜音;狀態會保留到下次打開同一瀏覽器配置。
想先聽音色,可在 GitHub 倉庫打開 assets/bubble-chime.wav,或查看 docs/bubble-card.png 中的波形說明。開發側可用 node scripts/build.mjs 重建內嵌 WAV 的 lib/client.js,用 node scripts/verify.mjs 做結構自檢(README 記錄 2026-10-29 驗證全綠)。
適用場景與注意¶
適合:長時間多步工具任務、需要「整輪結束」聽覺反饋、又不想被系統級通知打斷的 DSH Web 使用者。
限制(來自 README):
0.1.x未驗證;只在頁面打開時播放,頁面關閉不會響。- 已停止或被用戶取消的任務同樣算「輸出停止」,會響一聲(若要區分需在
src/client.template.js的fireCompletion中自行擴展)。 - 插件以當前 DSH 進程與瀏覽器上下文運行;安裝前建議閱讀 源碼與 MIT 許可證,確認接受其行爲與依賴。
DSH 社區目錄(如 SkillHub 上的 dsh-bubble 頁)是獨立站點,與 DeepSeek / 幻方無官方從屬關係;插件由社區維護者發佈,星標與分類以目錄與 GitHub 公開信息爲準(當前 GitHub 約 2 stars)。
結尾¶
dsh-bubble 把「整輪任務真的跑完了」做成一聲短促、圓潤的氣泡提示音,並處理好子代理與併發去重,適合作爲 DSH Web 界面上的輕量完成反饋。