dsh-windows-notify:DSH 回合结束时的 Windows 原生通知

前言

在 DeepSeek Harness(DSH)里跑长会话时,模型一轮回答结束往往没有明显提示:窗口在后台、你在看别的应用,很容易错过「这一轮已经写完」。浏览器标签页标题会变,但不如系统级 toast 显眼。下面介绍社区插件 dsh-windows-notify(维护者 528085390,分类:客户端):在 Windows 10/11 上,每个 agent 回合结束时弹一条 WinRT 原生通知,总开关和细项都在 DSH 设置页,不必手改配置文件。

这是什么

dsh-windows-notify 是给 DSH 用的 Windows 原生通知插件。一句话:回合结束 → 一条系统 toast;开关在 设置 → 通知,改完立即生效,无需重启(宿主侧改代码仍须重启 DSH)。

  • 仓库:528085390/dsh-windows-notify
  • 社区目录页:SkillHub 插件页
  • 许可证:MIT;当前包版本 0.3.0(以仓库 package.json 为准)
  • 环境:Windows 10/11(Windows.UI.Notifications)+ DSH >= 0.1.7-rc.1;PowerShell 5.1(不支持 pwsh 7)

核心功能

通知时机与去重

  • 每回合一条。去重键为 <sessionId>#<turn>,同一会话第 2、3 回合都会各自弹一条。
  • 默认不吵子代理:子代理会话回合默认不通知(notifySubagents: false),可在设置里打开。

设置页(推荐操作方式)

插件注册 settings.section(order 16),位于「插件」与「智能体预设」之间。可调项如下(默认值来自 README):

选项 默认 说明
启用通知 开 总开关,关掉后连测试通知也不弹
提示音 开 toast 是否带声音
通知内容包含正文 开 关掉后正文固定为「本轮回答已完成」
摘要长度 80 正文最多字数(20–300)
标题前缀 DeepSeek Harness 标题格式:<前缀> · <会话标题>
子代理完成也通知 关 打开后子代理回合也弹
发送测试通知 — 立刻弹一条,验证链路

实现要点(便于排查)

  • 零依赖:无构建、无 npm 依赖、无 native 模块;宿主侧为 ESM + PowerShell 5.1 脚本,客户端为浏览器 ESM。
  • 可诊断:每回合一行日志(弹了 / 跳过 + 原因 + turn 号),日志文件见下文验证一节。
  • 设置通过同源 HTTP 桥 /api/dsh-windows-notify/* 读写,不走 schemastery Config;选项优先级:状态文件 > cordis 行 config > 内置默认,每回合现读。

安装与启用

要求:Windows 10/11 + DSH >= 0.1.7-rc.1。

命令行或图形界面

侧边栏 插件 → 添加插件,下列三种写法指向同一仓库,任选其一:

https://github.com/528085390/dsh-windows-notify
git+https://github.com/528085390/dsh-windows-notify.git
github:528085390/dsh-windows-notify

命令行等价于:

dsh plugin add https://github.com/528085390/dsh-windows-notify

(也可把上面三种 spec 中任意一条传给 dsh plugin add。)

在 DSH 会话里让 agent 安装时,可说:「帮我安装 https://github.com/528085390/dsh-windows-notify 这个插件」——会写入 profile 的 dependencies 和 dsh.profile.bundles 并执行 pnpm install,完成后需重启 DSH。

装完后在 插件 页打开 dsh-windows-notify,再重启 DSH(宿主半身启动时 import,无热重载)。锁版本可加 commit:https://github.com/528085390/dsh-windows-notify#<sha>。

不要用裸包名安装

dsh plugin add dsh-windows-notify 会走 npm registry。本仓库未发布到 npm,registry 上同名包属于另一位作者,同样声明了 dsh.bundle.patch,静默装错且易与依赖记录冲突。应始终用 GitHub URL 或 github:528085390/dsh-windows-notify。

典型用法

  1. 按上一节安装并重启 DSH。
  2. 打开 设置 → 通知,确认「启用通知」为开,点「发送测试通知」确认 WinRT 链路正常。
  3. 正常对话,等 agent 一轮结束,应收到一条 toast;标题为「前缀 · 会话标题」,正文按「通知内容包含正文」与「摘要长度」截取。

GUI 不可用时,插件目录提供 toggle.cmd(翻转总开关)和 status.cmd(当前值与最近日志);toggle.ps1 只改 enabled,不覆盖设置页其它项。

状态文件路径:~/.dsh/windows-notify.json,示例:

{
  "enabled": true,
  "sound": true,
  "includeText": true,
  "notifySubagents": false,
  "titlePrefix": "DeepSeek Harness",
  "maxBodyChars": 80
}

验证是否加载成功

Get-Content "$HOME\.dsh\windows-notify.log" -Tail 5

期望看到类似:

2026-10-20T07:46:11.212Z plugin loaded (config.enabled=true)
2026-10-20T07:46:13.134Z settings bridge ready at /api/dsh-windows-notify
2026-10-20T07:52:23.492Z toast session-bec4c0d4-...#3 exit=0 out=WINRT_OK

没有前两行表示插件未加载,可查仓库 docs/troubleshooting.md。

适用场景与注意

适合:在 Windows 上用 DSH 做本地/agent 开发,需要回合结束时有系统级提醒、又不想改 cordis 或手写配置的用户。

注意:

  • 仅 Windows;Linux/macOS 不适用。
  • 插件以当前 DSH 进程权限运行,安装前建议阅读源码与 MIT 许可证,确认 toast 内容与日志路径可接受。
  • 社区目录(SkillHub)与 DeepSeek / 幻方无官方从属关系;DSH 生态是「一切皆插件」,本插件为社区维护(GitHub 星标以目录/仓库当时显示为准)。

结尾

dsh-windows-notify 把「回合结束」绑到 Windows 原生 toast,设置集中在 DSH 内,默认跳过子代理以减少干扰。安装请用官方 GitHub spec,装完开插件并重启 DSH。

  • 目录页:https://www.skillhub.cn/plugins/528085390/dsh-windows-notify
  • GitHub:https://github.com/528085390/dsh-windows-notify
羽毛球分组比赛记分
小程序二维码

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

Xiaoye