前言¶
在 DeepSeek Harness(DSH)裏做智能體時,會話需要交互、任務完成、任務出錯這些狀態經常只體現在界面上。如果希望離開頁面也能知道當前任務狀態,dsh-messager 可以把這些事件推送到系統通知、瀏覽器通知,或飛書、企業微信、Discord、釘釘、Telegram。
下面介紹這個插件的能力、安裝方式、配置入口,以及本地開發和接入第三方通道時需要注意的地方。
這是什麼¶
dsh-messager 是一個 DSH 通知插件,由 ly6170 維護。它解決的是“任務狀態需要主動提醒”的問題:當會話需要交互、任務完成、任務出錯時,通過可用通道推送提醒。
DSH 的理念是“一切皆插件”。dsh-messager 屬於社區插件,不是 DeepSeek / 幻方官方應用商店中的內置應用;本文列出的目錄頁是獨立社區目錄。
核心功能¶
dsh-messager 主要提供以下能力:
- 觸發時機:會話需要交互、任務完成、任務出錯。
- 系統通知:支持 OS toast。
- 瀏覽器通知:支持 Notification API。
- 第三方消息通道:
- 飛書:interactive 卡片 + HMAC-SHA256 簽名。
- 企業微信:markdown + 可選加簽。
- Discord:embed 卡片。
- 釘釘:actionCard + 可選加簽。
- Telegram:Bot API HTML 消息。
- 單包雙運行端:host 端負責系統通知與第三方通道,client 端負責瀏覽器通知。
- 設置頁編輯:DSH 設置頁左側菜單出現「通知&信使」分區,可編輯且即時生效。
- 配置路由:配置經插件自身 webServer 路由
/dsh-messager/config,不受 DSH 設置白名單限制。 - 可配置項:觸發開關、各通道啓停、
verbosity、icon、去重冷卻、標題前綴等。 - 擴展:支持通過
NotifyChannel接口擴展新通道。 - 國際化:設置分區與表單文案支持中文/English。
安裝與啓用¶
以下命令需要在插件倉庫內執行。命令中的 <插件路徑> 需要替換爲實際插件目錄。資料未提供可直接使用的 GitHub 安裝命令,不建議憑插件名直接拼接安裝地址。
- 先構建插件:
pnpm install
pnpm build
- 將插件安裝到
webprofile,然後啓動 DSH:
dsh plugin --profile web add <插件路徑>
dsh web
如果從 DSH 源碼倉庫運行時,可以把 dsh 換成 pnpm dsh:
pnpm dsh plugin --profile web add <插件路徑>
pnpm dsh web
安裝 bundle 後,不要同時帶 --patch 啓動同一個插件。否則 host 端會加載兩份,並出現 settings 命名空間重複註冊報錯。
典型用法¶
安裝後,可以按下面幾種方式使用。
1、在設置頁修改配置¶
進入 DSH 設置頁,左側菜單會出現「通知&信使」分區。分區內是配置表單,任一處變更均即時生效。
這個分區不走 DSH 設置白名單,而是走插件自身的 webServer 路由:
/dsh-messager/config
2、直接編輯 settings.yaml¶
也可以直接編輯 $DSH_HOME/settings.yaml 中的 messager 段。
適合需要查看更完整字段、或希望把配置納入文件管理的場景。
3、通過 RPC 讀寫配置¶
也可以使用:
settings.describe
settings.mutate
用於在 host 側讀取或修改配置。
4、啓用第三方通道¶
飛書、企業微信、Discord、釘釘、Telegram 通道默認 disabled。需要配置對應的 webhook、token、chatId 等字段後啓用。
各通道能力如下:
- 飛書:需要配置機器人 webhook 和簽名密鑰,使用 interactive 卡片,並做 HMAC-SHA256 簽名。
- 企業微信:需要配置羣機器人 webhook,可選加簽,消息格式爲 markdown。
- Discord:需要配置 webhook,使用 embed 卡片。
- 釘釘:需要配置自定義機器人 webhook,可選加簽,使用 actionCard。
- Telegram:需要配置 Bot Token 和 chatId,使用 Bot API HTML 消息。
5、本地開發¶
只調試 host 端時,可以從 DSH 倉庫根目錄運行:
pnpm dsh web --patch <插件路徑>/cordis.yml
這個方式用於開發調試,只加載 host 端,不寫 profile,僅對本次啓動生效。
完整雙端開發時,需要把插件安裝到 profile:
dsh plugin --profile web add <插件路徑>
pnpm dsh web
執行 plugin add 後需要重啓 pnpm dsh web。
修改 client 端代碼後,在插件倉庫重新構建 client 端並刷新頁面:
pnpm run build:client
配置與限制¶
配置優先級爲:
schema 默認值 → base(該插件行的 config:)→ 用戶層(Web 設置頁)
幾個容易踩到的點:
system.icon需要文件路徑,且該文件必須存在。- 瀏覽器通知需要用戶授予權限。首次加載插件時,如果權限爲
default,會自動請求一次;被拒絕時,瀏覽器通道會靜默降級,其餘通道不受影響。 - 插件存在去重冷卻、完成通知防抖、每通道每分鐘上限(默認 20)等限流配置。
- 從 git 安裝時,如果
pnpm >= 10,需要把構建腳本包名加入 profile 的pnpm-workspace.yaml的allowBuilds。
適用場景與注意¶
適合以下場景:
- 在 DSH 中運行智能體,希望離開頁面時也能收到狀態提醒。
- 希望把任務狀態接入飛書、企業微信、Discord、釘釘或 Telegram。
- 需要擴展自己的通知通道,並複用 DSH 的會話/任務狀態事件。
注意事項:
- 插件以當前 dsh 進程權限運行。
- 安裝前應檢查源碼與倉庫許可證。
- 已覈實資料中未出現許可證信息,具體以倉庫實際內容爲準。
- 不要安裝來源不明的構建產物,尤其是會接收 webhook、token、chatId 等敏感配置的插件。