前言¶
在 DeepSeek Harness(DSH)裏讓模型「看見屏幕、點按鈕、填表單」,常見做法是堆一堆獨立工具 schema,或每一步都等人點批准。上下文被工具定義佔滿、動作和觀測座標對不齊、Windows 前臺鎖與 XAML 輸入失敗時,鏈路很容易斷。
orangeofcarl0-sys/dsh-computer-use 是面向 DSH 的客戶端類桌面操作插件(當前版本 0.5.6,MIT)。維護者 orangeofcarl0-sys 在 README 中說明:項目源自 988hj7tczd-oss/dsh-computer-use(MIT)@07477f4,現爲獨立維護的個人項目。下面介紹它的定位、能力與安裝方式;事實以 GitHub 倉庫 與 SkillHub 目錄頁 爲準。
這是什麼¶
給 DeepSeek Harness 增加一層可觀察、可驗證的桌面自動化:觀察 → 編號定位 → 自動升級投遞 → 驗證,設計目標是全程零審批、零打斷。底層通過 cua-driver 驅動本地桌面,使用獨立虛擬光標,不搶佔用戶真實鼠標。
插件在工具面上採用摺疊態 2 個 / 展開態 21 個模型友好工具:默認只暴露 computer_do 與 screen_observe,需要完整桌面能力時再展開。Windows 相關能力(前臺鎖、XAML/WinUI 輸入、觀測幾何等)在 README 中標註爲深度實測場景。
三個核心機制¶
- 先觀察,再操作:動作必須基於新鮮觀察快照(
element編號或窗口本地截圖像素座標),過期即拒絕。 - 所見即所點:觀察輸出與動作座標共用同一「窗口本地截圖像素」空間,無需額外換算。
- 自動升級投遞:後臺優先;後臺不可用時自動升級前臺、必要時繞前臺鎖,完成後恢復用戶原焦點。
設計立場:無感自治¶
插件 README 明確不追求「極致安全」,而是在「後臺優先 + 升級鏈 + 恢復原前臺 + 審計註記」底座上執行四原則:
| 原則 | 行爲 |
|---|---|
| 易用無感 | 動作零審批、零打斷;歸因靠全量投遞註記與會話日誌 |
| 自動提權 | 投遞鏈自動升級;觀測失敗自動降級桌面級採集;觀測/投遞能力默認全開 |
| 極危敏感警告 | extremePatterns 命中元素標籤時結果附警告註記,不阻斷;默認空則零差異 |
| 僅作基本兜底 | 憑據硬保護(密碼框拒絕自動輸入,唯一硬拒絕)、快照 TTL、無快照拒絕、allowedApps 白名單(默認關) |
安裝與使用前,應閱讀倉庫中的 PERMISSIONS.md 與 package.json 裏 dsh.permissions 摘要:插件通過宿主 spawn 以非 shell 固定 argv 調用 cua-driver;動作以當前 DSH 進程權限運行,請自行覈對源碼與許可證。
核心功能¶
觀察與座標¶
| 模式 | 原理 | 適用 |
|---|---|---|
ax(默認) |
AX/UIA 樹 → 編號 + 座標 | 原生應用 |
native |
窗口截圖經 attachments 供主模型直讀 | Canvas/遊戲/Electron、樹爲空 |
vision |
視覺觀察者結構化描述(默認可配 deepseek-v4-flash-vision-exp) |
主模型不支持圖片輸入時 |
自動降級鏈:AX 樹爲空 → native(模型支持圖)→ vision(有觀察模型)→ ax。窗口級觀測被拒絕時可降級桌面級採集(視覺只讀,座標系變爲桌面像素,結果標註 visualOnly)。
自 v0.2.0 起,所有動作座標均爲窗口本地截圖像素:screen_observe 的 @(x,y) 與 computer_click(x=,y=) 同一空間;不乘縮放、不加窗口偏移。樹空或 AX 失敗時,README 建議走 zoom 定位環:screen_observe → screen_zoom 裁剪 → 圖內座標按 crop 元數據換算 → computer_click。
動態工具面¶
| 狀態 | 模型可見 | 何時 |
|---|---|---|
| 摺疊(默認) | computer_do + screen_observe |
不做桌面操作時 |
| 展開 | 再加 19 個動作/驗證/應用/委派工具 | 調用 computer_do({action:'enter'}) 後,下一請求可見 |
收起方式:computer_do({action:'exit'}),或連續 2 次非桌面工具調用後自動收起。
投遞鏈¶
deliveryMode |
行爲 |
|---|---|
auto(默認) |
後臺優先 → background_unavailable 時前臺重試 → 前臺鎖時 bring_to_front 繞鎖,完成後恢復原前臺 |
background |
全程後臺;不可用時結構化錯誤並給出前臺升級指引 |
foreground |
始終前臺 |
單次動作可用 foreground: true 覆蓋。Chromium/Electron 內容、GTK、VCL 等後臺不可達目標會返回 background_unavailable,而非假裝成功。
其它能力(展開態)¶
- 文本與快捷鍵:
computer_type走 UIA ValuePattern 後臺寫入;組合鍵走hotkey通道。 - 確定性驗證:
computer_verify、computer_wait_for(unknown 永不視爲成功)。 - 剪貼板、菜單路徑直調、應用列表與後臺啓動、強殺開關(
computer_stop/computer_resume)。 - 子 agent 委派:
computer_task,必須以{ok,summary,evidence}收尾;主上下文只喫一條 ≤400 字符回執。工具範圍能否限制取決於宿主能力,不支持時回執會如實說明(見 README「委派的能力邊界」)。 - 上下文成本控制:重複觀察降噪、緊湊動作回執(
verboseReceipts: true時附明細)。
完整工具清單與參數見倉庫 README「工具清單」一節。
安裝與啓用¶
前置:cua-driver¶
先安裝 trycua/cua 驅動(macOS/Linux 使用 curl 安裝器,Windows 使用 PowerShell 安裝器),或手動指定:
export CUA_DRIVER_BIN=/path/to/cua-driver
缺失時,各工具返回結構化錯誤與自救指引,不會靜默失敗。
安裝插件¶
Windows/Linux 需先設置 DSH 主目錄,例如:
export DSH_HOME=/path/to/dsh-home
官方 README 給出的安裝步驟如下:
git clone https://github.com/orangeofcarl0-sys/dsh-computer-use.git
cd dsh-computer-use
./install.sh --dry-run # 預演,不寫配置
./install.sh # 鏈接進 profile + 註冊 bundle patch
也可按倉庫 docs/store-evidence.md 手動安裝。環境要求:Node.js ≥ 22.18.0,DSH ≥ 0.1.5-rc.2。
裝完後重啓宿主,用 app_list 或 screen_observe 驗證是否生效。
配置示例¶
在 DSH profile 中可掛載如下片段(字段含義見 README「配置」表):
- id: dsh-computer-use
config:
ttlMs: 60000
maxElements: 120
observeDedup: summary
verboseReceipts: false
taskTimeoutMin: 5
maxTaskCalls: 3
deliveryMode: auto
allowedApps: []
extremePatterns: []
典型用法¶
進入桌面工具面並觀察¶
- 調用
computer_do({ action: 'enter' }),下一請求即可見全部桌面工具。 - 對目標窗口調用
screen_observe,默認mode: 'ax',需要全量清單時傳force: true。 - 對編號元素使用
computer_click({ element: N }),或對截圖座標使用computer_click({ x, y })(須與最近一次有效觀察同一窗口、未過ttlMs)。
樹空時的定位環(概念流程)¶
screen_observe(AX 樹失敗/樹空)
→ screen_zoom(x1,y1,x2,y2)
→ 在裁剪圖內確認目標並讀出圖內座標
→ 圖內座標 × crop.scale + crop.x/y = 整窗截圖像素
→ computer_click(x=, y=)
驗證與退出¶
- 用
computer_verify/computer_wait_for對 UIA 謂詞做斷言或輪詢。 - 結束桌面會話:
computer_do({ action: 'exit' }),或轉做其它非桌面任務(連續兩次後自動收起)。
適用場景與注意¶
適合:已在 DSH 上跑智能體、需要在本機 GUI 上完成點擊、輸入、滾動、菜單與簡單驗證;尤其 README 重點寫了 Windows 前臺鎖與 UIA 輸入的實測路徑。
注意:
- 插件聲明的安全姿態是「無感自治」:除密碼框硬拒絕外,動作默認不阻斷;敏感環境請自行配置
allowedApps、extremePatterns,並理解審計依賴投遞註記與會話日誌。 app_launch說明:驅動可能需要管理員權限,啓動的應用可能繼承高完整性級別。- 啓用
vision或 GLM 兜底時,可能經對應官方 API 外呼(見package.jsonpermissions);默認外呼爲 none。 - 社區目錄 SkillHub 與 DeepSeek / 幻方無官方從屬關係;DSH 生態理念是「一切皆插件」,本文僅作第三方插件說明。
結尾¶
dsh-computer-use 把桌面自動化收成「觀察—座標一致—三級投遞—可驗證」一條鏈,並用摺疊工具面控制模型注意力成本。若要進一步瞭解權限邊界與 Windows 測試記錄,請直接閱讀倉庫 README、PERMISSIONS.md 與 WINDOWS_TEST.md。
- 目錄頁:https://www.skillhub.cn/plugins/orangeofcarl0-sys/dsh-computer-use
- GitHub:https://github.com/orangeofcarl0-sys/dsh-computer-use