DeepSeek Harness (DSH) 的插件生態允許通過命名空間擴展功能。當開發或調試智能體時,跟蹤輪次結束或處理權限請求至關重要。dsh-macos-notify 插件通過在 macOS 通知中心顯示橫幅,解決了在開發或調試智能體時需要跟蹤輪次結束或處理權限請求的問題。
核心功能¶
該插件分爲 Host 半和瀏覽器半。Host 半負責監聽 agent 事件並調用 macOS 原生通知,瀏覽器半則提供設置頁供用戶配置。主要功能包括:
- 原生 macOS 通知中心橫幅:使用
/usr/bin/osascript調用系統原生通知。 - 觸發時機:在 agent 輪次結束或權限請求到達時觸發。
- 獨立設置頁:提供一個獨立的“通知”設置分區,而非簡單的卡片。
- 自定義配置:支持爲每種觸發操作(如輪次完成、輪次失敗、權限請求)單獨配置提示音、標題和內容。
- 變量替換:支持在標題和內容中使用變量,如
{turn}(輪次編號)、{tool}(工具名)、{error}(錯誤信息)。 - 橫幅測試:提供測試按鈕,可預覽橫幅效果,驗證配置是否正確。
安裝¶
安裝過程無需構建步驟,因爲構建產物(lib/)已納入版本管理。
dsh plugin --profile web add github:WShihan/dsh-macos-notify
配置與使用¶
設置頁配置¶
安裝插件並組合了設置提供方(例如 @deepseek-ai/dsh-settings-file)後,設置面板會出現一個獨立的 通知 頁。你可以在此進行以下配置:
- 通知時機:設置輪次結束、權限請求或僅通知自己的會話時的開關。
- 操作配置:針對每一種觸發操作(如
completed,error,approval),配置其提示音、標題和內容。 - 測試:點擊“測試”按鈕可立即發送一條橫幅,預覽當前的提示音和文本效果。
代碼配置¶
也可以通過 cordis.yml 或 $DSH_HOME/settings.yaml 進行配置。支持的配置項包括:
notifyOnTurnEnd:是否在每個輪次結束時通知(默認true)。notifyOnApproval:是否在權限請求時通知(默認true)。topLevelOnly:是否僅通知頂層會話(默認true)。sounds.<操作>:設置每種操作的提示音(支持 macOS 系統提示音,如Glass,Ping,Basso,或none靜音)。messages.<操作>.title/messages.<操作>.message:設置橫幅的標題和內容,支持變量替換。
變量說明¶
標題與內容支持以下變量:
{turn}:已關閉輪次的編號。{tool}:需要授權的工具名。{error}:失敗信息(僅輪次失敗操作)。{reason}:詢問方給出的原因(權限請求操作)。
注意事項¶
- 依賴設置提供方:設置頁的控件需要
macos-notify命名空間,而這需要設置服務支持。安裝後需確保組合瞭如dsh-settings-file等設置提供方纔能看到設置頁。 - 通信方式:Host 半與瀏覽器半通過命名空間通信,互不知道對方的代碼。
- 未知事件處理:插件不認識的輪次結束原因會退化爲“輪次完成”,沿用該操作的提示音與文本。
- 構建產物:
lib/目錄已納入版本管理,安裝時無需運行構建腳本。