Chuyển đến nội dung chính

dsh-plug-notify

Đã xác minh

dsh-plug-notify · v0.4.0 · MIT · Giao diện web

DeepSeek Harness 通知插件:配置企业微信/QQ/飞书/钉钉机器人推送消息。宿主侧确定性自动通知(goal 达成/受阻、workflow 结束、会话长任务完成);支持多消息模板({参数名} 占位 + 系统参数自动注入);设置 → 通知机器人 提供配置、模板与测试界面。

Cài đặt

dsh plugin add dsh-plug-notify

Xác nhận layer đã áp bằng dsh --profile default --dump-config — xem hướng dẫn cài plugin.

Mã nguồn

Thẻ

Readme

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 plugin --profile web add dsh-plug-notify

安装后重启 DSH。

使用

  1. 打开 设置 → 通知机器人,填写各渠道 Webhook / API 地址,勾选启用,点「保存配置」。
  2. 点「发送测试消息」验证每个渠道。
  3. 确认「任务完成自动通知」开关处于开启状态。此后 goal 达成/受阻、workflow 结束、耗时较长的会话任务完成都会由宿主自动推送到已启用渠道,无需各会话 agent 主动调用。
  4. (可选)在「消息模板」区创建模板:填名称、标题模板、正文模板,点参数标签把 {参数名} 插入光标处;还可为三类自动通知分别绑定模板。保存后即可用 notify_send(template="模板名", params={…}) 或在「手动发送」里选择模板发送。
  5. 对其它需要告知用户的时刻(项目构建完成、后台 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