dsh-computer-use:DeepSeek Harness 桌面操作插件

前言

在 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 中標註爲深度實測場景。

三個核心機制

  1. 先觀察,再操作:動作必須基於新鮮觀察快照(element 編號或窗口本地截圖像素座標),過期即拒絕。
  2. 所見即所點:觀察輸出與動作座標共用同一「窗口本地截圖像素」空間,無需額外換算。
  3. 自動升級投遞:後臺優先;後臺不可用時自動升級前臺、必要時繞前臺鎖,完成後恢復用戶原焦點。

設計立場:無感自治

插件 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: []

典型用法

進入桌面工具面並觀察

  1. 調用 computer_do({ action: 'enter' }),下一請求即可見全部桌面工具。
  2. 對目標窗口調用 screen_observe,默認 mode: 'ax',需要全量清單時傳 force: true。
  3. 對編號元素使用 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.json permissions);默認外呼爲 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
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜