前言¶
DeepSeek Harness(DSH)在桌面端跑 Agent 时,窗口一旦切到别的应用,提问、工具授权和一轮回复结束都容易错过。浏览器自带的 Web Notification 在 Electron 壳里体验参差,也缺少和 DSH 会话、Goal 模式对齐的合并与汇总逻辑。下面介绍社区插件 dsh-notify-toast(维护者 game25011,MIT):面向 Windows 10/11 的 DSH Desktop,用系统 toast 和任务栏角标做「未聚焦时才提醒」,不常驻托盘、不访问外网、不调用模型。
这是什么¶
dsh-notify-toast 是适用于 DeepSeek Harness Desktop 0.2.1-rc.2(Electron,profile 为 desktop)的非官方客户端插件。清单公共 id 为 dsh.notify-toast,源码包名与目录为 dsh-notify-toast,当前版本 0.4.0。形态为 DSH 官方 bundle(Host + Web Client 两半),通过官方插件管理器安装;npm 上尚未发布该包,不要执行 npm install dsh-notify-toast(该名称在 npm 上属于其他项目)。
插件监听 DSH 权威事件(审批、提问、根会话 turn/end),在客户端判断 document.hasFocus() 与 visibilityState;窗口聚焦时不弹不响。Host 侧通过 PowerShell/C# WinRT 走 Windows 原生进度 toast,失败时静默降级为 Web Notification,两条路径均为 silent,提示音由插件统一播放一次。
核心功能¶
三类提醒¶
| 场景 | 触发 | 表现(摘要) |
|---|---|---|
| 需要回答/确认 | user-questions/request |
标题「DeepSeek 想问你一个问题」,正文为问题原文截断 |
| 需要授权 | approval/request |
标题「DeepSeek 需要你的授权」,正文为工具名与简短目的 |
| 本轮回复结束 | 根会话 session/event 的 turn/end(completed) |
按步数变化标题;正文取最后一条助手回复首段,取不到为「点击查看」 |
子代理完成默认不触发「本轮回复结束」提醒;只表示这一轮回复结束,不代表整个任务完成。
目标模式(Goal)¶
在 goal active + armed 期间不逐轮弹完成提醒;在 complete、paused、blocked、Round 上限或 disarmed 后,按 roundsStarted 增量只发一条汇总。提问与授权仍即时弹出。
任务栏未读角标(0.4.0)¶
DSH 在后台时,在任务栏图标上按不同根会话计数(同一会话多次完成只计 1)。1–3 显示数字角标,超过 3 显示红点;回到 DSH 或聚焦后自动清除。可在设置中关闭。不增加常驻进程,仅在 helper 一次性调用中更新。
原生进度 toast 与兼容¶
默认使用 Windows 原生进度通知(含动态进度条),到达近似时间后停止更新并收回横幅;通知中心保留受 ExpirationTime 约束。可在设置里切换「Windows 兼容通知」。正文默认 40 个 Unicode 码点(可配 20–60);隐私模式可只显示标题。
其它行为¶
- 合并:默认 2.5 s 内多个「完成」合并为一条。
- 点击回窗:Host 优先用
SetForegroundWindow置前 DSH,再尽力打开对应会话。 - 提示音:Web Audio 四种合成音 + 内嵌 CC0「弹一下」,音量 0–100,可关闭、可试听。
- 可选(默认关):多个根会话同时运行且全部成功结束后,将最后结束的会话标题改为指定文案;仅单会话运行时不生效。
明确不做:常驻托盘/后台服务、任务栏进度条闪烁、外网遥测、修改 DSH 核心。
安装与启用¶
不要手改 profile 的 package.json 或 cordis.patch.yml。安装后 Host JavaScript 模块需重启一次 DSH 才会加载新代码(客户端 bundle 可热更新)。
方式 A:应用内插件管理器(推荐)¶
- 将
dsh-notify-toast-0.4.0.tgz放到本机目录(路径勿含空格)。 - 在 DSH 内安装:
- Agent:plugin_manager→action: install_bundle,target: <tgz 绝对路径>
- 或使用插件管理界面(Desktop 的 desktop profile 由 Electron 应用管理,自管 web/headless profile 才适用 CLI 插件命令)。 - 在 设置 → 插件 确认
dsh-notify-toast已启用,重启 DSH。 - 打开 设置 →「通知」,点「发送测试通知」;「运行状态」可查看 Host 连接、transport 与最近提醒计数。
方式 B:开发期 link¶
plugin_manager → install_bundle → target: <插件目录绝对路径>
目录安装为 link,改动可被 HMR 感知;Host 侧 JS 未热更新时需重启 DSH。
方式 C:自托管市场索引¶
在 DSH 插件市场/发现页添加自定义索引:
https://raw.githubusercontent.com/game25011/dsh-notify-toast/13729f7061214a62074e75ee3274225482fe5494/market-index.json
添加后搜索 dsh-notify-toast 可从 Git 源安装固定版本。DSH 官方默认索引不会自动收录,其他用户需自行添加同一索引或等待目录收录。
卸载¶
插件管理界面禁用/移除,或 Agent:plugin_manager → action: remove_bundle,target: dsh-notify-toast。卸载后 Host 监听与客户端 bundle 随插件释放,profile patch 中的配置不再生效。
典型用法¶
安装并重启后,日常无需额外命令:Agent 在后台跑任务时,遇到提问或授权会弹 toast;根会话一轮结束且窗口未聚焦时会提醒。Goal 长任务结束后收到一条汇总而非连环弹。
在 设置 →「通知」 可按需调整:
- 总开关与各子开关(提问、授权、本轮回复、任务栏角标、Goal 结束后汇总)。
- 通知显示方式(原生进度 / 兼容)、自动移除时间(3–30 秒,默认 8 秒)。
- 正文长度、隐私模式、提示音与音量、合并间隔(0–10000 ms,默认 2500)。
- 「测试通知」「测试系统通知」与状态诊断。
配置即时生效,持久化走官方 ctx.settings(写入当前 profile patch),重启 DSH 后保留。
适用场景与注意¶
适合:在 Windows 10/11 上使用 DSH Desktop,经常把 DSH 放到后台写代码或开会,仍需要知道 Agent 在等授权、等回答或刚跑完一轮的用户。
环境与权限:
- 引擎要求:
dsh>=0.2.1-rc.2 <0.3.0,Node>=20。 - 插件以当前 DSH 进程权限运行;安装前应阅读 GitHub 仓库 源码与 MIT 许可证。主要代码由 AI 编程助手生成,人类维护者负责需求、测试与发布;详见仓库
AI-DISCLOSURE.md。 - 通知权限拒绝、Host 不可用或
koffi加载失败时插件不崩溃,设置页会显示状态并降级。 - Goal 边界场景维护者标注仍待补测;使用前以仓库 README 与 CHANGELOG 为准。
结尾¶
dsh-notify-toast 把 DSH 后台时的提问、授权与根会话完成,接到 Windows 原生通知和任务栏未读角标上,并配合 Goal 汇总、合并与隐私选项,减少漏看又不抢焦点。社区目录页:skillhub.cn/plugins/game25011/dsh-notify-toast;源码与安装说明:github.com/game25011/dsh-notify-toast。