前言¶
在使用 DeepSeek Harness (DSH) 開發智能體時,任務往往需要長時間運行。當瀏覽器標籤頁關閉或頁面處於後臺時,開發者容易錯過運行狀態變更、審批請求或阻塞事件。dsh-notifier 插件通過提供多渠道通知能力,解決了這一問題。
這是什麼¶
dsh-notifier 是一個爲 DeepSeek Harness 增加多渠道通知功能的插件。它引入了 send_notification 模型工具,支持運行狀態和阻塞事件的自動通知,並提供了一個配置頁面。插件由 a23842 維護,許可證爲 MIT。
安裝¶
安裝前請確保 Node.js 版本 >= 22。通過命令行添加插件:
dsh plugin --profile web add @czf1995/dsh-notifier
安裝完成後,插件會自動註冊並啓用。
核心功能¶
1. 瀏覽器本地通知¶
當 DSH Web 頁面在後臺(失焦或隱藏標籤頁)時,瀏覽器會發送系統通知。支持的事件包括:
* 運行結束:會話從 running 變爲 idle 時。
* 提問 / 審批:會話需要用戶回答或批准時。
* 目標完成:默認關閉,需在設置頁開啓。
* 前臺抑制:頁面可見且聚焦時不打擾。
* 子代理排除:子代理會話不產生通知。
2. 外部渠道通知¶
通知由 Host 進程直接投遞,不依賴瀏覽器頁面狀態。支持的事件包括:
* 會話運行結束。
* 阻塞事件(提問 / 審批)。
* 目標完成(需在設置頁開啓)。
支持的渠道:
* NotifyX(默認啓用)
* 企業微信(應用通知 / 機器人)
* 郵件(Resend / SMTP)
* 釘釘(機器人)
* 飛書(機器人)
3. 模型工具¶
在 DSH 的對話中調用模型工具 send_notification。參數爲 title(標題)和 content(正文),向所有已啓用渠道發送。
4. 設置頁¶
進入 DSH Web 設置頁的「通知」選項卡,可以配置以下內容:
* 通知開關:總開關、瀏覽器通知開關、運行結束/提問/審批開關、聲音開關。
* 渠道配置:勾選啓用渠道,填寫 API Key、Webhook URL 等配置。密鑰類字段(如 API Key、Webhook、加簽密鑰)標記爲 secret,不會寫回設置接口返回值。
* 測試:每個渠道卡片右上角有「測試 XX 通知」按鈕,使用已保存的配置進行測試。
5. HTTP 主動投遞¶
除了模型工具,外部腳本、cron 或同 Host 的其他插件可以通過 HTTP 端點主動投遞通知。端點爲 /api/dsh-notifier/deliver。
典型用法¶
通過 HTTP 投遞¶
curl --request POST http://127.0.0.1:3080/api/dsh-notifier/deliver \
--header 'Content-Type: application/json' \
--data '{
"channel": "smtp",
"title": "構建完成",
"content": "pipeline 已結束。",
"to": "ops@example.com"
}'
調用模型工具¶
在 DSH 的對話中直接調用:
send_notification("任務完成", "子代理執行完畢,結果已保存。")
注意事項¶
- Loopback 限制:Host 側的路由
/dsh-notifier/test與/api/dsh-notifier/deliver僅接受本機迴環請求(loopback-only),與 DSH/api同一信任邊界。 - 安全性:密鑰類字段不寫回設置接口,只在 Host 進程內持有。瀏覽器通知內容不含密鑰。
- Node 版本:插件要求 Node.js 版本 >= 22。
- 鑑權:HTTP 投遞無需鑑權頭。
總結¶
dsh-notifier 爲 DSH 提供了從瀏覽器本地通知到企業微信、釘釘等多渠道的閉環通知能力。通過設置頁或 HTTP API,可以靈活地監控智能體的運行狀態。插件源碼位於 GitHub。