dsh-plugin-notify:Agent 等你回覆時在 Windows 桌面彈出原生卡片

前言

用 DeepSeek Harness(DSH)跑智能體時,對話窗口不一定在前臺:Agent 通過 ask_user_question 提問、進入計劃審閱(plan review),或彈出權限確認(permission prompt)時,若你沒有盯着聊天界面,很容易漏掉。常見做法是反覆切回 DSH 窗口看有沒有 pending 請求,既打斷手頭工作,也拖慢人機協作節奏。

下面介紹社區插件 dsh-plugin-notify(維護者 nebula9i,分類:客戶端)。它在上述場景觸發時,在 Windows 上彈出原生桌面通知卡片提醒你;回答仍在聊天裏完成,卡片本身不提供作答按鈕。插件當前版本爲 0.1.0,僅支持 Windows(win32),依賴 Node.js ≥ 20 與 DSH >=0.2.0-0 <0.3.0。

這是什麼

dsh-plugin-notify 是 DSH 的 Cordis 插件 bundle:當 Agent 等待你的輸入時,調用 Windows PowerShell 繪製桌面卡片,把問題摘要、計劃審閱或權限說明展示在屏幕角落。它與 DSH 官方無從屬關係;可在社區目錄頁查看條目:nebula9i/dsh-plugin-notify,源碼與文檔在 GitHub。

設計原則是 「It notifies; it does not answer」:卡片沒有確認/拒絕按鈕,點擊卡片會把 Harness 窗口帶到前臺,你在聊天裏照常作答;插件在 waterfall 裏只調用 next() 並原樣返回結果,不改變聊天客戶端的行爲。

核心功能

觸發條件

插件監聽 Cordis waterfall,三類來源對應不同卡片樣式(README 中的 accent 顏色):

觸發 來源 waterfall 卡片
ask_user_question user-questions/request 問題文案,藍色強調
Plan review(exit_plan_mode) 同上,intent.kind: plan-review 紫色強調
Permission prompt approval/request 琥珀色強調

可通過配置項 questions、approvals 分別開關問題類與審批類通知;主開關爲 enabled。

卡片如何消失

你的操作 結果
點擊卡片 激活聊天並關閉卡片(默認 focusOnClick: true)
點擊 ✕ 僅關閉卡片,不切換窗口
在聊天裏作答 請求 settled 後插件寫入 <cardId>.close,卡片自行收起
什麼都不做 卡片不會超時,一直保留

同一會話裏多個 pending 問題會合併爲一張卡片、多個 Tab(與聊天 UI 一致);不同 chat 各用獨立彈窗。問題與審批按 request.agent.session.id 與決策類型分組,不會混在同一張卡上。

多卡片堆疊

新 chat 的卡片佔據屏幕角落最下方槽位,已有卡片被上推;被上推的卡片啓動倒計時(默認 countdownMs: 20000 毫秒,底部進度條),倒計時結束後自動關閉。再次成爲「最新」的那張卡會停止倒計時並常駐。超過 maxStack(默認 5)時,最舊的一張會立刻關閉。

各卡片由獨立的 powershell.exe 進程繪製,插件用純文本 layout 文件協調堆疊順序(每行 cardId|countdownSeconds,最新在上)。默認播放系統提示音(sound: true),可在配置中關閉。

安裝與啓用

插件以 profile bundle 方式安裝,不是單獨的 dsh plugin add 命令。在桌面應用的 profile 目錄(%USERPROFILE%\.dsh\profiles\desktop)中,把 bundle 加入 package.json 的 dependencies 與 dsh.profile.bundles,然後執行 pnpm install。

1、編輯 package.json,增加 link 依賴並把 bundle 列入 profiles(路徑改爲你本機 checkout 的絕對路徑):

// package.json
"dependencies": {
  "dsh-plugin-notify": "link:<absolute path to your checkout>"
},
"dsh": {
  "profile": {
    "bundles": [
      "@deepseek-ai/dsh-base",
      "@deepseek-ai/dsh-web-app",
      "dsh-plugin-notify"
    ]
  }
}

2、在 profile 目錄安裝依賴:

cd %USERPROFILE%\.dsh\profiles\desktop
pnpm install

bundle 自帶的 cordis.patch.yml 會掛載插件行,一般無需再寫一行配置。若要改默認行爲,可在 profile 的 cordis.patch.yml 中追加:

- id: notify
  name: dsh-plugin-notify
  config:
    countdownMs: 30000
    sound: false

3、重啓 DSH 應用後生效。打包版沒有就地熱加載;開發模式下可用 Reload Page,或在 DevTools(F12)裏執行 location.reload()。

配置項摘要

在 profile 的 cordis.patch.yml 裏通過 config 覆蓋默認值(完整表見 README):

鍵 默認值 含義
enabled true 總開關
questions / approvals true 是否響應問題 / 審批 waterfall
countdownMs 20000 被上推後的倒計時(毫秒)
maxStack 5 可見卡片上限
sound true 系統感嘆號提示音
focusOnClick true 點擊卡片是否激活 Harness 窗口
throttleMs 5000 抑制循環中完全相同請求的重複彈窗
powershell %SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe 繪製卡片的解釋器
maxBodyChars 220 正文截斷長度
title DSH needs your answer 無自定義 header 時的標題
debug / debugPath false / <plugin>/debug.log 診斷日誌

典型用法與自測

安裝並重啓後,無需額外 API:Agent 在聊天裏發起用戶問題、計劃審閱或權限請求時,若對應開關爲 true,桌面會出現卡片。你在聊天中完成作答後,卡片應自動消失;點擊卡片則回到 DSH 繼續操作。

倉庫提供 smoke 測試與 PowerShell 預覽腳本,可在開發 checkout 中驗證行爲:

node test/smoke.mjs
powershell.exe -NoProfile -ExecutionPolicy Bypass -File test/previews.ps1

適用場景與注意

適合:在 Windows 上使用 DSH 桌面版、長時間並行其他窗口、希望 Agent 「等人」時有明顯桌面提醒的開發者。

務必注意:

  • 插件僅在 Windows 上運行(package.json 的 os: ["win32"]),Linux/macOS 不適用。
  • 插件隨 當前 DSH 進程權限 執行,並會啓動 powershell.exe 繪製 UI;安裝前請閱讀源碼與 MIT 許可證,確認可接受其行爲與依賴。
  • 社區插件目錄 skillhub.cn 與 DeepSeek / 幻方無官方從屬關係;DSH 生態主張「一切皆插件」,本插件是其中的客戶端增強,不改變聊天內作答流程。

結尾

dsh-plugin-notify 把「Agent 在等你」這件事從「盯着聊天窗口」變成「桌面卡片 + 回聊天作答」:只觀察 waterfall、不替你在卡片裏點選,避免與聊天客戶端自己的 pending 狀態不同步。若你在 Windows 上常駐 DSH,可按上文 profile 方式 link 安裝並調整 cordis.patch.yml。

  • 目錄頁:https://www.skillhub.cn/plugins/nebula9i/dsh-plugin-notify
  • GitHub:https://github.com/nebula9i/dsh-plugin-notify
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜