dsh-windows-notification:让 Windows 为 DeepSeek Harness 喊一声

前言

DeepSeek Harness(DSH)在终端里跑 Agent 时,每轮完成、出错、请求审批或提问都需要你抬头看一眼。如果正在处理别的任务或离开屏幕,很容易漏掉关键动作,导致 Agent 被阻塞或回滚。

本地通知插件能把 DSH 的这些状态直接推到 Windows 通知中心。你不必一直盯着终端,也不必频繁切回 DSH;对于审批和提问,可以在通知里直接点按钮完成操作。

这是什么

这是 DeepSeek Harness 的 Windows 原生通知插件,由 zhangyuzhangyu233 维护。它使用 Windows PowerShell 5.1 的 WinRT API,以 DSH 桌面端的 AppUserModelID(AUMID com.deepseek.dsh)发送原生 Toast,通知中心里的分组和图标都来自 DSH 本身,而不是 PowerShell。

插件零依赖、不联网、不需要管理员权限,支持旧版 Web 运行时(dsh 0.1.x)与桌面端 0.2.x。

核心功能

插件在以下事件触发通知:

  • 一轮回答完成:显示会话标题、智能摘要(用时、步数、工具调用)、清洗后的回复预览,提供 打开 DSH / 知道了 按钮;
  • 一轮任务出错:显示会话标题、错误码与摘要,提供 打开 DSH / 知道了 按钮;
  • 请求审批(Agent 不在前台时):显示工具名与审批原因,提供 允许一次 / 拒绝 / 打开 DSH 按钮;
  • Agent 提问(Agent 不在前台时):显示问题与选项概览(或文本输入框),提供选项按钮 / 发送 / 打开 DSH 按钮;
  • 演示通知:在设置页选择演示类型(完成 / 审批 / 提问·选项 / 提问·文本),点击按钮查看对应通知样式。

通知行为补充:

  • 子代理(subagent)会话不触发通知,避免刷屏,同一轮只通知一次;
  • 同一会话的完成/错误通知默认合并替换(通知中心只保留最新一条);
  • 审批/提问只在 DSH 不在前台时接管;你在应用内时仍由应用内 UI 处理;
  • 审批 30 秒、提问 60 秒无回应时自动交回应用内,不会把 Agent 卡死;
  • DSH 在前台时默认不弹自动通知;
  • 系统开启“勿扰”时通知仍会进入通知中心,审批、提问与错误通知使用 High 优先级,可在系统设置中允许发送优先通知。

通知里的操作通过协议激活实现:

  • 宿主插件在 HKCU\Software\Classes\dsh-notify 注册 dsh-notify:// 协议,指向插件目录里的 notify-handler.ps1;
  • Toast 按钮/正文携带 dsh-notify://… URI;
  • 点击通知时 Windows 启动 notify-handler.ps1,读取 %LOCALAPPDATA%\dsh-windows-notification\bridge.json 中的本机回环端口与一次性 token,把 open / approve / deny / answer / demo 动作 POST 给宿主插件的本机回环桥,必要时把 DSH 窗口还原并切到前台;
  • 回环桥只监听 127.0.0.1,只接受带 token 的 POST /action,只接受与待决请求匹配的一次性 id,token 每次启动重新生成,不写日志;
  • 审批/提问等待期间使用一次性 id,超时/取消/异常一律回退到应用内 UI,绝不阻塞 Agent。

设置页(桌面端:设置 → 内置插件 → Windows 通知;旧版 Web 运行时:设置 → 插件 → 插件配置)提供 18 个默认配置项,包括总开关、各类事件开关、前台跳过、摘要与优先级、超时时间、演示选项与测试通道。

安装与启用

从本地目录安装(推荐)

  1. 克隆或下载本仓库到任意目录,例如:
git clone https://github.com/zhangyuzhangyu233/dsh-windows-notification C:/plugins/dsh-windows-notification
  1. 在 DSH 的插件管理里「从本地目录安装」本目录,条目名为 Windows 系统通知 / Windows Notification;
  2. 在 profile 的 package.json 里加入依赖并以 link: 方式链接:
{ "dependencies": { "dsh-windows-notification": "link:C:/plugins/dsh-windows-notification" } }
  1. 如果 profile 没有自动加载它,把包名加进 dsh.profile.bundles,或在本 profile 的 cordis.patch.yml 里插入一行(二选一,同一个 id 只能出现一次):
- insert:
    - id: dsh-windows-notification
      name: dsh-windows-notification
  1. 重启一次 DeepSeek Harness,刷新页面后在 设置 → 内置插件 → Windows 通知 看到配置页(旧版 OSS dsh web 运行时则是 设置 → 插件 → 插件配置 里的卡片)。

从 npm 安装

插件已发布到 npm:dsh-windows-notification

npm install dsh-windows-notification
# 或作为 DSH profile 依赖:
#   "dependencies": { "dsh-windows-notification": "^1.3.0" }

也可以在 DSH 的插件管理里直接从 npm 安装 dsh-windows-notification,然后重启一次 DeepSeek Harness。

典型用法

启用插件后,DSH 会自动在发生以下事件时发送通知:

  • 回答完成:通知显示会话标题、用时、步数、工具调用摘要和清洗后的回复预览,你可以点击 打开 DSH 查看详情或点击 知道了 忽略;
  • 出错:通知显示会话标题、错误码与摘要,同样提供 打开 DSH / 知道了 按钮;
  • 审批:Agent 在 workspace 外执行敏感操作时,如果 DSH 不在前台,会弹出带 允许一次 / 拒绝 / 打开 DSH 的通知;点击 允许一次 会通过协议激活调用回环桥完成审批,Agent 继续执行;
  • 提问:Agent 在你离开时向你提问,通知显示问题与选项概览(或文本输入框),点击选项按钮即可选择回答,Agent 会收到回执并继续执行。

在设置页,你可以:

  • 调整各类事件的通知开关;
  • 设置是否在通知中显示摘要、是否启用智能摘要、是否合并同一会话的通知;
  • 配置审批和提问的超时时间(默认 30 秒与 60 秒);
  • 选择演示类型并点击“发送演示通知”查看对应通知样式;
  • 点击“发送测试通知”验证通知通道是否正常。

适用场景与注意

适合需要长时间运行 Agent 的场景,例如后台批处理、自动测试、定时任务,以及需要审批或回答但难以频繁切回终端的场景。

注意:插件以当前 DSH 进程的权限运行,安装前应检查源码与许可证(MIT)。插件依赖 Windows PowerShell 5.1 的 WinRT API,需要 Windows 10/11。

结尾

本插件把 DSH 的状态推到 Windows 通知中心,让你在离开终端时仍能通过原生 Toast 完成审批与回答,减少切屏频率。安装后即可在设置页配置行为与演示,无需额外依赖。

插件目录页:https://www.skillhub.cn/plugins/zhangyuzhangyu233/dsh-windows-notification
GitHub:https://github.com/zhangyuzhangyu233/dsh-windows-notification

羽毛球分组比赛记分
小程序二维码

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

Xiaoye