dsh-ask-notify:Agent 等你回答時的右下角提醒

前言

在 DSH Web GUI 裏跑 agent 時,一旦觸發 ask_user_question、審批或計劃確認,界面會進入「等你作答」的等待態。內置問題卡片會接管輸入區——只有當你正看着這個標籤頁時,才容易發現 agent 已經停下來了。切到別的標籤、別的窗口或別的程序時,會話可能長時間卡在等待裏,頁面上卻沒有足夠醒目的信號把你拉回來。

下面介紹社區插件 dsh-ask-notify(維護者 liujianqiao701):在 DSH 客戶端側監聽與會話列表「琥珀色小圓點」同一份運行時狀態,把「需要你回答」主動推到右下角提醒卡;若頁面不可見或未聚焦,再補系統通知和標籤標題閃爍。插件當前版本 1.0.4(MIT),分類爲客戶端;在 SkillHub 插件目錄 可找到條目,源碼在 GitHub。

這是什麼

dsh-ask-notify 是 DSH Web GUI 的客戶端插件,不抓取 DOM,而是從宿主已有的 uiSession / 會話列表快照裏讀取等待態(question、approval、plan-review 等 kind)。有等待時彈出右下角提醒;你不在當前頁面時再觸發 Windows 桌面通知,並把標籤標題改成帶 ❓ 的閃爍樣式。

本插件不發起任何網絡請求;偏好寫在瀏覽器 localStorage,系統通知走 Notification API。安裝前建議自行查看源碼與許可證——插件隨當前 dsh web 進程在瀏覽器環境中運行。

三個提醒通道

通道 出現條件 作用
右下角提醒卡 存在任意等待(是否在頁面均會顯示) 回到頁面時一眼看到還剩什麼問題
系統通知 頁面不可見或未聚焦,且已授權通知 在別的標籤或程序裏也能被叫到
標題閃爍 頁面不可見 在標籤欄上區分「有個標籤在等我」

卡片提供 去回答(切到對應會話並滾到輸入區)、稍後提醒(本條不再彈,下一條等待仍會彈)、以及 桌面提醒 / 聲音 開關。

安裝與啓用

首選:插件市場

在 DSH 界面 設置 → 插件市場 → 搜索 dsh-ask-notify → 安裝。裝完後看市場卡片上的狀態:

卡片狀態 還要做什麼
已生效 刷新頁面:F5,不行再 Ctrl+F5
已安裝,重啓後生效 重啓 dsh web,然後 Ctrl+F5
已安裝,未生效 / 已停用 點「爲什麼未生效?」——常見原因是「有 agent 正在運行」,停掉再裝

插件條目隨頁面啓動清單(window.__DSH_BOOT__)下發;不刷新頁面,瀏覽器不會加載新插件。市場顯示「已生效」卻「沒效果」時,多數只差這一步刷新。

備選:命令行

dsh plugin --profile web add github:liujianqiao701/dsh-ask-notify

命令行或本包 install.ps1 登記在 bundle 層,bundle 只在 dsh web 啓動時讀一次,因此裝完後必須重啓 dsh web,再 Ctrl+F5 刷新頁面。

環境要求

  • Windows + dsh web。
  • Harness 1.0.4 起各版本可用:插件按優先級讀取 uiSession.sessionStatus(0.1.7+)、uiSession.pendingInteractions(0.1.2~0.1.6)、會話列表行上的 pendingInteraction(≤0.1.1-rc.x);三個源都讀不到時會掃描 map 型成員並可在控制台 __dshAskNotify.sources() 查看 discovered。
  • 1.0.4 起無強制 cordis 注入依賴;服務暫時缺失時仍會掛載,約 15 秒讀不到數據會在控制台報警並在右下角顯示提示卡。

典型用法與自檢

平時無需配置:agent 進入等待態後,插件通過訂閱與約 2 秒輪詢更新提醒。不必真等問題,可在頁面控制台自檢:

__dshAskNotify.version                    // 當前安裝版本(資料中示例爲 1.0.4)
__dshAskNotify.selftest()                 // 右下角卡片保持約 12 秒
__dshAskNotify.sources()                  // used / carries / discovered
__dshAskNotify.state()                    // 等待、偏好、通知權限、頁面是否可見
__dshAskNotify.collect()                  // 當前等待列表;空數組表示現在無人等你
__dshAskNotify.show('approval', '試試審批樣式')
__dshAskNotify.hide()

sources().used 表示真正在供數據的源;used: "none" 且控制台出現讀不到數據源的警告時,可把 sources() 輸出反饋給維護者。

偏好鍵(localStorage):

key 含義
dsh-ask-notify:prefs 各類等待與系統通知、聲音的布爾開關
dsh-ask-notify:autoasked 首次用戶手勢申請通知權限的標記
dsh-ask-notify:lastshot 多標籤下系統通知約 20 秒內去重

通知權限在第一次點擊或按鍵時自動申請一次;若曾被拒絕,可在卡片上開啓桌面提醒,或在 http://127.0.0.1 的站點設置裏允許。

適用場景與注意

適合誰:長時間在 DSH Web 裏跑 agent、經常多標籤或多窗口並行,又希望「審批 / 追問 / 計劃確認」不要靜默耗在等待態上的開發者。

排障要點:

  1. 先 Ctrl+F5,再執行 __dshAskNotify.selftest();若返回 undefined 表示客戶端腳本未加載(命令行安裝未重啓、或未刷新頁面)。
  2. 不要用不帶 ?rev= 的 /plugins/.../client.js URL 手敲判活;新代 harness 路由帶 rev,手敲可能 404。可用 Ctrl+U 搜 boot payload,或看 __dshAskNotify.sources()。
  3. 市場更新時若有 agent 在跑,市場會攔截更新;等會話結束或取消後再點更新。
  4. 系統通知不彈時檢查 __dshAskNotify.state().permission;用局域網 IP 打開時瀏覽器可能禁用通知。
  5. 若頁面已有 dsh-whale-mascot,提醒卡疊在其上方;同一等待多標籤各有一張卡,系統通知跨標籤只彈一次。

插件以你當前 DSH 進程與瀏覽器權限運行;安裝前請閱讀 倉庫 README 與源碼。SkillHub 爲社區插件目錄,與 DeepSeek / 幻方無官方從屬關係。

結尾

dsh-ask-notify 把「agent blocked 等你回答」從「必須盯着輸入區才發現」變成右下角可見、離頁可通知、標籤可閃爍的三通道提醒,且數據來自與會話 UI 一致的運行時狀態,不依賴 DOM 結構。

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

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

小夜