在 DeepSeek Harness (DSH) 的任務編排或智能體開發場景中,當長時間運行的代理在後臺執行任務時,開發者往往無法實時感知任務進度。dsh-task-notify 插件旨在解決這一痛點,通過調用原生操作系統通知機制,在特定任務狀態(如目標完成、代理回合結束)發生時,在桌面端彈出直觀的視覺反饋。
這是一個 DSH 插件,由開發者 YuMo226 維護。它不依賴複雜的運行時環境,而是直接利用操作系統原生的通知服務,確保在 Windows、macOS 和 Linux 上都能獲得一致的體驗。
核心功能¶
- 原生 OS 通知:支持 Windows Toast、macOS Notification Center 和 Linux libnotify。通知以系統原生橫幅形式展示,不會阻塞 DSH 的主進程運行。
- 雙觸發器支持:支持配置兩種觸發條件:
onGoalComplete:當目標狀態變爲complete時觸發。onTurnEnd:當代理回合正常結束時觸發。
- 零運行時依賴:僅使用 Node.js 內置模塊和系統自帶的命令行工具(如 PowerShell、osascript、notify-send),無需額外安裝第三方庫。
- CJK 文本安全:針對中文環境優化,在 Windows 上通過 UTF-8 臨時文件傳輸文本,防止中文字符亂碼。
- 防抖動機制:內置最小間隔限制,防止在短時間內發送過多通知干擾用戶。
安裝與啓用¶
通過 DSH 的插件管理器進行安裝。安裝後需重啓 dsh web 進程以使插件生效。
dsh plugin --profile web add dsh-task-notify
安裝完成後,需要在配置文件中添加插件實例。以下是啓用“目標完成”和“回合結束”通知,並設置最小間隔爲 4000 毫秒的配置示例:
- insert:
- id: notify
name: dsh-task-notify
config:
onGoalComplete: true
onTurnEnd: true
title: 'DeepSeek Harness'
minIntervalMs: 4000
適用場景與注意¶
- 平臺依賴:
- Windows:請確保系統通知中心已開啓,且“專注助手”未設置爲“僅限鬧鐘”或“僅限優先”。
- macOS:依賴
osascript命令,兼容 macOS 10.8 及以上版本。 - Linux:優先使用
notify-send(需安裝libnotify)。如果系統未安裝 libnotify,插件會嘗試回退使用zenity或kdialog。
- 日誌排查:所有通知的發送嘗試及失敗原因都會記錄在用戶目錄下的日誌文件中:
<home>/task-notify.log。如果未收到通知,建議首先查看此日誌文件。
dsh-task-notify 通過輕量級的系統級通知,降低了智能體開發中的狀態確認成本。如需查看更多細節或提交問題,請訪問 GitHub 倉庫。