前言¶
使用 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检索。