前言¶
在 DeepSeek Harness(DSH)里跑智能体,常见一个实际问题:任务在后台跑着,你人不在电脑前。会话结束、审批请求、运行报错,如果没人提醒,只能反复打开终端或 Web 界面查看。
自己接各平台 Webhook 也能推消息,但每个渠道 API 不同,审批回传、多会话路由、防打扰又要另写一层。维护者 THEWOLFWALKER 的 dsh-notifier 把这件事收成一套:前面一个 notify() API,后面挂 27 个渠道适配器,并支持会话事件自动推送与模型主动调用工具两条触发线。
这是什么¶
dsh-notifier 是 DSH 的统一通知推送插件,归类为联网工具。它在 Harness 与 Telegram、钉钉、飞书、WxPusher、PushPlus、Server酱、Bark、webhook 等渠道之间做适配与路由,同时提供远程审批、远程会话、长任务心跳等能力。插件零运行时依赖(仅使用 fetch、node:crypto 与原生 WebSocket),要求 Node.js 22+,许可证为 MIT。截至撰写时,GitHub 仓库约 61 stars、4 forks,npm 包版本 0.8.5。
核心功能¶
双触发线¶
一条线由 Harness 自动推送会话事件:turn/end、approval/asked、agent/error 等,经去重与防抖后发出。另一条线面向模型:智能体可调用 notify 工具,传入 message、channel、title 等参数主动推送。
多渠道出站¶
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/end、approval/asked、agent/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酱 等均在支持列表内。
安装前请注意:
- 插件以当前 DSH 进程权限运行,可访问网络并监听入站;安装前应阅读 源码 与 MIT 许可证,确认凭证配置方式。
- 入站审批与远程会话涉及身份绑定,生产环境建议按 v0.7 身份系统完成配对与白名单配置。
- Web 管理台默认仅监听本机回环地址,外网暴露需自行评估风险。
- 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