前言¶
用 DSH(DeepSeek Harness)跑 Agent 时,常见情况是:页面在后台、人在开会,AI 弹出「需要你选择」或「需要你审批」,等你回到浏览器已经错过一轮。钉钉自定义机器人只能发不能收,没法在群里直接点选,但至少可以把「该你拍板了」或「这一轮干完了」推到手机上。下面介绍社区插件 dsh-dingtalk-notify(维护者 LapStdy,分类:联网工具),在 DSH 里监听这些节点,经 Webhook 发到钉钉群,并在 设置 → 钉钉通知 提供配置面板。
这是什么¶
dsh-dingtalk-notify 是一个纯 JavaScript、无构建步骤的 DSH 插件。它在宿主侧旁观会话事件:需要用户选择(含计划审批)、操作被拦下要批准、一轮任务结束(完成 / 出错 / 中断)时,按你的规则组装消息并调用钉钉群机器人 Webhook。通知正文会提示「请回到 DSH 页面操作」,不替代 DSH 内的弹窗与审批流程;发送失败只记日志,不影响 AI 继续干活。
运行要求:DSH ≥ 0.1.5-rc.1,Node ≥ 18。当前仓库版本 0.2.4,许可证 MIT。
会推什么、什么时候推¶
插件按事件类型分别可开关,默认对「干活不足 5 秒的轮次」不发完成类通知,避免刷屏。
| 时机 | 钉钉里大致标题 |
|---|---|
| AI 让你选择(含计划审批) | DSH 需要你选择 |
| 某个操作被拦下要你批准 | DSH 需要你审批 |
| 一轮任务结束 | 任务完成 / 出错 / 已中断 |
门控(gating) 决定「这条要不要真发」。每个打开的 DSH 页面约每 45 秒上报一次在线状态;默认模式 away 表示有人正看着 DSH 页面就不发,人走开或只有手机在看时才发。另有 mobileOnly(仅手机在线时发)、always(总是发)。面板里的「发送测试消息」不受门控限制,用于单独验证 Webhook 链路。
消息 详细度 可在面板选「简洁」或「详细」:简洁是一句话加会话名;详细会带上问题正文、选项、工具名、用时和回复摘要等。
安装与启用¶
插件以当前 DSH 进程权限运行,安装前建议在 GitHub 浏览源码与 LICENSE,确认 Webhook、加签密钥等敏感项只写在本地配置里。
网页版(命令行 / dsh web)¶
dsh plugin --profile web add github:LapStdy/dsh-dingtalk-notify
装完后重启 dsh web(设置面板在启动时扫描插件名册),再打开 设置 → 钉钉通知。
桌面端(DeepSeek Harness 应用)¶
桌面端插件由 Electron 应用独占管理,不能用 dsh plugin --profile desktop ... 从命令行安装。在应用内:
- 左侧栏点 插件
- 点 添加插件
- 粘贴
github:LapStdy/dsh-dingtalk-notify或完整仓库地址,点安装 - 装完后重启桌面端,再打开 设置 → 钉钉通知
从 GitHub 安装不需要额外构建授权。
典型用法:从钉钉机器人到测通¶
装好插件只完成一半;能否发到群里取决于钉钉侧机器人与安全设置。
1、在钉钉群里添加自定义机器人¶
进目标群 → 群设置 → 机器人 → 添加机器人 → 自定义(通过 Webhook 接入),命名后进入安全设置。
2、安全设置(二选一)¶
- 加签(推荐):复制
SEC开头的密钥,填进 DSH 面板「加签密钥」。 - 自定义关键词:例如填
DSH;钉钉只放行正文含该词的消息。本插件标题固定带DSH,填DSH即可通过。
完成后复制 Webhook 地址(形如 https://oapi.dingtalk.com/robot/send?access_token=...)。Webhook 与加签密钥等同发帖凭据,勿泄露或提交到公开仓库。
3、在 DSH 面板填写并测试¶
打开 设置 → 钉钉通知:
- Webhook 地址:粘贴上一步地址
- 加签密钥:加签模式粘贴
SEC...;关键词模式留空 - 点 发送测试消息 —— 该操作始终真实发送,用于验证链路
群里收到测试消息即表示连通。若提示 发送失败 310000,多为关键词或加签不匹配;改用「自定义关键词」并填 DSH 是常见修法。若显示 已跳过,表示被门控、免打扰或未填 Webhook 等逻辑跳过,不是发送失败;用测试消息可绕过门控查 Webhook。
配置持久化在 ~/.dsh/dingtalk-notify/config.json,面板保存或手改文件即时生效,无需重启(改 lib/ 下插件源码则需重启 dsh web)。
配置要点¶
首次运行会自动生成配置模板。常用键如下(完整列表见仓库 README):
| 键 | 默认 | 说明 |
|---|---|---|
enabled |
true |
总开关 |
webhook |
"" |
机器人 Webhook(必填) |
secret |
"" |
加签密钥;关键词模式留空 |
detailLevel |
detailed |
brief / detailed |
gating |
away |
away / mobileOnly / always |
notifyOnQuestion / notifyOnApproval / notifyOnTurnEnd 等 |
见 README | 各事件是否通知 |
minTurnSeconds |
5 |
短于该秒数的轮次不发完成类通知;0 表示每轮都发 |
dndEnabled / dndFrom / dndTo |
可选免打扰 | 时段内可静默,出错是否仍通知由 dndExceptErrors 控制 |
atMobiles / atAll |
可选 @ | 需在高级里填手机号才会在正文 @ |
发送诊断:~/.dsh/dingtalk-notify/log.ndjson(每行一条 JSON:sent / skip / error);面板「诊断」区可看最近决策与跳过原因。
适用场景与注意¶
适合长时间挂 DSH、又不想一直盯着浏览器的人:选择、审批、长任务结束由钉钉提醒,再回 DSH 页面操作即可。
需要注意:
- 钉钉机器人不能收消息,无法在群里完成审批;插件设计就是提醒 + 回页操作。
- 若用 dsh-pocket 等把 DSH 暴露到局域网且代理未开认证,回环以外的接口可能被同网设备访问;暴露代理时应开认证或限制监听,见 README「面板接口」一节。
- 其他回答者(如
dsh-auto-review)若直接接走「需要你选择」,可能只有完成通知、没有选择通知;诊断区会有记录。
临时停用:面板关总开关,或将 enabled 设为 false。卸载网页版插件:
dsh plugin --profile web remove dsh-dingtalk-notify
结尾¶
dsh-dingtalk-notify 把 DSH 里「该你介入」和「这一轮结束了」推到钉钉群,并用门控、免打扰、详细度和诊断减少误报与排障成本。DSH 生态强调「一切皆插件」;社区目录由独立站点维护,与 DeepSeek / 幻方无官方从属关系。
- 目录页:https://www.skillhub.cn/plugins/LapStdy/dsh-dingtalk-notify
- 源码与文档:https://github.com/LapStdy/dsh-dingtalk-notify