前言¶
在 DeepSeek Harness 中,頂層 Agent 執行任務時可能完成、進入等待或等待審批。如果開發者不在終端窗口或 Web UI 前,容易錯過這些狀態。dsh-notify-center 是 SingleOne 維護的 DSH 插件,MIT 許可。它把頂層 Agent 的完成或審批等待事件發送成本機桌面通知,也可以投遞到已配置的 Webhook。下面介紹它的定位、能力、安裝方式和需要注意的地方。
這是什麼¶
dsh-notify-center 是統一的本機桌面通知和 Webhook 通知插件。它面向需要離開當前終端但仍要接收 DSH 狀態提醒的使用者。
它主要解決三個問題:
1、頂層 Agent 完成一輪任務後,及時通知使用者。
2、頂層 Agent 等待審批時,提醒用戶處理,但不接管審批 waterfall。
3、把通知送到本機桌面,或推送到已配置的遠程 Webhook。
它不額外產生提示詞、Token、工具調用或模型行爲開銷。
核心功能¶
完成與審批事件¶
插件以 session/event → turn/end 保存準確的結束原因,並在頂層 Agent 進入 idle 後派發完成通知。
它監聽持久的 approval/asked 審計事件,提醒用戶處理審批。默認會過濾子 Agent;同一 Agent 連續完成多輪時,按順序逐輪通知。
本機桌面通知¶
本機通知支持:
- Windows 原生 Toast,失敗時降級爲 NotifyIcon 氣泡。
- macOS
osascript。 - Linux
notify-send。
每條本機通知使用 session + turn/event 唯一標識,避免 Windows 因複用 tag 靜默吞掉後續通知。
Webhook 通知¶
插件支持飛書、企業微信、釘釘、Slack、Discord 和自定義 JSON Webhook。
每個 Webhook 可獨立選擇事件和摘要權限;遠程通道默認 includeSummary: false,啓用後會發送該輪迴復的有界摘要。
Webhook 支持超時和指數退避重試;投遞不阻塞 Agent,日誌不會輸出 Webhook URL。
過濾與正文控制¶
插件支持按完成結果開關、關鍵詞/正則包含與排除規則、正文長度上限。事件範圍和規則可以在 DSH Web UI 設置頁調整,也可以在 profile 基礎配置中提供組合基礎值。
安裝與啓用¶
插件運行環境要求 Node >=20。
從 GitHub 安裝到 DSH web profile:
dsh plugin --profile web add github:SingleOne/dsh-notify-center
安裝後重啓 dsh web。
如果從源碼開發,可在插件倉庫根目錄執行:
npm install
npm run check
然後安裝本地目錄:
dsh plugin --profile web add .
源碼驗證可執行:
npm run typecheck
npm test
npm run build
典型用法¶
1、打開 DSH 左側設置入口,選擇“通知中心”。
2、修改本機通知、Webhook、事件範圍、摘要權限或正文長度上限等設置。
3、保存後即時生效。
也可以在 ~/.dsh/profiles/web/cordis.patch.yml 中爲插件行添加 config 作爲組合基礎值:
- id: dsh-notify-center
config:
webhooks:
feishu:
url: 'https://open.feishu.cn/open-apis/bot/v2/hook/REPLACE_ME'
includeSummary: false
頁面保存的用戶層位於:
$DSH_HOME/dsh-notify-center/settings.json
未設置 DSH_HOME 時:
~/.dsh/dsh-notify-center/settings.json
該文件由插件維護,不建議手工編輯。
桌面橋接¶
可選的桌面 App 橋接可以優先把通知交給桌面 App 展示。橋接缺失或失敗時,自動回退系統原生通知。
桌面 App 啓動 DSH 子進程時可注入:
DSH_NOTIFY_BRIDGE_URL
DSH_NOTIFY_BRIDGE_TOKEN
獨立系統通知的點擊行爲由操作系統負責;只有桌面橋接通知支持喚醒 App 並定位會話。
適用場景與注意¶
適合:
- 頂層 Agent 長時間執行,希望在完成或等待審批時收到提醒。
- 需要把 DSH 狀態推送到飛書、企業微信、釘釘、Slack、Discord 或自定義 Webhook。
- 希望在 DSH Web UI 中調整通知設置,而不是隻改 profile 基礎配置。
使用前注意:
- 插件以當前
dsh進程權限運行,安裝前應檢查源碼與許可證。本插件許可證爲 MIT。 - 插件僅向顯式配置的 HTTP(S) 地址發請求。
- Webhook URL 只存在當前用戶的 Host 設置文件或 profile 基礎配置中,並以 secret 字段持久化、不會回傳瀏覽器。
- 插件配置 API 僅接受迴環同源請求,並從所有響應中剝離 URL;Webhook URL 不寫入會話日誌,也不會進入模型上下文。
- Linux 系統必須提供
notify-send。 - 可視化設置頁僅隨 DSH Web UI 加載;headless 使用方式仍通過 profile 配置。
- 缺少 WebServer 時只會停用頁面和配置 API,不影響本機通知與 Webhook 投遞。
- 投遞隊列僅保存在內存中;DSH 進程退出時不會持久化未完成重試。
- Windows 首次通知會創建開始菜單快捷方式
dsh-notify-center.lnk,並在當前用戶的HKCU\Software\Classes\AppUserModelId下注冊DeepSeekHarness.NotifyCenter;不寫入系統級註冊表。移除快捷方式和該 HKCU 項即可撤銷。
結尾¶
dsh-notify-center 的價值比較集中:把 DSH 頂層 Agent 的完成和審批等待狀態送到本機桌面或已配置 Webhook,同時保留默認關閉摘要、URL 脫敏和進程內投遞等限制邊界。
GitHub 倉庫:
https://github.com/SingleOne/dsh-notify-center