dsh-messager:DeepSeek Harness 的任务状态通知插件

前言

在 DeepSeek Harness(DSH)里做智能体时,会话需要交互、任务完成、任务出错这些状态经常只体现在界面上。如果希望离开页面也能知道当前任务状态,dsh-messager 可以把这些事件推送到系统通知、浏览器通知,或飞书、企业微信、Discord、钉钉、Telegram。

下面介绍这个插件的能力、安装方式、配置入口,以及本地开发和接入第三方通道时需要注意的地方。

这是什么

dsh-messager 是一个 DSH 通知插件,由 ly6170 维护。它解决的是“任务状态需要主动提醒”的问题:当会话需要交互、任务完成、任务出错时,通过可用通道推送提醒。

DSH 的理念是“一切皆插件”。dsh-messager 属于社区插件,不是 DeepSeek / 幻方官方应用商店中的内置应用;本文列出的目录页是独立社区目录。

核心功能

dsh-messager 主要提供以下能力:

  • 触发时机:会话需要交互、任务完成、任务出错。
  • 系统通知:支持 OS toast。
  • 浏览器通知:支持 Notification API。
  • 第三方消息通道:
  • 飞书:interactive 卡片 + HMAC-SHA256 签名。
  • 企业微信:markdown + 可选加签。
  • Discord:embed 卡片。
  • 钉钉:actionCard + 可选加签。
  • Telegram:Bot API HTML 消息。
  • 单包双运行端:host 端负责系统通知与第三方通道,client 端负责浏览器通知。
  • 设置页编辑:DSH 设置页左侧菜单出现「通知&信使」分区,可编辑且实时生效。
  • 配置路由:配置经插件自身 webServer 路由 /dsh-messager/config,不受 DSH 设置白名单限制。
  • 可配置项:触发开关、各通道启停、verbosityicon、去重冷却、标题前缀等。
  • 扩展:支持通过 NotifyChannel 接口扩展新通道。
  • 国际化:设置分区与表单文案支持中文/English。

安装与启用

以下命令需要在插件仓库内执行。命令中的 <插件路径> 需要替换为实际插件目录。资料未提供可直接使用的 GitHub 安装命令,不建议凭插件名直接拼接安装地址。

  1. 先构建插件:
pnpm install
pnpm build
  1. 将插件安装到 web profile,然后启动 DSH:
dsh plugin --profile web add <插件路径>
dsh web

如果从 DSH 源码仓库运行时,可以把 dsh 换成 pnpm dsh

pnpm dsh plugin --profile web add <插件路径>
pnpm dsh web

安装 bundle 后,不要同时带 --patch 启动同一个插件。否则 host 端会加载两份,并出现 settings 命名空间重复注册报错。

典型用法

安装后,可以按下面几种方式使用。

1、在设置页修改配置

进入 DSH 设置页,左侧菜单会出现「通知&信使」分区。分区内是配置表单,任一处变更均实时生效。

这个分区不走 DSH 设置白名单,而是走插件自身的 webServer 路由:

/dsh-messager/config

2、直接编辑 settings.yaml

也可以直接编辑 $DSH_HOME/settings.yaml 中的 messager 段。

适合需要查看更完整字段、或希望把配置纳入文件管理的场景。

3、通过 RPC 读写配置

也可以使用:

settings.describe
settings.mutate

用于在 host 侧读取或修改配置。

4、启用第三方通道

飞书、企业微信、Discord、钉钉、Telegram 通道默认 disabled。需要配置对应的 webhooktokenchatId 等字段后启用。

各通道能力如下:

  • 飞书:需要配置机器人 webhook 和签名密钥,使用 interactive 卡片,并做 HMAC-SHA256 签名。
  • 企业微信:需要配置群机器人 webhook,可选加签,消息格式为 markdown。
  • Discord:需要配置 webhook,使用 embed 卡片。
  • 钉钉:需要配置自定义机器人 webhook,可选加签,使用 actionCard。
  • Telegram:需要配置 Bot Token 和 chatId,使用 Bot API HTML 消息。

5、本地开发

只调试 host 端时,可以从 DSH 仓库根目录运行:

pnpm dsh web --patch <插件路径>/cordis.yml

这个方式用于开发调试,只加载 host 端,不写 profile,仅对本次启动生效。

完整双端开发时,需要把插件安装到 profile:

dsh plugin --profile web add <插件路径>
pnpm dsh web

执行 plugin add 后需要重启 pnpm dsh web

修改 client 端代码后,在插件仓库重新构建 client 端并刷新页面:

pnpm run build:client

配置与限制

配置优先级为:

schema 默认值 → base(该插件行的 config:)→ 用户层(Web 设置页)

几个容易踩到的点:

  • system.icon 需要文件路径,且该文件必须存在。
  • 浏览器通知需要用户授予权限。首次加载插件时,如果权限为 default,会自动请求一次;被拒绝时,浏览器通道会静默降级,其余通道不受影响。
  • 插件存在去重冷却、完成通知防抖、每通道每分钟上限(默认 20)等限流配置。
  • 从 git 安装时,如果 pnpm >= 10,需要把构建脚本包名加入 profile 的 pnpm-workspace.yamlallowBuilds

适用场景与注意

适合以下场景:

  • 在 DSH 中运行智能体,希望离开页面时也能收到状态提醒。
  • 希望把任务状态接入飞书、企业微信、Discord、钉钉或 Telegram。
  • 需要扩展自己的通知通道,并复用 DSH 的会话/任务状态事件。

注意事项:

  • 插件以当前 dsh 进程权限运行。
  • 安装前应检查源码与仓库许可证。
  • 已核实资料中未出现许可证信息,具体以仓库实际内容为准。
  • 不要安装来源不明的构建产物,尤其是会接收 webhook、token、chatId 等敏感配置的插件。

链接

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

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

小夜