dsh-messager:DeepSeek Harness 的任務狀態通知插件

前言

在 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 設置白名單限制。
  • 可配置項:觸發開關、各通道啓停、verbosityicon、去重冷卻、標題前綴等。
  • 擴展:支持通過 NotifyChannel 接口擴展新通道。
  • 國際化:設置分區與表單文案支持中文/English。

安裝與啓用

以下命令需要在插件倉庫內執行。命令中的 <插件路徑> 需要替換爲實際插件目錄。資料未提供可直接使用的 GitHub 安裝命令,不建議憑插件名直接拼接安裝地址。

  1. 先構建插件:
pnpm install
pnpm build
  1. 將插件安裝到 web profile,然後啓動 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。需要配置對應的 webhooktokenchatId 等字段後啓用。

各通道能力如下:

  • 飛書:需要配置機器人 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.yamlallowBuilds

適用場景與注意

適合以下場景:

  • 在 DSH 中運行智能體,希望離開頁面時也能收到狀態提醒。
  • 希望把任務狀態接入飛書、企業微信、Discord、釘釘或 Telegram。
  • 需要擴展自己的通知通道,並複用 DSH 的會話/任務狀態事件。

注意事項:

  • 插件以當前 dsh 進程權限運行。
  • 安裝前應檢查源碼與倉庫許可證。
  • 已覈實資料中未出現許可證信息,具體以倉庫實際內容爲準。
  • 不要安裝來源不明的構建產物,尤其是會接收 webhook、token、chatId 等敏感配置的插件。

鏈接

羽毛球分组比赛记分
小程序二维码

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

小夜