前言¶
在 DeepSeek Harness(DSH)里長時間跑會話時,切到別的窗口後很難察覺任務已經跑完、在等審批,或中間報錯。常見做法是盯着界面刷新,或自己寫腳本去輪詢狀態。下面介紹的 dsh-session-sounds 由維護者 XinpengWei 提供,在 Host 側監聽會話與審批事件,在桌面用 Web Audio 合成提示音、彈出右下角提醒卡片,並可選把同樣的事件推到微信(PushPlus / Server醬)或 ntfy。插件歸類爲社區目錄中的「聯網工具」;安裝與運行依附於你當前的 DSH profile 與進程權限,使用前請自行覈對倉庫源碼與 MIT 許可證。
這是什麼¶
dsh-session-sounds(GitHub:XinpengWei/dsh-session-sounds)面向在 DSH Web 或桌面 App 中使用智能體會話的用戶:用三種可區分的提示音區分「任務結束」「需要你確認或回答」「會話出錯」,並支持手機推送,避免必須守在頁面前。
核心功能¶
監聽與提醒¶
Host 端訂閱會話狀態以及審批、用戶提問相關事件;頁面默認每秒輪詢新提醒(同時保留 SSE 接口),桌面 App 與瀏覽器均可收到。
- 結束:
running從true變爲false時才視爲結束;插件啓動時已在運行的會話不會誤報。 - 需要輸入:審批或提問事件會延遲約 900ms 再提醒,避免自動策略立即放行的請求打擾你。
- 出錯:會話錯誤單獨一類提示音。
三種提示音均由 Web Audio 實時合成(結束爲上移兩音、需要輸入爲三連音、出錯爲下行低音),不依賴音頻文件。窗口右下角會短暫顯示會話標題與原因,點擊可關閉。
設置項¶
路徑:設置 → 音效提醒。包含總開關、各事件類型開關、音量、是否包含子代理(默認子代理不提醒)、是否關閉提醒卡片、試聽、發送測試提醒,以及手機推送配置。界面文案支持中文 / English,隨 DSH 界面語言切換。
多標籤頁時通過 Web Locks(失敗時回退到 localStorage 租約)只讓一處播放音效,避免重疊。瀏覽器通常要求頁面至少被點擊一次後才允許發聲;設置頁會顯示音效引擎狀態。
手機推送¶
推送由 Host 直接發出,不依賴頁面是否打開。配置保存在 $DSH_PROFILE_DIR/session-sounds.push.json;若未設置該環境變量,則使用 $DSH_HOME/session-sounds.push.json(本機一般爲 ~/.dsh/session-sounds.push.json),權限爲 0600。字段含 provider(ntfy / pushplus / serverchan)及對應憑據。推送失敗不影響桌面音效;設置頁會顯示最近一次推送的 HTTP 狀態或錯誤。
微信(推薦)
- PushPlus:在 pushplus.plus 微信登錄並關注公衆號,複製 token;在 設置 → 音效提醒 → 手機推送 選擇「微信 · PushPlus」,粘貼 token,勾選事件後保存並「發送測試推送」。
- Server醬:在 sct.ftqq.com 獲取 SendKey,在插件中選擇「微信 · Server醬」並測試。
ntfy(可選)
手機安裝 ntfy,訂閱 topic;插件中推送方式選 ntfy,服務器默認 https://ntfy.sh,topic 與手機訂閱名一致(可使用「隨機生成」)。topic 相當於共享密鑰,請使用不可猜測的名稱;Android 省電策略可能斷開常駐連接,若通知不及時可改用微信通道。
安裝與啓用¶
本插件以 bundle 形式安裝到當前 profile,而非通過名稱拼接的 dsh plugin add 命令。在 Harness 中使用 plugin_manager,action: install_bundle,target 指向本倉庫目錄;或將包加入 profile 的 dsh.profile.bundles 後重啓。安裝後新 bundle 可通過 HMR 生效。
若已安裝開發版 @local/dsh-session-sounds,請先卸載或禁用:兩者 patch id 均爲 session-sounds,同時啓用會衝突。替換已安裝的同名包後,可在插件管理裏禁用再啓用以讓 Host 重新加載,或直接重啓 Host;客戶端代碼更新後刷新頁面即可。
package.json 中當前版本爲 0.3.0。
典型用法¶
- 完成 bundle 安裝並刷新頁面,打開 設置 → 音效提醒,開啓總開關與需要的事件類型,在設置頁試聽三種音。
- 發起一條會結束的會話,切到其他應用;結束時應聽到結束音並看到提醒卡片(若未關閉)。
- 若需離開電腦:在手機推送裏配置 PushPlus 或 Server醬(或 ntfy),保存後點「發送測試推送」,在微信服務通知或 ntfy 客戶端確認收到。
- 子代理會話若也要提醒,在設置中打開「包含子代理」(聲音與推送分別過濾)。
Host 暴露的接口包括輪詢 /api/session-sounds/poll、SSE /api/session-sounds/stream、測試與推送相關路徑;頁面側負責輪詢、發聲與設置表單,細節見倉庫 README「結構」一節。
適用場景與注意¶
適合長時間 unattended 跑 DSH 會話、需要聽覺或手機通知代替盯屏的開發者。插件在當前 DSH Host 進程權限下運行並向外網發起推送請求,安裝前應閱讀 index.js / client.js 與 cordis.patch.yml,確認是否符合你的安全策略。
PushPlus 與 Server醬有免費額度;token 或 SendKey 失效時,設置頁「最近一次手機推送」會顯示失敗原因。僅 PushPlus 渠道時,消息主要出現在微信服務號內,不一定有系統橫幅;可按 README 說明通過 PushPlus 官方 App 轉發。重複相同標題與內容可能觸發 PushPlus 服務端校驗錯誤,插件已爲消息加毫秒時間戳以減輕該問題。
DSH 社區插件目錄(如 SkillHub 上的條目)由社區維護,與 DeepSeek / 幻方無官方從屬關係。
結尾¶
dsh-session-sounds 把會話結束、待你輸入和報錯三類事件統一到桌面音效、卡片提醒與可選手機推送,適合作爲 DSH 日常開發的常駐 bundle。查閱說明與源碼:
- 目錄頁:https://www.skillhub.cn/plugins/XinpengWei/dsh-session-sounds
- GitHub:https://github.com/XinpengWei/dsh-session-sounds