前言¶
DeepSeek Harness(DSH)的設計理念是“一切皆插件”,旨在讓開發者通過組合工具擴展智能體能力。在實際開發中,智能體常需用戶進行確認、做決定或處理已完成任務。如果缺乏有效交互手段,用戶可能錯過重要信息。dsh-caller 是爲此設計的一個插件,它通過物理層面的聲音和彈窗強制打斷用戶,確保“呼叫”一定會被感知。
這是什麼¶
dsh-caller 是由 ChuxueTeam 維護的 DeepSeek Harness 客戶端插件。當模型需要你本人回到電腦前時,它會調用 call_owner 工具。該插件設計初衷是強打擾:彈窗不會自動消失,提示音會循環播放,直到用戶親手關掉。
核心功能¶
該插件具備以下已覈實的能力:
- 可自定義彈窗:支持修改彈窗的標題、正文和一行說明文字。
- 三種提示音來源:支持系統語音朗讀(依賴 Windows SAPI)、內置音效、以及本地音頻文件。
- 強制循環播放:提示音會循環播放,任何關閉彈窗的操作(點擊、Esc 鍵、被新呼叫擠掉)都會立即停止聲音。
- 緊急模式:通過設置
urgent: true,彈窗會切換爲 🚨 樣式,更加醒目。 - 開關控制:用戶可在設置中關閉“允許 AI 呼叫我”開關,此時模型調用工具將無法喚起彈窗。
- 工具回執:工具返回
{ delivered, clients, text?, note }。如果未打開窗口或開關關閉,delivered爲false,模型可據此調整策略。 - 系統通知:作爲可選的輔助手段,當窗口不在最前面時,會發送系統通知。
- 零侵入:不修改 DSH 內置包、不讀取業務 DOM、不發起任何外部網絡請求。
安裝與啓用¶
安裝該插件需要使用 DSH 的命令行工具。
dsh plugin --profile desktop add github:ChuxueTeam/dshOwnerCaller
如需本地開發,可克隆倉庫後通過本地鏈接添加:
git clone https://github.com/ChuxueTeam/dshOwnerCaller.git
dsh plugin --profile desktop add link:<你的路徑>/dshOwnerCaller
插件採用“單包雙面”架構:lib/index.js 是宿主半邊,負責處理工具調用和事件總線;lib/client.js 是瀏覽器半邊,負責設置面板、彈窗渲染和音頻播放。
使用方法¶
安裝完成後,按以下步驟配置和使用:
-
配置設置
打開 設置 → 呼叫主人。在此界面可以調整彈窗文案、提示音源、音量,並配置是否允許 AI 呼叫。 -
測試呼叫
在設置面板中,可以使用三個測試按鈕:- 立即呼叫(測試):完整模擬一次呼叫效果。
- 只預覽彈窗:查看樣式,不播放聲音。
- 試聽提示音(只響一遍):單獨測試音頻效果。
-
模型調用
模型在需要你介入時,會調用call_owner工具。參數包括:text:彈窗文案(最多 300 字),省略則使用默認文案。reason:可選的一行說明。urgent:布爾值,設爲true開啓緊急模式。silent:布爾值,設爲true僅彈窗不響。
工作原理¶
插件通過宿主進程與瀏覽器端的通信實現功能:
- 宿主進程:模型調用
call_owner工具後,事件進入宿主進程的事件總線。宿主通過GET /api/dsh-caller/stream(SSE)或GET /api/dsh-caller/poll(輪詢)將事件推送給瀏覽器。 - 瀏覽器端:
lib/client.js常駐 SSE 連接,收到call事件後觸發彈窗並啓動音頻播放器。 - 狀態同步:彈窗的關閉回調持有播放器的
stop()方法,確保關窗即靜音。若音源播放失敗(如文件被刪),會自動退回內置音效兜底。
注意事項¶
- 強打擾設計:請勿在公共場合或會議中開啓高音量測試,彈窗必須手動關閉。
- 環境依賴:使用系統語音朗讀功能依賴 Windows 的
System.Speech(SAPI)。 - 生效時機:修改
lib/client.js需要刷新頁面(Ctrl+R);修改lib/index.js需要重啓 DSH 宿主。 - 許可證:該插件採用 MIT 許可證。