前言¶
在 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 自检。