在 DSH 環境下開發智能體時,會話狀態的變化(如運行結束或等待人工審批)需要開發者及時感知。如果開發者切換了窗口或最小化了 DSH,這些狀態變化可能會被忽略。dsh-session-notify 插件通過桌面通知、提示音和標題閃爍,解決了後臺任務狀態遺漏的問題。
插件定位¶
這是一個 DSH web 插件,由 huaiyuWangh 維護。它通過監聽會話狀態變化,在會話停止(無論是自然完成還是等待人工干預)時觸發警報。該插件基於純插件層實現,不修改 DSH 源碼。
核心功能¶
- 多模態提醒:當會話停止時,根據頁面狀態(後臺或前臺)觸發桌面通知、提示音(chime)和瀏覽器標題閃爍。
- 狀態監聽:插件監視
ctx.sessions.liststore,與側邊欄的狀態點使用相同的數據源。 - 點擊跳轉:通知是可點擊的,點擊後會將窗口聚焦並切換到對應的會話。
- 本地持久化:用戶的偏好設置保存在
localStorage中,無需額外的服務層支持。
安裝與啓用¶
使用官方命令安裝並掛載插件:
dsh plugin --profile web add dsh-session-notify
安裝完成後,重啓 dsh web 服務,並在瀏覽器中刷新頁面。
典型用法¶
- 授權通知:在瀏覽器設置中授予該頁面通知權限。
- 狀態感知:當會話進入“等待人工輸入”或“已完成”狀態時,插件會在後臺或前臺發送通知。
- 快速定位:點擊通知,系統會自動聚焦窗口並切換到對應的會話頁面。
適用場景與限制¶
該插件適合需要長時間運行任務或需要人工介入審批的場景。
需要注意的是:
* 權限要求:必須授予瀏覽器通知權限才能生效。
* 標籤頁限制:如果瀏覽器標籤頁被關閉,插件無法發送通知。
* 系統級靜音:macOS 的系統設置(通知中心)、Focus 模式或勿擾模式可能會靜音或吞掉通知。插件無法檢測到這些系統級的靜音狀態。
* 通知來源:瀏覽器強制顯示頁面源作爲通知來源(如 127.0.0.1:3080),無法在代碼中修改這一顯示內容。
結語¶
dsh-session-notify 通過輕量級的通知機制,幫助開發者保持對智能體會話狀態的掌控。更多技術細節可參考 GitHub 倉庫。