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 自檢。

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

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

小夜