前言¶
在 DeepSeek Harness(DSH)里跑 agent 时,窗口不一定在前台:审批权限、回答追问、审阅计划或一轮任务结束,如果只靠界面内提示,很容易错过。邮件或第三方推送又要额外配置。下面介绍社区插件 dsh-win-approval-notify(GitHub 仓库 pengpenglele/dsh-approval-notify):在 Windows 10/11 上走系统通知中心,在需要你授权、等你回答/审阅、或任务阶段结束时弹出 Toast,原因文案可配置是否带全文;开关集中在 DSH 插件 页,保存即生效。
这是什么¶
dsh-win-approval-notify 是 DSH 桌面版(profile desktop)的客户端插件,维护者为 pengpenglele,npm 包名 dsh-win-approval-notify,许可证 MIT。插件只读监听会话事件,通过 Windows PowerShell 5.1 的 WinRT Toast 投递通知,来源显示 DeepSeek Harness(默认 AUMID com.deepseek.dsh)。它不注册 approval/request / user-questions/request 等 waterfall,不参与审批或作答本身。
SkillHub 目录页:pengpenglele/dsh-approval-notify,分类为客户端。
核心功能¶
通知可在以下场景分别开关(共 8 类独立开关,含审批、提问、计划审阅、任务完成/出错/被拦截/被中断/达到上限等):
- 审批:还可按工具名白名单过滤,减少无关提醒。
- 提问与计划审阅:等你输入或确认时提醒。
- 一轮任务结束:完成、出错、被拦截、被中断、达到上限等状态可单独控制。
其它行为要点:
- 通知里的「会话」显示会话标题;无标题时用工作区目录名,不展示 session id。
- 后台任务(子代理,例如 dsh-mnemon 的记忆整理)默认不提醒,可在设置页打开。
- 触发与节奏:同会话冷却、延迟合并、并发通知上限等可在图形界面调整。
- 外观:停留时长、静音、标题前缀、AUMID、是否带完整原因/题目文本。
- Toast 失败时插件会尝试原生置顶卡片兜底;诊断页支持按场景发测试通知并查看最近结果与日志路径。
环境要求¶
安装前请确认:
- Windows 10/11,且存在
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe(WinRT Toast 投影仅在 PowerShell 5.1 可用)。 - DSH 桌面版,profile
desktop,运行时 0.2.x(README 注明在0.2.1-rc.3上开发;package.json中dsh.engines.dsh为>=0.2.1-rc.2)。 - Windows 设置 → 系统 → 通知 中允许 “DeepSeek Harness”,并关闭专注助手/勿扰(Win11 建议取消「全屏时自动开启请勿打扰」)。
插件以当前 DSH 进程权限运行;安装前可在 GitHub 查看源码与 MIT 许可证。插件声明不发起网络请求、不读凭据。
安装与启用¶
方式一:在 DSH 里直接添加(推荐)¶
- 打开 DeepSeek Harness,点侧栏 插件。
- 点 添加插件。
- 输入包名
dsh-win-approval-notify(固定版本可写dsh-win-approval-notify@0.1.1),点 安装。 - 装完后完全退出并重启 DeepSeek Harness。
若默认安装源(国内镜像)搜不到包,可将安装源切到 npm 官方源 再装一次。
方式二:命令行安装¶
在普通 PowerShell(非 DSH 沙箱终端)中执行,将 <DSH 安装目录> 换成本机路径:
& "<DSH 安装目录>\resources\runtime\cli\bin\dsh.cmd" plugin --profile desktop add dsh-win-approval-notify
方式三:本地 link(开发)¶
& "<DSH 安装目录>\resources\runtime\cli\bin\dsh.cmd" plugin --profile desktop add "link:E:/codeDir/ds_tools/dsh-approval-notify"
本地 link 时需先在插件目录执行 pnpm install 安装依赖;从 npm 安装时会自动带上。无论哪种方式,安装后都应完全退出并重启 DSH。
验证:侧栏 插件 → 已安装 → dsh-win-approval-notify → 行 approval-notify,行详情里应出现 配置 按钮。
配置¶
路径:插件 → dsh-win-approval-notify → 行 approval-notify → 配置。页面分四组:通知哪些情况、触发与节奏、通知外观、诊断。只有点击 保存 才写入当前 profile 的 Cordis patch,并通过 volatile 配置引用立即生效,无需重启。恢复默认 只重置草稿,仍需保存。
未打开过设置页时,默认值写在包内 cordis.patch.yml 中,插件仍可工作。
典型用法与自测¶
- 设置页 → 诊断 → 选择场景 → 发送测试通知:应弹出对应样式通知,页面显示成功或失败原因。
- 真实场景:让 agent 执行需升级权限的操作(例如写工作区外文件)→ 审批面板出现后约 0.5 秒应收到通知。
- 不经过 DSH,在普通 PowerShell 中验证 Toast 通道(沙箱终端为 Low integrity,WinRT Toast 会被拒绝,错误码
0x80073D54):
$ps = "$env:SystemRoot\System32\WindowsPowerShell\v1.0\powershell.exe"
$task = Join-Path $env:TEMP "dsh-toast-test.json"
'{"title":"测试","body":"通道正常","appId":"com.deepseek.dsh","duration":"long","silent":false}' | Set-Content $task -Encoding UTF8
& $ps -NoProfile -ExecutionPolicy Bypass `
-File "$env:USERPROFILE\.dsh\profiles\desktop\node_modules\dsh-win-approval-notify\lib\toast.ps1" `
-TaskFile $task
适用场景与注意¶
适合:在 Windows 上使用 DSH 桌面版、希望离开窗口时仍能收到审批/追问/任务状态提醒的开发者。
注意:
- 仅支持 win32(
package.json的os字段),非 Windows 环境无法使用。 - 安装后首次必须重启 DSH;完全没通知时检查各场景开关、Windows 通知总开关与专注助手。
- 通知进中心但不弹横幅:可在 Windows 通知设置里对「DeepSeek Harness」关闭再打开「显示通知横幅」。
- 日志:
%TEMP%\dsh-win-approval-notify\notify.log;Toast 失败见toast-error.log;排查横幅见diag.log。日志不记录原因/题目全文。 - 旧版 DSH 若无
plugins.row.configslot,配置页可能不出现,可改cordis.patch.yml(功能不受影响)。
卸载示例(路径按本机 DSH 安装目录修改):
& "<DSH 安装目录>\resources\runtime\cli\bin\dsh.cmd" plugin --profile desktop remove dsh-win-approval-notify
然后重启应用。
结尾¶
DSH 生态强调「一切皆插件」;SkillHub 等社区目录独立于 DeepSeek / 幻方,并非官方应用商店。dsh-win-approval-notify 把「等人介入」和「一轮结束」收敛到 Windows 原生通知,配置留在 DSH 插件页,适合桌面版长时间跑任务时使用。
- 目录页:https://www.skillhub.cn/plugins/pengpenglele/dsh-approval-notify
- GitHub:https://github.com/pengpenglele/dsh-approval-notify