dsh-notifier:DSH 统一通知推送插件

前言

在 DeepSeek Harness(DSH)里跑智能体,常见一个实际问题:任务在后台跑着,你人不在电脑前。会话结束、审批请求、运行报错,如果没人提醒,只能反复打开终端或 Web 界面查看。

自己接各平台 Webhook 也能推消息,但每个渠道 API 不同,审批回传、多会话路由、防打扰又要另写一层。维护者 THEWOLFWALKER 的 dsh-notifier 把这件事收成一套:前面一个 notify() API,后面挂 27 个渠道适配器,并支持会话事件自动推送与模型主动调用工具两条触发线。

这是什么

dsh-notifier 是 DSH 的统一通知推送插件,归类为联网工具。它在 Harness 与 Telegram、钉钉、飞书、WxPusher、PushPlus、Server酱、Bark、webhook 等渠道之间做适配与路由,同时提供远程审批、远程会话、长任务心跳等能力。插件零运行时依赖(仅使用 fetchnode:crypto 与原生 WebSocket),要求 Node.js 22+,许可证为 MIT。截至撰写时,GitHub 仓库约 61 stars、4 forks,npm 包版本 0.8.5。

核心功能

双触发线

一条线由 Harness 自动推送会话事件:turn/endapproval/askedagent/error 等,经去重与防抖后发出。另一条线面向模型:智能体可调用 notify 工具,传入 messagechanneltitle 等参数主动推送。

多渠道出站

README 列出 27 个出站渠道,涵盖 Telegram、Slack、Discord、飞书、钉钉、企业微信、QQ 机器人、Bark、PushPlus、Server酱、WxPusher、webhook、桌面通知等。消息经统一链路处理:级别路由(timeSensitive / active / passive)→ 多智能体路由矩阵 → 渠道适配器(resolve(cfg) + send(msg)),并带分级重试、分段与防打扰。

入站:审批与会话

六个入站渠道支持从手机回传:Telegram 按钮、飞书卡片、QQ / WxPusher / 微信 iLink / 钉钉回复 1/2 等方式处理审批;普通文本可触发 followup/inject! 前缀可在回合中途转向。v0.5 起,长任务默认发送心跳(15 分钟起)与卡住提醒(10 分钟无事件),Telegram/飞书通知卡片可带一键停止按钮。

身份与多智能体

v0.7 引入运行时身份系统:配对码(/pair <code>)、channel:userId 复合键绑定、角色管理;未配置白名单时以引导状态启动。v0.3.2 起支持智能体 × 渠道双向路由矩阵,会话自动注册,可用 /agent 命令族或 route.mjs CLI 管理。

管理台与开放接口

启用 admin.enabled: true 后,本机(127.0.0.1)提供 Web 管理台,含仪表盘、通知流、成员、绑定、会话、渠道六个页面,移动端适配。v0.6 起其他插件可通过 notifier 服务出站,并订阅 dsh-notifier/sent 事件。

安装与启用

DSH 0.1.0-rc.6 起,插件安装需指定 profile:

dsh plugin add dsh-notifier --profile <profile-name>

<profile-name> 换成你实际运行的 profile(例如 web)。

在 profile 的 cordis.patch.yml 中追加渠道配置,例如:

insert:
  - id: dsh-notifier
    name: dsh-notifier
    config:
      channels:
        - type: telegram
          botToken: "123456:ABC-DEF..."
          chatId: "987654321"
        - type: dingtalk
          webhook: "https://oapi.dingtalk.com/robot/send?access_token=..."
          secret: "SEC..."
        - type: bark
          key: "your-device-key"

配置完成后,turn/endapproval/askedagent/error 会推送到已启用的渠道;模型也可通过 notify 工具自行推送。

典型用法

会话事件自动通知

完成上述安装与渠道配置后无需额外代码,Harness 会话事件即会出站。长任务心跳与卡住提醒在 v0.5 默认开启。

模型主动推送

智能体在运行中可调用 notify 工具,例如:

notify({ message: "构建完成,请查看日志", channel: "telegram", title: "CI 结果" })

具体参数以插件文档为准。

远程审批与停止

审批请求到达手机后,按渠道约定操作(如 Telegram 按钮、钉钉回复 1/2)。长任务运行中,可从 Telegram 或飞书通知卡片上的停止按钮终止当前回合。

身份配对(v0.7)

在任意支持的私信渠道发送 /pair <code> 完成绑定;完整流程见仓库 docs/guide.md(中文)。

适用场景与注意

适合需要在 DSH 智能体运行过程中,把状态、审批、错误推到手机或 IM,并偶尔从手机回传指令的场景。国内用户常用的钉钉、飞书、WxPusher、PushPlus、Server酱 等均在支持列表内。

安装前请注意:

  1. 插件以当前 DSH 进程权限运行,可访问网络并监听入站;安装前应阅读 源码 与 MIT 许可证,确认凭证配置方式。
  2. 入站审批与远程会话涉及身份绑定,生产环境建议按 v0.7 身份系统完成配对与白名单配置。
  3. Web 管理台默认仅监听本机回环地址,外网暴露需自行评估风险。
  4. SkillHub 插件目录(skillhub.cn)为社区站点,与 DeepSeek / 幻方无官方从属关系;版本与功能以 GitHub 仓库为准。

结尾

dsh-notifier 把 DSH 的通知、审批回传和多渠道路由收到一个插件里,减少为每个 IM 平台单独写适配的工作。若你正在 DSH 上跑长任务或需要移动端介入,可以按 profile 安装并配置一两个常用渠道试用。

  • 目录页:https://www.skillhub.cn/plugins/THEWOLFWALKER/dsh-notifier
  • GitHub:https://github.com/THEWOLFWALKER/dsh-notifier
羽毛球分组比赛记分
小程序二维码

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

小夜