dsh-interaction-notify:Agent 等你时,用 Windows 通知把你叫回 DSH

前言

在 DeepSeek Harness(DSH)里跑长任务时,窗口往往放在后台:写代码、查资料、做别的活。Agent 停下来等你回答、等你授权工具、或等你批准计划时,如果没有任何提醒,很容易错过交互,任务就卡在半道。

常见做法是反复切回 DSH 看状态,或自己写脚本监听日志——都费事,且和 DSH 的审批、提问事件对不上。下面介绍社区插件 dsh-interaction-notify(维护者 waterc07,分类为客户端):在三种「需要你介入」的宿主事件上,弹出 Windows 系统通知、播放提示音,并可选任务栏闪烁;点击通知可回到 DeepSeek Harness 窗口。插件为 host-only,没有浏览器半,也不向页面注入脚本。

这是什么

dsh-interaction-notify 是 DeepSeek Harness 的 Cordis 宿主插件:监听宿主侧的提问、工具授权审批、计划批准事件,在本机完成 Toast、声音与窗口激活。配置与状态写在 $DSH_HOME\dsh-interaction-notify\state.json(默认 $DSH_HOME 为 %USERPROFILE%\.dsh),并可通过本机 HTTP 路由热更新。

仓库:https://github.com/waterc07/dsh-interaction-notify
社区目录:https://www.skillhub.cn/plugins/waterc07/dsh-interaction-notify

核心功能

一次有效提醒最多带来三种可感知信号:

信号 说明
系统通知(Toast) 出现在 Windows 通知中心,应用身份为「DeepSeek Harness 提示」(由开始菜单快捷方式注册);标题与正文对应当前要处理的内容
提示音 默认播放内置 assets/notify.wav(C5→E5 双击音,默认音量 55);可改为 Windows 系统音或静音
任务栏闪烁 DSH 主窗口在任务栏闪 5 次,作为不打断当前操作的补充提示

其它行为(均来自 README):

  • 同一交互只提醒一次:按审批 id 或工具 callId 去重,内存保留最近 200 个 id。
  • 防刷屏:非审批类通知受 minIntervalMs(默认 1200ms)限制,间隔内新提醒直接丢弃;审批请求永不节流,只去重。
  • 前台不打扰:默认 quietWhenFocused: true,DSH 已在最前时整条提醒(含声音)跳过。
  • 内容克制:通知仅一句标题 + 一句摘要,不含完整会话,也不上传数据。
  • 无第三方 npm 依赖:运行时依赖 Node 内置模块与 Windows PowerShell 5.1。

三种触发场景

场景 宿主事件 通知标题 通知正文(摘要)
提问 tool/call,工具名 ask_user_question 需要你的回答 第一个问题(截断 140 字);多题时追加「共 N 个问题」
授权审批 approval/asked 需要你的批准 工具名与可选 reason(reason 截断 120 字)
计划批准 tool/call,工具名 exit_plan_mode 计划已就绪,等待你的批准 提示点击查看计划并批准或修改

三类可分别用 events.question / events.approval / events.plan 关闭。

前置条件

安装前请确认:

  • Windows 10 / 11(Toast、AppUserModelID、user32 窗口 API)。
  • DeepSeek Harness 桌面端(由宿主加载插件;package.json 中无 dsh.client)。
  • Windows PowerShell 5.1(notify.ps1 使用 WinRT,须固定调用 5.1,不能用 pwsh 7 替代)。
  • 通知权限:系统设置中打开通知,并允许「DeepSeek Harness 提示」(回退到 PowerShell 身份时还需允许 Windows PowerShell)。
  • Node.js:构建与安装脚本使用;运行时由 DSH 自带 Node 执行。项目在 Node.js v25.9.0 上验证,README 建议较新 LTS(22+)。

插件以当前 DSH 进程权限运行;安装前应自行查看源码与 MIT 许可证(package.json 版本 0.1.0)。

安装与启用

推荐用仓库自带的 scripts/install.mjs 一次性写入 profile 依赖、bundle、junction,并注册开始菜单快捷方式(点击通知回窗口依赖该步骤)。

先在 PowerShell 中确定 DSH 家目录:

$dshHome = if ($env:DSH_HOME) { $env:DSH_HOME } else { Join-Path $env:USERPROFILE '.dsh' }
$pluginDir = Join-Path $dshHome 'plugins\dsh-interaction-notify'
New-Item -ItemType Directory -Force -Path (Join-Path $dshHome 'plugins') | Out-Null

git clone https://github.com/waterc07/dsh-interaction-notify.git $pluginDir
Set-Location $pluginDir

# 预览,不写文件
node scripts\install.mjs --profile desktop --dry-run

# 正式安装(幂等)
node scripts\install.mjs --profile desktop

若脚本找不到桌面端 exe,可显式指定:

node scripts\install.mjs --profile desktop --exe "<DSH 安装目录>\DeepSeek Harness.exe"

要点:

  • profile 须已存在(至少启动过一次 DSH 桌面端)。
  • 安装脚本会备份 profile 的 package.json,不会写入 DSH 安装目录。
  • setup-shortcut.ps1 失败时安装仍继续,但点击通知回窗口可能失效,需补跑该脚本。

安装或升级后必须完全退出并重新打开 DeepSeek Harness;仅刷新页面不会重新加载 bundle 列表。

卸载可使用:

node scripts\install.mjs --profile desktop --uninstall

典型用法

触发在 agent 发起上述三类交互时自动发生。验证安装时,可在 DSH 内打开开发者工具执行 location.origin 得到形如 http://127.0.0.1:<port> 的本机地址(端口随机,勿写死),再调用测试接口:

$base = 'http://127.0.0.1:<port>'

Invoke-RestMethod "$base/api/dsh-interaction-notify/test" -Method Post -ContentType 'application/json' `
  -Body (@{ title = '测试'; body = '来自 dsh-interaction-notify'; kind = 'test' } | ConvertTo-Json)

查看与修改配置(POST /set 立即生效;直接改 state.json 需重启 DSH):

Invoke-RestMethod "$base/api/dsh-interaction-notify/state" | ConvertTo-Json -Depth 6

Invoke-RestMethod "$base/api/dsh-interaction-notify/set" -Method Post -ContentType 'application/json' `
  -Body (@{ sound = 'silent'; events = @{ plan = $false } } | ConvertTo-Json)

常用配置字段默认值如下:

字段 默认 说明
enabled true 总开关
events.question / approval / plan 均为 true 分场景开关
sound "chime" "chime" / "system" / "silent"
volume 55 内置音效音量 0–100
quietWhenFocused true 前台时跳过提醒
clickToReturn true 通知上「回到 DeepSeek Harness」按钮
minIntervalMs 1200 非审批类最小间隔

临时关闭全部提醒:POST /set 传 { "enabled": false }。仅关声音、保留通知:{ "sound": "silent" }。

宿主路由仅接受本机 loopback 同源请求,另有 /log、/diag 等接口,详见仓库 README。

适用场景与注意

适合:在 Windows 上使用 DSH 桌面端、长时间后台跑 agent,又需要在提问、工具授权、计划批准时及时回到窗口的用户。

不适合或非目标:非 Windows 平台;期望在浏览器半或网页里改 UI 的场景(本插件无浏览器半)。

DSH 生态强调「一切皆插件」;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。本插件当前 GitHub 星标为 0,功能与接口以仓库 README 为准。

结尾

dsh-interaction-notify 把「agent 在等你」这件事落到 Windows Toast、提示音和任务栏闪烁上,并支持本机 HTTP 调配置与测通知。若你在 Windows 上常驻 DSH,可按 README 用 install.mjs 安装、重启桌面端后用 /test 自检。

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

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

小夜