dsh-plug-notify
DeepSeek Harness 通知插件:配置企业微信 / 钉钉 / 飞书 / QQ 机器人,项目完成或长任务结束时把结果摘要推送到配置好的渠道。
功能
- 四类渠道
| 企业微信 | 群机器人 Webhook | Webhook URL |
| 钉钉 | 群机器人 Webhook | Webhook URL、加签 secret(可选) |
| 飞书 | 自定义机器人 Webhook | Webhook URL、签名 secret(可选) |
| QQ | OneBot v11 HTTP API(go-cqhttp / NapCat / Lagrange 等) | HTTP 地址、目标类型(群/私聊)、群号或 QQ 号、access token(可选) |
- 模型工具
notify_send:向指定渠道或全部已启用渠道发送消息。agent 在项目构建完成、后台任务结束等场景主动调用。可用 template(模板名/id)+ params(占位符取值)按预设格式发送。
notify_config:读取/保存渠道与模板配置。
- 任务完成自动通知(确定性兜底):不依赖各会话 agent 是否记得调用
notify_send。宿主侧直接监听完成事件并推送:
goal/changed:目标达成或受阻时推送(含 objective 与受阻原因)。
workflow/end:workflow 结束(成功/失败)时推送(含名称与错误信息)。
agent/status:会话长任务完成——轮次 running→idle 且耗时 ≥ 阈值(默认 120 秒,设置界面可调 会话任务阈值)时推送「✅ 任务完成」(含会话标题与耗时)。排除短轮次普通对话、子代理轮次、进行中 goal 的轮次(由 goal 通知覆盖)、同轮次已手动/自动推送过的会话;同一会话 10 分钟冷却防刷屏。
- 默认开启,可在设置界面用「任务完成自动通知」开关关闭;若同一会话在窗口内已通过
notify_send 自行推送,则取消该会话待发的自动通知,避免重复打扰。
- 三类自动通知可分别绑定消息模板,按模板渲染标题/正文。
- 消息模板:可配置多个模板(名称 + 标题模板 + 正文模板),用
{参数名} 占位,发送时由 params 取值替换;系统参数自动注入:
- 通用:
{time} 时间、{date} 日期、{datetime} 日期时间。
- goal 自动通知:
{objective}、{phase}、{reason}、{session}。
- workflow 自动通知:
{workflow}、{stopReason}、{error}、{agents}。
- 设置界面支持模板增删改、点击参数标签插入光标处、为三类自动通知绑定模板。
- 设置界面:设置 → 通知机器人,支持逐渠道启用、填写、发送测试消息、手动群发、模板管理、自动通知开关与最近发送记录。
- 持久化:配置(含模板)保存在
$DSH_HOME/plug-notify.json,跨重启保留。
- 零运行时依赖(Node 22 原生 fetch + node:crypto)。
安装
dsh plugin --profile web add /path/to/dsh-plug-notify
安装后重启 DSH。
使用
- 打开 设置 → 通知机器人,填写各渠道 Webhook / API 地址,勾选启用,点「保存配置」。
- 点「发送测试消息」验证每个渠道。
- 确认「任务完成自动通知」开关处于开启状态。此后 goal 达成/受阻、workflow 结束、耗时较长的会话任务完成都会由宿主自动推送到已启用渠道,无需各会话 agent 主动调用。
- (可选)在「消息模板」区创建模板:填名称、标题模板、正文模板,点参数标签把
{参数名} 插入光标处;还可为三类自动通知分别绑定模板。保存后即可用 notify_send(template="模板名", params={…}) 或在「手动发送」里选择模板发送。
- 对其它需要告知用户的时刻(项目构建完成、后台 job 结束等),对 agent 说「完成后通知我」,agent 会调用
notify_send 推送摘要;也可以在设置页「手动发送」区直接群发。
本地 JSON API(浏览器端用)
/plug-notify/config | GET / POST | 读取 / 保存配置(含渠道、autoNotify、templates、autoTemplates) |
/plug-notify/params | GET | 系统参数清单(供 UI 展示可插入占位符) |
/plug-notify/test | POST {channel} | 向单个渠道发测试消息 |
/plug-notify/send | POST {title, content, channels, template?, params?} | 发送到已启用渠道,可引用模板 |
/plug-notify/history | GET | 最近 50 条发送记录(内存) |
License
MIT