DSH Desktop 原生通知插件:任務狀態與提醒

前言

在智能體開發與 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
羽毛球分组比赛记分
小程序二维码

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

小夜