DeepSeek Harness (DSH) 採用插件化架構,lak321/dsh-screen-agent 爲 DSH 增加了桌面與網頁自動化能力。該插件通過 Windows Host 路由與 PowerShell 腳本,在本地實現屏幕識別、UI 自動化(鼠標/鍵盤控制)及畫圖操作,無需配置第三方依賴。
核心功能¶
- 屏幕識別:支持全屏及多顯示器截圖,輸出 PNG 與 base64 格式。集成 Windows 內置 OCR,支持本地文字識別與像素座標提取。
- UI 自動化:提供鼠標點擊/拖拽、窗口激活、鍵盤打字及按鍵控制。
- 畫圖能力:直接操作 Windows 畫圖工具繪製圖形。
安裝與啓用¶
舊的手動複製 host/ 並注入 cordis.patch.yml 的方式已廢棄,請使用 bundle 層棧安裝。
- 執行安裝命令(將
<commit>替換爲最新提交號):
dsh plugin --profile web add "github:lak321/dsh-screen-agent#<commit>&path:/"
- 重啓 DSH 使配置生效:
npx -y @deepseek-ai/dsh web
該插件兼容 DSH Profile:`web`。
使用方法¶
通過 HTTP 請求調用接口,參數爲 JSON 格式。
- 截圖:
POST /api/screen
{ "op": "capture" }
截圖結果保存至 `~/.dsh/screenshots/`。
- OCR 識別:
POST /api/screen
{ "op": "ocr", "path": "...", "lang": "zh-CN" }
- 鼠標點擊:
POST /api/screen
{ "op": "click", "x": 100, "y": 200 }
- 鍵盤打字:
POST /api/screen
{ "op": "type", "text": "你好" }
- 對話用法:
在 DSH agent 對話中直接下達指令,如“截圖看看”、“在輸入框輸入 xxx”,Agent 會通過腳本或路由自動執行。
技術實現與注意事項¶
- 平臺限制:僅限 Windows 平臺。使用 PowerShell、user32 / WinRT OCR,零第三方依賴。
- DPI 縮放:進程啓動時需調用
SetProcessDPIAware(),否則在 DPI 縮放下鼠標座標計算會偏移。 - Win11 畫圖 (WinUI 3) 注意事項:新版畫圖存在交互差異,使用畫圖功能時需注意:
- 點色板卡死:點任意色塊可能導致進程無響應(WM_CLOSE 無效),只能通過任務管理器結束進程。建議使用橡皮擦或默認顏色。
- 首次拖拽不繪製:切換工具後第一次拖拽可能只激活不繪製,需操作兩次或先畫一條廢線。
- 小橢圓繪製:小橢圓工具難以繪製(如 rx135 ry18),建議使用鉛筆多段繪製。
- 文本工具:按 Esc 取消會丟失已輸入文字;字號設置需通過鍵盤輸入數字並回車。
License¶
MIT