dsh-telegram-notify:DeepSeek Harness 的 Telegram 通知插件

前言

使用 DeepSeek Harness(DSH)跑 agent 時,任務完成、agent 提問、工具審批、長期目標狀態都可能在異步過程中發生。如果人不在終端旁,容易錯過需要人工輸入的節點。

下面介紹 emiliagarfield6-bot/dsh-telegram-notify。它是 DSH 的一個 Telegram 通知插件,用來在事件發生時把提醒發到 Telegram。

這是什麼

dsh-telegram-notifyemiliagarfield6-bot 維護,許可證爲 MIT。

它的定位是:在 DSH 的 agent 運行過程中,把關鍵事件轉發爲 Telegram 消息,包括:

  • 任務完成
  • agent 提問
  • 請求工具審批
  • 長期目標完成或被阻塞

核心功能

下面介紹已覈實的功能點。

觸發時機

插件會在以下事件發生時發送 Telegram 通知:

  1. agent 從運行回到空閒,也就是任務完成。
  2. agent 調用 ask_user_question,需要用戶回答。
  3. agent 請求工具審批。
  4. 長期目標完成或被阻塞。

通知降噪

爲避免不必要的打擾,插件有兩類限制:

  1. 僅根會話觸發通知,子 agent 結束不會觸發。
  2. 運行時長不足 minRunSeconds 不通知,回到空閒後有去抖。

通知模式

插件支持簡潔模式和複雜模式。

  1. 簡潔模式:只通知任務結果。
  2. 複雜模式:在結果之外附帶任務用時、token 消耗和緩存命中率。
  3. sendTaskContent:默認關閉。開啓後,在複雜模式下可附帶本輪最終產出內容。

安裝與啓用

先拿到插件源碼。下面是已覈實資料給出的安裝命令。

在插件源碼目錄執行:

dsh plugin --profile web add .

從任意目錄執行,需要給出包路徑:

dsh plugin --profile web add file:/絕對路徑/dsh-telegram-notify

file: 依賴在安裝時會打包複製。修改源碼後,需要重新執行 dsh plugin add 才生效。

如果你想在源碼目錄裏邊改邊用,可以改用符號鏈接方式:

dsh plugin --profile web add link:<路徑>

卸載可執行:

dsh plugin --profile web remove dsh-telegram-notify

配置

配置入口有兩種:DSH 設置頁,或 profile 的 cordis.patch.yml

獲取 Telegram 配置

  1. 在 Telegram 找 @BotFather 創建 bot,並獲取 token。
  2. 給 bot 發送一條消息,通過 @userinfobot 獲取 chat id。
  3. 也可以訪問下面的接口獲取 chat id:
https://api.telegram.org/bot<token>/getUpdates

在設置頁配置

進入:

設置 > 插件 > 插件配置 > telegram-notify

填入 tokenchatId。國內網絡可一併填寫 proxy,或改用 apiBase 反代地址。

還可配置:

  • sendTaskContent
  • minRunSeconds
  • 通知模式
  • 各通知開關

token 字段聲明爲 secret,設置頁只寫不讀,不會回傳明文。

在 profile 配置

也可以在 profile 的 cordis.patch.yml 中配置:

- id: telegram-notify
  config:
    token: "123456:ABC..."
    chatId: "123456789"
    proxy: "http://127.0.0.1:7890"

注意:DSH 的 patch config 是整段替換,不是深度合併。覆蓋配置時,要帶上需要設置的全部字段;未列出的字段走插件默認值。

配置優先級

配置優先級從高到低爲:

  1. 設置頁中的 telegram-notify 命名空間
  2. profile cordis.patch.ymlconfig
  3. 環境變量 TELEGRAM_BOT_TOKEN / TELEGRAM_CHAT_ID
  4. schema 默認值

首次配置後重啓

首次配置後,關閉 DSH,再重新啓動:

dsh web

啓動成功後,會收到“DSH Telegram 通知已上線”的提醒。如果通知未發送,可查看 DSH 日誌中的失敗記錄。

典型用法

經過上面的步驟後,常見用法如下。

  1. 任務完成時收到通知。
    適用於 agent 從運行回到空閒的場景。

  2. agent 提問時收到通知。
    適用於 agent 調用 ask_user_question 後等待回答的場景。

  3. 請求工具審批時收到通知。
    適用於 agent 請求工具審批後等待人工處理的場景。

  4. 長期目標狀態變化時收到通知。
    包括長期目標完成或被阻塞。

  5. 需要更多信息時,使用複雜模式。
    複雜模式會附帶任務用時、token 消耗和緩存命中率。

  6. 需要查看本輪最終產出時,開啓 sendTaskContent
    該配置默認關閉,且只在複雜模式下生效。

適用場景與注意

適合誰

這個插件適合以下情況:

  1. DSH 任務運行時間較長,人不方便一直守在終端旁。
  2. 希望 agent 提問、請求審批、長期目標狀態變化時,能立刻收到提醒。
  3. 在國內網絡環境下使用 Telegram API,需要配置 proxyapiBase
  4. 希望通知失敗不影響 agent 主流程。

注意事項

  1. 插件以當前 dsh 進程權限運行,安裝前應檢查源碼與許可證。
  2. 通知爲 fire-and-forget,失敗只寫日誌,不影響 agent 主流程。
  3. 國內網絡下 api.telegram.org 不可直連,需要設置 proxy 或改用 apiBase 反代地址。
  4. file: 安裝是安裝時打包複製,修改源碼後要重新執行 add 才生效。
  5. 運行環境要求:
Node.js ^22.19.0 || >=24.0.0
@deepseek-ai/schemastery >=3.18.0

結尾

如果你的 DSH 任務經常需要離開終端,dsh-telegram-notify 提供了一個最小閉環:把任務完成、提問、審批和長期目標狀態發到 Telegram。

相關鏈接:

  • GitHub:https://github.com/emiliagarfield6-bot/dsh-telegram-notify
  • 社區目錄:可在獨立社區目錄中按 dsh-telegram-notify 檢索。
羽毛球分组比赛记分
小程序二维码

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

小夜