前言¶
在 DeepSeek Harness(DSH)里跑 Agent 时,一轮对话结束、报错、需要审批或向你提问,往往发生在后台 Session 里。人若正在看别的会话或切到其他应用,很容易错过。常见做法是反复切回 DSH 看状态,或依赖模型「主动提醒」——后者并不可靠。下面介绍社区插件 dsh-tada:它监听 DSH 事件,用系统通知和应用内 toast 提醒你,且不改动 DSH 本体。
这是什么¶
dsh-tada 由维护者 junqi-lu 发布,分类为客户端插件。它以常规 DSH 插件形式安装,为 DeepSeek Harness 提供原生桌面通知:在 Agent 完成一轮、失败、需要审批或提问时发出提醒。通知由 DSH 自身触发,不依赖模型决定是否 ping 你;插件不 patch DSH,无运行时依赖,可在 Desktop 应用和 dsh web 中使用。
- 目录页:https://www.skillhub.cn/plugins/junqi-lu/dsh-tada
- 源码:https://github.com/junqi-lu/dsh-tada
- 许可证:MIT(package 版本 0.2.0)
通知如何分流¶
插件根据你当前所在位置,选择尽量不打扰的方式:
| 所在位置 | 表现 |
|---|---|
| 正在看刚结束的那条对话 | 不额外弹窗(内容已在屏幕上) |
| 在 DSH 内,但在看别的 Session | 应用内 toast |
| 在其他应用 | 系统通知 |
系统通知中心显示的是 DSH 的名称与图标;点击通知会打开对应 Session。每条提醒都对应插件订阅的 DSH 事件,而不是模型自行决定的通知。
核心功能¶
可订阅的事件¶
默认开启:一轮完成、错误、需要审批、被提问。默认关闭:Subagent、workflow 或 goal 完成。可在 Settings → Notifications 里用总开关和分事件开关调整。
模板与文案¶
标题和正文可编辑,并带实时预览。默认标题为 {{event}},正文为 {{session}}。可用占位符包括:
| 占位符 | 含义 |
|---|---|
{{app}} |
应用名(默认 DSH) |
{{event}} |
本地化事件标签,如 Turn complete |
{{session}} |
Session 标题 |
{{workspace}} |
Workspace 标题 |
{{detail}} |
回复预览、错误信息、问题或工具原因 |
未知占位符会原样显示,便于发现拼写错误。
应用内 toast 与高级选项¶
Toast 可在 1–30 秒后自动消失,或保持到点击 Open / Dismiss。Advanced 中可配置投递渠道、应用名、通知语言、静默时段、最小间隔与正文长度。
静默时段格式为 HH:MM-HH:MM,可跨午夜;静默期间会抑制自动的「一轮结束」类提醒,审批、提问以及 subagent/workflow/goal 类提醒仍会送达。最小间隔默认 1500 ms,用于限制同一 Session 内 turn-end 提醒频率。通知文案默认跟随应用语言,也可强制英文或中文。
安装与启用¶
DeepSeek Harness 生态强调「一切皆插件」;社区目录站点(如 SkillHub)与 DeepSeek / 幻方无官方从属关系,安装前请自行查看源码与 MIT 许可证。插件以当前 dsh 进程权限运行,安装即信任其 Host/Client 逻辑。
Desktop 与 Web 配置档¶
先做 profile 选择,再执行 add:
dsh plugin --profile desktop add dsh-tada # Desktop app
dsh plugin --profile web add dsh-tada # dsh web profile
固定版本示例:dsh-tada@0.2.0。Web GUI 也可在 Settings → Plugins → Add plugin 中输入 dsh-tada。
本地目录与离线¶
从 checkout 安装(仓库已提交构建好的 Client bundle,无需 install/build):
dsh plugin --profile desktop add /path/to/dsh-tada
无 npm 网络的机器可先 pack 再拷贝 tarball:
npm pack
dsh plugin --profile desktop add ./dsh-tada-0.2.0.tgz
典型用法¶
- 按上文命令为 desktop 或 web profile 安装插件。
- 打开 Settings → Notifications,按需改模板、toast、事件开关与 Advanced 项,点击 Save 后立即生效,无需重载或重启 DSH。
- 在后台跑 Agent,切换到其他应用或别的 Session,等待一轮完成或需要审批时,应收到系统通知或 in-app toast;点击系统通知应跳转到对应 Session。
排查时可访问仅 loopback 的状态端点(不含密钥):
curl -s "$DSH_WEB_URL/dsh-tada/status"
若升级后提醒消失:重载 DSH 页面以便 Client 半重新注册;Host 侧更新后需重启 DSH。Desktop 一般会自动授予通知权限;dsh web 需在浏览器中允许页面通知。
适用场景与注意¶
适合长时间在 DSH 中并行多个 Session、或经常切到其他工具写代码/查文档的开发者。不适合期望「只有模型认为重要才通知」的场景——本插件 deliberately 只跟 DSH 事件走。
开发侧:Host 在 lib/(纯 ESM),Client 由 src/client/ 构建到已提交的 client/client.js;npm test 会先重建 Client 再跑测试套件。Node 要求 >=20。
结尾¶
dsh-tada 用 DSH 原生通知通道,在「你不在当前 Session」时补上 turn 完成、错误、审批与提问提醒,并可在设置里细调文案与静默策略。进一步了解可访问 SkillHub 目录页 与 GitHub 仓库。