前言¶
DeepSeek Harness(DSH)在桌面端跑 Agent 時,窗口一旦切到別的應用,提問、工具授權和一輪迴復結束都容易錯過。瀏覽器自帶的 Web Notification 在 Electron 殼裏體驗參差,也缺少和 DSH 會話、Goal 模式對齊的合併與彙總邏輯。下面介紹社區插件 dsh-notify-toast(維護者 game25011,MIT):面向 Windows 10/11 的 DSH Desktop,用系統 toast 和任務欄角標做「未聚焦時才提醒」,不常駐托盤、不訪問外網、不調用模型。
這是什麼¶
dsh-notify-toast 是適用於 DeepSeek Harness Desktop 0.2.1-rc.2(Electron,profile 爲 desktop)的非官方客戶端插件。清單公共 id 爲 dsh.notify-toast,源碼包名與目錄爲 dsh-notify-toast,當前版本 0.4.0。形態爲 DSH 官方 bundle(Host + Web Client 兩半),通過官方插件管理器安裝;npm 上尚未發佈該包,不要執行 npm install dsh-notify-toast(該名稱在 npm 上屬於其他項目)。
插件監聽 DSH 權威事件(審批、提問、根會話 turn/end),在客戶端判斷 document.hasFocus() 與 visibilityState;窗口聚焦時不彈不響。Host 側通過 PowerShell/C# WinRT 走 Windows 原生進度 toast,失敗時靜默降級爲 Web Notification,兩條路徑均爲 silent,提示音由插件統一播放一次。
核心功能¶
三類提醒¶
| 場景 | 觸發 | 表現(摘要) |
|---|---|---|
| 需要回答/確認 | user-questions/request |
標題「DeepSeek 想問你一個問題」,正文爲問題原文截斷 |
| 需要授權 | approval/request |
標題「DeepSeek 需要你的授權」,正文爲工具名與簡短目的 |
| 本輪迴復結束 | 根會話 session/event 的 turn/end(completed) |
按步數變化標題;正文取最後一條助手回覆首段,取不到爲「點擊查看」 |
子代理完成默認不觸發「本輪迴復結束」提醒;只表示這一輪迴復結束,不代表整個任務完成。
目標模式(Goal)¶
在 goal active + armed 期間不逐輪彈完成提醒;在 complete、paused、blocked、Round 上限或 disarmed 後,按 roundsStarted 增量只發一條彙總。提問與授權仍即時彈出。
任務欄未讀角標(0.4.0)¶
DSH 在後臺時,在任務欄圖標上按不同根會話計數(同一會話多次完成只計 1)。1–3 顯示數字角標,超過 3 顯示紅點;回到 DSH 或聚焦後自動清除。可在設置中關閉。不增加常駐進程,僅在 helper 一次性調用中更新。
原生進度 toast 與兼容¶
默認使用 Windows 原生進度通知(含動態進度條),到達近似時間後停止更新並收回橫幅;通知中心保留受 ExpirationTime 約束。可在設置裏切換「Windows 兼容通知」。正文默認 40 個 Unicode 碼點(可配 20–60);隱私模式可只顯示標題。
其它行爲¶
- 合併:默認 2.5 s 內多個「完成」合併爲一條。
- 點擊回窗:Host 優先用
SetForegroundWindow置前 DSH,再盡力打開對應會話。 - 提示音:Web Audio 四種合成音 + 內嵌 CC0「彈一下」,音量 0–100,可關閉、可試聽。
- 可選(默認關):多個根會話同時運行且全部成功結束後,將最後結束的會話標題改爲指定文案;僅單會話運行時不生效。
明確不做:常駐托盤/後臺服務、任務欄進度條閃爍、外網遙測、修改 DSH 核心。
安裝與啓用¶
不要手改 profile 的 package.json 或 cordis.patch.yml。安裝後 Host JavaScript 模塊需重啓一次 DSH 纔會加載新代碼(客戶端 bundle 可熱更新)。
方式 A:應用內插件管理器(推薦)¶
- 將
dsh-notify-toast-0.4.0.tgz放到本機目錄(路徑勿含空格)。 - 在 DSH 內安裝:
- Agent:plugin_manager→action: install_bundle,target: <tgz 絕對路徑>
- 或使用插件管理界面(Desktop 的 desktop profile 由 Electron 應用管理,自管 web/headless profile 才適用 CLI 插件命令)。 - 在 設置 → 插件 確認
dsh-notify-toast已啓用,重啓 DSH。 - 打開 設置 →「通知」,點「發送測試通知」;「運行狀態」可查看 Host 連接、transport 與最近提醒計數。
方式 B:開發期 link¶
plugin_manager → install_bundle → target: <插件目錄絕對路徑>
目錄安裝爲 link,改動可被 HMR 感知;Host 側 JS 未熱更新時需重啓 DSH。
方式 C:自託管市場索引¶
在 DSH 插件市場/發現頁添加自定義索引:
https://raw.githubusercontent.com/game25011/dsh-notify-toast/13729f7061214a62074e75ee3274225482fe5494/market-index.json
添加後搜索 dsh-notify-toast 可從 Git 源安裝固定版本。DSH 官方默認索引不會自動收錄,其他用戶需自行添加同一索引或等待目錄收錄。
卸載¶
插件管理界面禁用/移除,或 Agent:plugin_manager → action: remove_bundle,target: dsh-notify-toast。卸載後 Host 監聽與客戶端 bundle 隨插件釋放,profile patch 中的配置不再生效。
典型用法¶
安裝並重啓後,日常無需額外命令:Agent 在後臺跑任務時,遇到提問或授權會彈 toast;根會話一輪結束且窗口未聚焦時會提醒。Goal 長任務結束後收到一條彙總而非連環彈。
在 設置 →「通知」 可按需調整:
- 總開關與各子開關(提問、授權、本輪迴復、任務欄角標、Goal 結束後彙總)。
- 通知顯示方式(原生進度 / 兼容)、自動移除時間(3–30 秒,默認 8 秒)。
- 正文長度、隱私模式、提示音與音量、合併間隔(0–10000 ms,默認 2500)。
- 「測試通知」「測試系統通知」與狀態診斷。
配置即時生效,持久化走官方 ctx.settings(寫入當前 profile patch),重啓 DSH 後保留。
適用場景與注意¶
適合:在 Windows 10/11 上使用 DSH Desktop,經常把 DSH 放到後臺寫代碼或開會,仍需要知道 Agent 在等授權、等回答或剛跑完一輪的用戶。
環境與權限:
- 引擎要求:
dsh>=0.2.1-rc.2 <0.3.0,Node>=20。 - 插件以當前 DSH 進程權限運行;安裝前應閱讀 GitHub 倉庫 源碼與 MIT 許可證。主要代碼由 AI 編程助手生成,人類維護者負責需求、測試與發佈;詳見倉庫
AI-DISCLOSURE.md。 - 通知權限拒絕、Host 不可用或
koffi加載失敗時插件不崩潰,設置頁會顯示狀態並降級。 - Goal 邊界場景維護者標註仍待補測;使用前以倉庫 README 與 CHANGELOG 爲準。
結尾¶
dsh-notify-toast 把 DSH 後臺時的提問、授權與根會話完成,接到 Windows 原生通知和任務欄未讀角標上,並配合 Goal 彙總、合併與隱私選項,減少漏看又不搶焦點。社區目錄頁:skillhub.cn/plugins/game25011/dsh-notify-toast;源碼與安裝說明:github.com/game25011/dsh-notify-toast。