前言¶
在智能體開發與 DSH 使用中,任務完成、需要用戶介入或出錯時,如果沒有及時、明確的反饋,很容易遺漏關鍵狀態。原生通知是這種反饋最直接的方式之一。
是什麼¶
dsh-desktop-notify 是一個 DSH 客戶端插件,用於在 Windows 上彈出原生 Toast 通知並播放內置 ciallo 提示音。插件由 Dax233 維護,目標是讓 DSH Agent 在任務完成、需要用戶提問或出錯時,通過系統通知獲得即時提醒。
核心功能¶
- 原生 Windows Toast:通過 PowerShell + WinRT (
ToastNotificationManager) 發送原生通知,並在“操作中心”中持久顯示。 - 顯式播放系統聲音:使用
System.Media.SoundPlayer播放系統 WAV,不受通知靜音設置影響。 -
工具接口:提供
notify工具,支持以下字段: -
title:標題(必填) body:正文(可選,1~2 行上下文)sound:是否播放聲音,默認true,false發送靜默通知urgency:優先級,可選info(默認)、attention、blocked;blocked使用requireInteraction,需手動關閉tag:同一 tag 會替換舊通知-
action:動作類型,可選send(默認)或status -
實現方式:Host half (
index.js+toast.js) 註冊notify工具,直接通過 Windows WinRT 發送通知。不依賴node-notifier/SnoreToast,也不使用 Web Notification API(後者在某些機器上不會顯示到操作中心)。 - 限制與依賴:
- 僅支持桌面端(需要 DSH Desktop 渲染器及其 Web Notification 支持)。
- Windows 通知權限由 DSH Desktop 提供;若在 Windows 通知設置中禁用該應用,工具會報告
permission is denied。 - 聲音音量與專注助手由 Windows 控制,插件只能選擇靜音或默認聲音。
安裝與啓用¶
在終端中執行以下命令安裝:
dsh plugin --profile desktop add github:Dax233/dsh-desktop-notify
安裝完成後重啓 DSH Desktop。通知樣式與聲音會受 Windows 通知設置影響。
典型用法¶
以下示例展示在任務完成時發出通知:
notify({
title: "任務完成",
body: "數據清洗已結束,共處理 1200 條記錄。",
urgency: "info"
});
需要用戶介入時:
notify({
title: "需要確認",
body: "請審覈生成的代碼片段後再繼續。",
urgency: "attention"
});
出錯時:
notify({
title: "處理失敗",
body: "無法連接到目標 API,請檢查網絡與權限。",
urgency: "blocked"
});
適用場景與注意¶
- 適合需要明確狀態反饋的場景:任務完成、需要用戶決策、出錯告警等。
- 插件以當前 DSH 進程的權限運行,安裝前應檢查源碼與許可證。
- 如需進一步排障,可參考倉庫中的
docs/desktop-notify.md。
結尾¶
這個插件讓 DSH Agent 的狀態與提醒更貼近原生系統體驗,適合需要穩定通知反饋的開發與使用場景。
- 插件目錄:https://www.skillhub.cn/plugins/Dax233/dsh-desktop-notify
- GitHub:https://github.com/Dax233/dsh-desktop-notify