前言¶
使用 DeepSeek Harness(DSH)跑 agent 時,任務完成、agent 提問、工具審批、長期目標狀態都可能在異步過程中發生。如果人不在終端旁,容易錯過需要人工輸入的節點。
下面介紹 emiliagarfield6-bot/dsh-telegram-notify。它是 DSH 的一個 Telegram 通知插件,用來在事件發生時把提醒發到 Telegram。
這是什麼¶
dsh-telegram-notify 由 emiliagarfield6-bot 維護,許可證爲 MIT。
它的定位是:在 DSH 的 agent 運行過程中,把關鍵事件轉發爲 Telegram 消息,包括:
- 任務完成
- agent 提問
- 請求工具審批
- 長期目標完成或被阻塞
核心功能¶
下面介紹已覈實的功能點。
觸發時機¶
插件會在以下事件發生時發送 Telegram 通知:
- agent 從運行回到空閒,也就是任務完成。
- agent 調用
ask_user_question,需要用戶回答。 - agent 請求工具審批。
- 長期目標完成或被阻塞。
通知降噪¶
爲避免不必要的打擾,插件有兩類限制:
- 僅根會話觸發通知,子 agent 結束不會觸發。
- 運行時長不足
minRunSeconds不通知,回到空閒後有去抖。
通知模式¶
插件支持簡潔模式和複雜模式。
- 簡潔模式:只通知任務結果。
- 複雜模式:在結果之外附帶任務用時、token 消耗和緩存命中率。
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 配置¶
- 在 Telegram 找
@BotFather創建 bot,並獲取 token。 - 給 bot 發送一條消息,通過
@userinfobot獲取 chat id。 - 也可以訪問下面的接口獲取 chat id:
https://api.telegram.org/bot<token>/getUpdates
在設置頁配置¶
進入:
設置 > 插件 > 插件配置 > telegram-notify
填入 token、chatId。國內網絡可一併填寫 proxy,或改用 apiBase 反代地址。
還可配置:
sendTaskContentminRunSeconds- 通知模式
- 各通知開關
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 是整段替換,不是深度合併。覆蓋配置時,要帶上需要設置的全部字段;未列出的字段走插件默認值。
配置優先級¶
配置優先級從高到低爲:
- 設置頁中的
telegram-notify命名空間 - profile
cordis.patch.yml的config - 環境變量
TELEGRAM_BOT_TOKEN/TELEGRAM_CHAT_ID - schema 默認值
首次配置後重啓¶
首次配置後,關閉 DSH,再重新啓動:
dsh web
啓動成功後,會收到“DSH Telegram 通知已上線”的提醒。如果通知未發送,可查看 DSH 日誌中的失敗記錄。
典型用法¶
經過上面的步驟後,常見用法如下。
-
任務完成時收到通知。
適用於 agent 從運行回到空閒的場景。 -
agent 提問時收到通知。
適用於 agent 調用ask_user_question後等待回答的場景。 -
請求工具審批時收到通知。
適用於 agent 請求工具審批後等待人工處理的場景。 -
長期目標狀態變化時收到通知。
包括長期目標完成或被阻塞。 -
需要更多信息時,使用複雜模式。
複雜模式會附帶任務用時、token 消耗和緩存命中率。 -
需要查看本輪最終產出時,開啓
sendTaskContent。
該配置默認關閉,且只在複雜模式下生效。
適用場景與注意¶
適合誰¶
這個插件適合以下情況:
- DSH 任務運行時間較長,人不方便一直守在終端旁。
- 希望 agent 提問、請求審批、長期目標狀態變化時,能立刻收到提醒。
- 在國內網絡環境下使用 Telegram API,需要配置
proxy或apiBase。 - 希望通知失敗不影響 agent 主流程。
注意事項¶
- 插件以當前 dsh 進程權限運行,安裝前應檢查源碼與許可證。
- 通知爲 fire-and-forget,失敗只寫日誌,不影響 agent 主流程。
- 國內網絡下
api.telegram.org不可直連,需要設置proxy或改用apiBase反代地址。 file:安裝是安裝時打包複製,修改源碼後要重新執行 add 才生效。- 運行環境要求:
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檢索。