前言¶
在 DeepSeek Harness(DSH)裏跑長任務時,窗口不在前臺或收進系統托盤,往往要等你自己切回應用才知道一輪對話結束、某步出錯,或模型在等 ask_user_question 的答覆。Web UI 裏的對話框和審批條仍然可用,但容易被別的窗口擋住。下面介紹的插件把這幾類事件接到 Windows 桌面右下角的原生卡片上,點卡片即可查看、作答或審批,不必一直盯着 Harness 窗口。
這是什麼¶
dsh-desktop-notifier 是 DSH 的 Host 插件(維護者 Mi-liu),分類爲客戶端。它在 Windows 桌面右下角 彈出通知卡片與選擇卡片:完成通知、出錯通知、ask_user_question 選擇判斷、工具審批請求。實現上 Host 側用 Node 監聽事件,彈窗由 scripts/popup.ps1(WPF,Windows PowerShell 5.1 + .NET Framework 4.x)渲染。非 Windows 平臺 Host 端保持靜默。
社區目錄頁:skillhub.cn 條目。源碼與說明:GitHub 倉庫。當前 package 版本爲 1.6.0,許可證 MIT。
核心功能¶
完成通知¶
一輪對話結束時彈出「本輪工作完成」卡片,含本輪最後一段回覆、工作區名、時間、用時。點卡片任意位置等同於「查看」:Harness 窗口前置並切回該對話;窗口在系統托盤時也會被喚出。右上角 ✕ 僅關閉卡片。
出錯通知¶
某個 step 失敗時彈出「本輪出錯」卡片(紅色強調)。點卡片或 ✕ 均可關閉。
選擇判斷彈窗¶
模型調用 ask_user_question 時,問題與選項以原生卡片展示(選項垂直排列,長文案自動換行)。點選項即作答;底部輸入框可手動輸入後發送或回車,作爲自定義回答。關閉、超時或無法渲染時回落 DSH 自帶 Web UI 對話框。
限制(README 已寫明):一次只接管 1~4 個問題、每題 1~5 個選項且不支持多選;其餘交給 Web UI。
審批請求卡片¶
DSH 需要授權工具調用時,彈出「允許一次 / 拒絕」卡片。默認僅在 Harness 不在前臺時彈(前臺仍用應用內審批);超時或關閉交回 Web UI。不提供「永遠允許」。
外觀與位置¶
卡片配色跟隨 DSH 設計 token(theme: auto 等)。排布貼近 Windows 11 通知樣式。卡片出現在 DSH 主窗口所在屏幕;找不到窗口時退到鼠標所在屏再退主屏。同一時刻最多疊 2 張通知卡,超出跳過不排隊;問題卡片串行彈出。
提示音與設置頁¶
內置多種系統音效,可填自定義 .wav 路徑。GUI 設置 → 桌面通知 可改全部選項,改後對下一次彈窗生效;首次安裝或插件新增客戶端半側後需完全退出 DSH 再打開,設置頁纔會出現(宿主啓動時掃描 dsh.client 並緩存到進程結束)。
安裝與啓用¶
推薦在 DSH Desktop 插件 頁 添加插件,填入 Git 地址或預編譯包,安裝後 啓用,再 完全退出並重啓 DSH。
Git 地址:
https://github.com/Mi-liu/dsh-desktop-notifier
或簡寫:
github:Mi-liu/dsh-desktop-notifier
預編譯包(Release v1.6.0):
https://github.com/Mi-liu/dsh-desktop-notifier/releases/download/v1.6.0/dsh-desktop-notifier-1.6.0.tgz
命令行(等價於應用內安裝;Desktop 用戶注意 profile 可能與 CLI 默認不一致):
dsh plugin --profile <profile> add github:Mi-liu/dsh-desktop-notifier
勿僅按 npm 包名 dsh-desktop-notifier 安裝:npm 上同名包爲另一位作者的 Web 側通知插件。
若已安裝 dshmarket,可在 插件 → 發現 中搜索安裝(條目來自 awesome-dsh-plugin)。
依賴:Node 側 @deepseek-ai/schemastery(DSH 自帶即可);彈窗僅需 Windows PowerShell 5.1,不需要 PowerShell 7。
典型用法與配置¶
設置頁分組¶
| 分組 | 內容概要 |
|---|---|
| 通知範圍 | 總開關、完成通知、出錯通知、是否接管 ask_user_question |
| 通知條件 | 始終通知 / 僅在 DSH 未聚焦時通知 |
| 審批請求 | 何時接管、approvalTimeoutMs |
| 提醒方式 | 提示音類型、自定義 .wav、試聽 |
| 外觀與交互 | 卡片主題、點通知卡是否前置窗口 |
| 時間與內容 | 最短回合、自動消失、選擇卡等待、正文截斷、文案語言 |
| 測試 | 三種測試通知按鈕 |
配置持久化在 profile 的 cordis.patch.yml(desktop-notifier 的 config),也可直接改文件。
常用配置鍵(節選)¶
| 鍵 | 默認 | 含義 |
|---|---|---|
enabled |
true |
總開關 |
minTurnMs |
5000 |
短於該毫秒不彈完成卡 |
notifyWhen |
always |
always / unfocused |
answerQuestions |
true |
桌面接管提問 |
answerApprovals |
unfocused |
unfocused / always / off |
infoTimeoutMs |
12000 |
通知卡自動消失 |
questionTimeoutMs |
60000 |
選擇卡超時後交 Web UI |
theme |
auto |
跟隨 DSH / 強制淺深 / 跟隨 Windows |
sound |
default |
按類型或具體音效名;soundFile 優先 |
focusOnOpen |
true |
點完成通知時前置 Harness |
locale |
zh |
文案語言 |
單獨預覽彈窗(不經過 DSH)¶
powershell -NoProfile -File scripts/popup.ps1 -PayloadFile test/payload-info.json
排查「爲什麼沒彈」¶
狀態寫在:
%TEMP%\dsh-desktop-notifier-state.json
客戶端模塊是否進圖可看:
%TEMP%\dsh-desktop-notifier-clientgraph.json
own: false 且列表無本插件時,重啓 Harness 讓宿主重新掃描包聲明。
適用場景與注意¶
適合在 Windows 10/11 上用 DSH Desktop 或 Harness、且經常 multitasking 的開發者:後臺跑 agent 時用桌面角標獲知完成/錯誤,在卡片上直接答選擇題或點審批,再一鍵回到對應對話。
務必知曉:
- 插件以當前 dsh 進程權限 運行;安裝前請閱讀源碼與 MIT 許可證,確認可接受其行爲(彈窗、讀主題、寫
%TEMP%診斷文件等)。 - 僅 Windows;多顯示器混合 DPI 下位置可能有少量像素偏差。
- 升級插件後,「點查看切回對話」依賴客戶端半側長輪詢;最穩妥是重啓 Harness 讓頁面重新加載(Host 側彈窗可熱重載)。
- skillhub.cn 等社區目錄爲獨立生態站點,與 DeepSeek / 幻方無官方從屬關係;安裝來源以 GitHub README 爲準。
結尾¶
dsh-desktop-notifier 把 DSH 的回合結束、錯誤、提問與審批接到 Windows 原生右下角卡片,並可通過設置頁細調通知條件、音效與主題。需要條目說明時打開 目錄頁,安裝與配置細節以 GitHub README 爲準。