dsh-notifier:DeepSeek Harness 多渠道通知插件

前言

在使用 DeepSeek Harness (DSH) 开发智能体时,任务往往需要长时间运行。当浏览器标签页关闭或页面处于后台时,开发者容易错过运行状态变更、审批请求或阻塞事件。dsh-notifier 插件通过提供多渠道通知能力,解决了这一问题。

这是什么

dsh-notifier 是一个为 DeepSeek Harness 增加多渠道通知功能的插件。它引入了 send_notification 模型工具,支持运行状态和阻塞事件的自动通知,并提供了一个配置页面。插件由 a23842 维护,许可证为 MIT。

安装

安装前请确保 Node.js 版本 >= 22。通过命令行添加插件:

dsh plugin --profile web add @czf1995/dsh-notifier

安装完成后,插件会自动注册并启用。

核心功能

1. 浏览器本地通知

当 DSH Web 页面在后台(失焦或隐藏标签页)时,浏览器会发送系统通知。支持的事件包括:
* 运行结束:会话从 running 变为 idle 时。
* 提问 / 审批:会话需要用户回答或批准时。
* 目标完成:默认关闭,需在设置页开启。
* 前台抑制:页面可见且聚焦时不打扰。
* 子代理排除:子代理会话不产生通知。

2. 外部渠道通知

通知由 Host 进程直接投递,不依赖浏览器页面状态。支持的事件包括:
* 会话运行结束。
* 阻塞事件(提问 / 审批)。
* 目标完成(需在设置页开启)。

支持的渠道:
* NotifyX(默认启用)
* 企业微信(应用通知 / 机器人)
* 邮件(Resend / SMTP)
* 钉钉(机器人)
* 飞书(机器人)

3. 模型工具

在 DSH 的对话中调用模型工具 send_notification。参数为 title(标题)和 content(正文),向所有已启用渠道发送。

4. 设置页

进入 DSH Web 设置页的「通知」选项卡,可以配置以下内容:
* 通知开关:总开关、浏览器通知开关、运行结束/提问/审批开关、声音开关。
* 渠道配置:勾选启用渠道,填写 API Key、Webhook URL 等配置。密钥类字段(如 API Key、Webhook、加签密钥)标记为 secret,不会写回设置接口返回值。
* 测试:每个渠道卡片右上角有「测试 XX 通知」按钮,使用已保存的配置进行测试。

5. HTTP 主动投递

除了模型工具,外部脚本、cron 或同 Host 的其他插件可以通过 HTTP 端点主动投递通知。端点为 /api/dsh-notifier/deliver。

典型用法

通过 HTTP 投递

curl --request POST http://127.0.0.1:3080/api/dsh-notifier/deliver \
  --header 'Content-Type: application/json' \
  --data '{
    "channel": "smtp",
    "title": "构建完成",
    "content": "pipeline 已结束。",
    "to": "ops@example.com"
  }'

调用模型工具

在 DSH 的对话中直接调用:

send_notification("任务完成", "子代理执行完毕,结果已保存。")

注意事项

  1. Loopback 限制:Host 侧的路由 /dsh-notifier/test 与 /api/dsh-notifier/deliver 仅接受本机回环请求(loopback-only),与 DSH /api 同一信任边界。
  2. 安全性:密钥类字段不写回设置接口,只在 Host 进程内持有。浏览器通知内容不含密钥。
  3. Node 版本:插件要求 Node.js 版本 >= 22。
  4. 鉴权:HTTP 投递无需鉴权头。

总结

dsh-notifier 为 DSH 提供了从浏览器本地通知到企业微信、钉钉等多渠道的闭环通知能力。通过设置页或 HTTP API,可以灵活地监控智能体的运行状态。插件源码位于 GitHub。

羽毛球分组比赛记分
小程序二维码

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

小夜