前言¶
用 DeepSeek Harness(DSH)跑多會話、協調者派發子代理時,常見情況是:主模型先停在一輪「等待回報」裏,後臺還有會話在跑,或者某條會話彈出待答、待批、計劃待審卡片。若只靠肉眼盯當前標籤頁,很容易漏掉後臺的收尾或提問。下面介紹的 dsh-client-ui-turn-chime 是維護者 liuyun847 發佈的 客戶端 類 DSH Web 插件:在瀏覽器裏用 Web Audio 合成一聲雙音「叮咚」,在兩類時機提醒你,且同一輪工作只響一次。插件不渲染可見 UI,安裝啓用後無需額外配置。
這是什麼¶
- 倉庫與目錄:GitHub liuyun847/dsh-client-ui-turn-chime、SkillHub 插件頁
- 當前版本:0.5.5(MIT)
- 定位:DSH Web 客戶端插件;通過
dsh.client在瀏覽器端註冊,依賴@deepseek-ai/dsh-client-runtime等客戶端運行時(見包內package.json)
核心功能¶
兩類觸發¶
-
回覆真正結束
某會話的running由true變爲false,且該會話沒有任何仍在運行的後代子代理時,播放提示音。協調者類預設裏主模型常先派發後臺子代理再停止生成去等回報;這種「暫停等待」不會誤響,提示會掛起,等該會話名下子代理全部結束、會話空閒時補響一次。 -
輪到你介入
某會話出現pendingInteraction(待答question、待批approval、計劃待審plan-review等)時立刻響一次,不等本輪收尾。DSH 默認的ask_user_question是阻塞式:工具體內 await 你的回答時,該輪 turn 未結束、running仍爲true,只訂閱running的邊沿聽不到提示,因此這條路徑是必需的。同一輪若已因「待介入」響過,收尾時不再補響。
全局監聽與子代理門控¶
自 v0.5.1 起,插件等服務就緒後訂閱客戶端服務 sessions.list(摘要:origin / parentId / running)與 uiSession.sessionStatus(每會話 running / pendingInteraction),對每個用戶會話跑判定;你在看 A 會話時,B 會話的提問或收尾也會提醒。同一輪求值裏多個會話同時該響,只播一聲。
- 子代理會話的待介入會響;收尾不單獨響,由所屬父會話在「子代理全部結束」時補響,避免協調者一輪連響多聲。
- 回覆完成時若仍有運行中的後代子代理(沿
parentId上溯,只計running),則掛起;子代理歸零且會話空閒時補響。待介入不受這道門控。
音頻與邊界¶
- 雙音(C6→G6)由 Web Audio 實時合成,不依賴音頻文件。
- 瀏覽器在未點擊/敲鍵前可能靜音 AudioContext;v0.5.2 起在首次用戶手勢時解鎖,解鎖前該響的事件會在解鎖成功後補響一次。頁面已被用戶激活過,或 HMR 重載且
navigator.userActivation.hasBeenActive爲真時,按 README 說明可當場出聲。 - 拿不到
sessions.list/uiSession.sessionStatus時,會退化到只盯「當前會話」的座位兜底路徑,與全局路徑共用判定狀態,避免重複響。
更細的判定狀態機、缺行會話只判待介入、已知邊界(如刷新後首個待介入會響、極窄時序 B1 等)見倉庫 README《特性》與《工作原理》。
安裝與啓用¶
本包是組合包(bundle):註冊行 id: turn-chime 在包內 cordis.patch.yml,宿主按 profile 的 package.json 裏 dsh.profile.bundles 加載,不需要再往 profile 的 cordis.patch.yml 裏粘貼 - insert: 行。
在 profile 目錄(例如 ~/.dsh/profiles/<profile 名>/)下執行(命令來自 README 原文):
dshpm add file:./plugins/dsh-client-ui-turn-chime --profile <profile 名>
dshpm 是替代 dsh plugin add 的裝卸 CLI,裝包的同時把包名寫入 dsh.profile.bundles。裝完後重啓 dsh,刷新頁面後生效。
從 npm registry 或 GitHub 安裝時,同樣只要包名在 dsh.profile.bundles 裏即可,例如 README 提到的 github:liuyun847/dsh-client-ui-turn-chime 或版本 ^0.5.5。
啓停:插件頁「已安裝」區本卡的總開關(寫 dsh.profile.bundles);卡片內還有行級開關(向 profile 的 cordis.patch.yml 寫 disabled 覆蓋)。
卸載:
dshpm remove dsh-client-ui-turn-chime --profile <profile 名>
若 profile 的 pnpm 帶供應鏈策略導致 pnpm remove 報錯,README 建議在 profile 目錄執行:
pnpm remove dsh-client-ui-turn-chime --config.minimum-release-age=0
典型用法¶
README《使用》一節說明:安裝並啓用後即自動播放提示音,無其他配置。 你照常使用 DSH Web 客戶端即可;無需改 profile 裏的額外配置項(資料中未列出可編輯的配置字段)。
適用場景與注意¶
適合誰:長時間開多會話、用協調者/子代理、或需要離開屏幕一會兒的 DSH Web 用戶,希望用聲音區分「這一輪真正幹完了」和「系統在等你答/批/審計劃」。
安裝前請自行覈對:插件在 當前 dsh 進程與瀏覽器頁面 的權限下運行,會訂閱會話列表與會話狀態並播放音頻。安裝前應閱讀 倉庫源碼 與 MIT 許可證,確認符合你的環境與安全要求。SkillHub 等爲社區目錄站點,與 DeepSeek / 幻方無官方從屬關係;DSH 生態強調「一切皆插件」,本介紹事實均來自上述 README 與 package.json。
結尾¶
dsh-client-ui-turn-chime 把「真正收尾」和「待你介入」拆成兩條可觀測信號,並在多會話、子代理場景下用門控與「同一輪只響一次」控制誤報與連響。若你需要這類提醒,可按 README 用 dshpm 裝入 profile 並重啓、刷新後使用。