dsh-computer-use:爲 DeepSeek Harness 增加虛擬鼠標真人操作

前言

在 DeepSeek Harness(DSH)裏做桌面自動化,常見做法是調用系統 API 或依賴截圖 + 座標點擊。前者對模型不友好,後者容易點偏、也難以表達「先看再動」的流程。dsh-computer-use 是社區維護的工作流插件,給 harness-desktop 補上「虛擬鼠標真人操作」:模型先觀察屏幕,再通過獨立光標滑行、點擊、輸入,過程可見,跨 macOS / Windows / Linux。

下面介紹插件定位、11 個工具、安裝步驟與使用注意。

這是什麼

  • 名稱:dsh-computer-use(GitHub:988hj7tczd-oss/dsh-computer-use
  • 維護者:988hj7tczd-oss
  • 分類:工作流(SkillHub 目錄頁標註「可安裝 · 工作流」,當前版本 v0.1.0)
  • 許可證:MIT
  • 引擎:基於 cua-driver(MIT,MCP 標準接口)

插件向 DSH 註冊 11 個模型友好工具。核心設計是:用無障礙(AX)樹「看」屏幕、定位元素座標(零視覺 token 成本);所有操作走像素級虛擬光標,帶滑行動畫與真實點擊,模擬真人操作。

核心功能

觀察與操作工具

工具 功能
screen_observe 看屏幕:AX 編號樹 + 座標;AX 樹爲空時自動降級視覺
computer_click / computer_double_click / computer_right_click 獨立光標滑行到目標 + 像素級點擊
computer_type 文本輸入(密碼框自動拒絕)
computer_key 按鍵 / 快捷鍵(如 return、cmd+c;聊天窗口回車發送)
computer_scroll 滾動
computer_drag 拖拽
computer_wait 等待
app_list / app_launch 列出 / 啓動應用

安全設計

  1. 虛擬光標隔離:操作走 cua-driver 獨立 Agent 光標,不搶佔真實鼠標。
  2. 觀察快照 TTL:快照約 15 秒過期,過期後動作被拒絕,須重新 screen_observe
  3. 區域限制:可選 allowedApps 白名單,名單外應用操作一律拒絕。
  4. 危險操作審批:目標標籤命中「刪除 / 支付 / 轉賬 / 退出登錄」等危險詞時,經 DSH 審批服務徵詢用戶。
  5. 敏感輸入保護:密碼框(AXSecureTextField)拒絕自動輸入。
  6. 無快照拒絕:任何動作必須先 screen_observe,杜絕盲操作。

座標模式(x/y)與無目標輸入(computer_type / computer_key 落到前臺應用)無法預知目標內容,安全兜底依賴快照 TTL 與操作可見性;computer_key 不校驗快捷鍵本身,請勿授予不可信模型。

可選能力

視覺兜底:遊戲、Canvas 等無 AX 樹界面,可設置 ZHIPU_API_KEY 後由 screen_observe 在 AX 爲空時降級爲視覺理解(glm-4.6v-flash 等,見 README)。

光標主題:內置彩虹漸變指針主題 com.dsh.computeruse.rainbow;可通過 cursorTheme 配置,未安裝時回退引擎默認光標。

安裝與啓用

前提

  • harness-desktop(含 dsh rc 運行時)
  • cua-driver 已安裝且權限已授權(macOS:Accessibility + Screen Recording;Windows:普通用戶權限)
  • 插件默認從 PATH 查找 cua-driver;若不在 PATH,設置 CUA_DRIVER_BIN=/path/to/cua-driver

一鍵安裝

倉庫提供 install.sh,在 home 級用戶 patch 層注入,不修改 profile 配置:

# 預演
./install.sh --dry-run

# 安裝
./install.sh

# 卸載
./uninstall.sh

安裝後重啓 harness-desktop 生效。

Windows / Linux 用戶:install.sh 默認 DSH_HOME 爲 macOS 路徑,請先 export DSH_HOME=<你的 dsh home 目錄> 再運行;或手動兩步:

  1. ln -sfn <插件目錄> "$DSH_HOME/profiles/web/node_modules/dsh-computer-use"
  2. $DSH_HOME/cordis.patch.yml 中 insert 插件註冊(見倉庫 cordis.patch.yml

可選配置

$DSH_HOME/cordis.patch.yml 中覆蓋:

- id: dsh-computer-use
  config:
    ttlMs: 15000        # 快照有效期(毫秒)
    maxElements: 500    # screen_observe 最大編號元素數
    allowedApps: []     # 區域限制白名單(空 = 不限制)
    cursorTheme: com.dsh.computeruse.rainbow  # 虛擬光標主題(空 = 引擎默認)

視覺模式(可選):

export ZHIPU_API_KEY=你的key

Key 可在智譜開放平臺申請:https://open.bigmodel.cn

典型用法

開發驗證可採用隔離 profile,不改動真實 GUI 配置。README 示例:

DSH_HOME=$PWD/.dsh-p0 ELECTRON_RUN_AS_NODE=1 \
  /Applications/harness-desktop.app/Contents/MacOS/harness-desktop --expose-internals \
  /Applications/harness-desktop.app/Contents/Resources/app/node_modules/@deepseek-ai/dsh/lib/bin.js \
  --profile test "請調用 screen_observe 觀察當前窗口並報告"

日常流程:先 screen_observe 獲取編號元素與座標,再調用 computer_click 等工具;任何操作前須有未過期的觀察快照。

適用場景與注意

適合:需要在 DSH 對話中讓模型「看桌面、點界面、輸文字」的工作流;希望操作過程可見、與真實鼠標隔離的場景。

侷限(README 自述):

  • Windows / Linux 待真機實測(引擎官方支持)
  • 像素座標校準爲近似,首次點擊偏移可用視覺模式或引擎截圖對比校準
  • 視覺讀屏對小字體精度一般;macOS 計算器等窗口可能不在 AX 樹

權限與安全:插件以當前 dsh 進程權限運行,安裝前應閱讀源碼與 MIT 許可證,確認 allowedApps、審批策略是否符合你的環境。SkillHub 爲社區目錄,與 DeepSeek / 幻方無官方從屬關係。

鏈接

  • SkillHub 目錄頁:https://www.skillhub.cn/plugins/988hj7tczd-oss/dsh-computer-use
  • GitHub:https://github.com/988hj7tczd-oss/dsh-computer-use
  • npm:https://www.npmjs.com/package/dsh-computer-use
羽毛球分组比赛记分
小程序二维码

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

小夜