前言¶
在模型推理場景中,讓智能體“看到”界面是常見需求。傳統的做法是開發者手動截圖並上傳。DeepSeek Harness 插件 dsh-screen-eye 將這一過程自動化:模型在調用工具時即可捕獲屏幕,並在同一次調用中接收圖像內容。
核心功能¶
該插件爲 DSH 提供了兩個可直接調用的工具:
screenshot:捕獲屏幕並返回圖像作爲內容塊,模型可以直接查看。screen_permission:在 macOS 上報告權限狀態;使用action: "guide"時,會打開系統設置並定位到具體的權限條目,引導用戶開啓。
安裝¶
安裝該插件無需本地構建步驟,也沒有額外依賴。
dsh plugin --profile web add github:davidekingsss/dsh-screen-eye
安裝完成後需重啓 DeepSeek Harness。
權限配置(macOS)¶
macOS 對屏幕錄製有嚴格的權限控制。這是使用該插件的主要障礙。
權限狀態檢測¶
插件通過實際嘗試捕獲來檢測權限狀態,而非猜測。如果權限未授予,screenshot 會失敗。此時調用 screen_permission 工具,如果 action 爲 "guide",它會打開系統設置並指引用戶。
啓動器名稱差異¶
macOS 的權限條目名稱取決於啓動 Harness 的應用(即“責任進程”),而不是 Harness 本身。例如:
* 通過瀏覽器啓動:條目名爲 Google Chrome。
* 通過終端啓動:條目名爲 Terminal 或 iTerm。
* 通過快捷指令啓動:條目名爲 運行 Deepseek Harness。
工具會列出常見情況,但用戶需在設置中手動匹配該條目。
操作步驟¶
在 macOS 上首次使用時,需遵循以下步驟:
- 調用
screenshot。 - 如果失敗,調用
screen_permission並設置action: "guide"。 - 系統會打開“隱私與安全性”設置頁面。
- 在“屏幕錄製”列表中找到對應的條目並開啓開關。
- 再次調用
screenshot。
無法通過編程手段自動開啓權限,這是系統安全策略(SIP 保護 TCC 數據庫)的限制。
捕獲模式¶
screenshot 工具支持多種 mode 參數,用於定義捕獲範圍:
screen(默認):捕獲主顯示器。display:按索引捕獲單個顯示器。region:捕獲矩形區域。座標系原點爲主顯示器的左上角,因此位於主顯示器左側或上方的顯示器座標可能爲負數。displays:不捕獲圖像,僅列出連接的顯示器及其索引。window:捕獲當前置頂的窗口。select:交互式選擇,等待用戶點擊窗口或拖拽矩形。Windows 平臺不支持此模式。
多幀與運動¶
通過設置 frames 參數大於 1,可以捕獲連續的圖像序列。參數 interval_ms 決定了幀之間的時間間隔。
- 採樣速度取決於捕獲區域大小:4K 全屏約需 155ms,1200x800 區域約需 56ms。
- 返回的圖像是單幀存儲,不會自動合成 GIF。
- 序列的總時長由
timeout_ms決定(默認 5 分鐘),幀數上限由提供者限制(約 600 張)。 - 響應會報告實際達到的時間間隔。
系統差異(Windows)¶
Windows 平臺的實現與 macOS 有顯著差異:
- 無權限報告:Windows 沒有機制允許插件報告屏幕錄製權限狀態。
- 圖像質量:
- 如果進程不感知 DPI(DPI-unaware),捕獲的圖像可能是低分辨率副本。
- 如果進程未附加到交互式桌面(非交互式桌面),捕獲可能爲黑幀。
限制¶
- 單次調用限制:每次
screenshot調用最多返回一張圖像(即使系統有多個顯示器)。 - 依賴:插件本身無原生構建步驟,但 macOS 平臺會在首次捕獲時從源碼編譯一個小助手。
- 手動干預:macOS 權限必須手動開啓,無法自動化。