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 检索。
羽毛球分组比赛记分
小程序二维码

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

小夜