dsh-computer-use:在 DeepSeek Harness 中驅動 macOS 桌面應用

前言

在 DSH 裏做「電腦使用」類智能體時,常見瓶頸是:每個按鍵都要走一輪模型,截圖觀測體積大、延遲高,自動化還會搶走鼠標和前臺焦點。下面介紹社區插件 dsh-computer-use(維護者 alexkwok213,分類:客戶端)。它把 macOS 桌面控制接到 Harness 的工具鏈上,配合獨立的 cu 原生引擎,強調後臺 Accessibility(AX)操作、本地批量步驟、以及 AX 樹增量觀測,而不是每步都依賴全屏 PNG。

這是什麼

Computer Use for DeepSeek Harness — 讓 Harness 驅動真實的 macOS 應用。

插件本身是 DSH 客戶端:持有 TCC 授權、投遞事件的是單獨安裝的 cu 引擎(Swift,僅用 Apple 公開框架)。插件通過本地 HTTP 與引擎通信;引擎未就緒時插件仍可加載,各工具會返回結構化的 service_unreachable 及後續步驟,而不是直接崩潰。

設計要點

README 歸納的三條思路與多數「逐步點屏」循環的差異如下:

  1. 本地批量執行:cu_batch 在本地一次跑完 click → type → key → wait 等序列(約 300 ms 量級),而不是每個動作各佔一輪模型。
  2. 按增量觀測:變更類調用返回緊湊的 +added / -removed / ~changed AX 樹 diff,模型讀幾行文本而非大圖。
  3. 不搶指針:點擊、輸入、滾動經 AXPress 或按 PID 投遞事件,用戶鼠標位置不變,目標應用也不必在最前。

核心功能

能力 說明
後臺優先 點擊 / 輸入 / 按鍵 / 滾動不移動用戶光標、不搶焦點
浮動膠囊 + 光暈 右上角非激活狀態 pill(cu capsule)、目標窗口邊框(cu halo),Stop 一鍵寫 ~/.cu/pause 並 latch
對話內預覽 目標窗口截圖經 DSH attachments.saveImage inline 附在對話裏
分屏會話 cu_session(start) 將 DSH dock 到右側、目標窗口布局在左側,stop 時恢復(類似 Claude prepareDisplay,並減輕 Stage Manager 縮略圖抖動)
AX 增量 變更工具在同一調用裏返回樹 diff
混合定位 先 AX 語義搜索,畫布類應用可回退 Apple Vision OCR
Unicode 中日文輸入經 read-back 校驗

工具一覽

插件註冊 12 個 cu_* 工具(名稱以 README 爲準):

工具 用途
cu_status 服務健康、Accessibility / Screen Recording 授權、pause latch、活躍 session
cu_session start / preview / stop / resume 視覺會話(膠囊、光暈、側 dock、分屏、inline 預覽)
cu_windows 列出屏幕窗口與運行中的應用
cu_launch 按 bundle id 或 .app 路徑啓動;把舞臺外窗口拉回當前 stage
cu_snapshot AX 樹與穩定引用 e1, e2, … 及 delta diff
cu_screenshot 窗口或全屏截圖並 inline 附加
cu_click 按 ref 或 x, y 後臺點擊,帶 post-click AX delta
cu_type 後臺文本(type / setvalue / action)與 read-back
cu_key 後臺按鍵或快捷鍵
cu_scroll 後臺垂直 / 水平滾動
cu_find 混合搜索:AX 優先,OCR 回退
cu_batch 單調用本地執行多步 click / type / setvalue / key / scroll / wait / action

Skill 在 DSH / 菜單中可見:/computer-use、/dsh-computer-use、/cu。

環境與依賴

  • macOS 14+
  • DeepSeek Harness 及插件加載相關包(@deepseek-ai/dsh-tools、@deepseek-ai/schemastery 等,見 package.json peerDependencies)
  • 已構建並安裝的 cu 引擎,且對引擎應用授予 Accessibility 與 Screen Recording
  • DSH 引擎要求:dsh >=0.1.5-rc.0(package.json engines)

隨時檢查授權與服務(README 示例):

curl -s http://127.0.0.1:47777/v1/status | jq '{accessibility, screenRecording, paused, windows}'

引擎二進制解析順序:CU_BIN → ~/Library/Application Support/cu/bin/cu → /Applications/Computer Use.app/Contents/MacOS/Computer Use → 相對插件的 ../../../bin/cu。

安裝與啓用

官方步驟(須先裝好引擎並確認 http://127.0.0.1:47777 可用):

  1. 構建並安裝 engine,確認本機服務已啓動。
  2. 在 DSH profile 目錄安裝插件:
cd ~/.dsh/profiles/<your-profile>
pnpm add link:/path/to/dsh-computer-use
  1. 在 profile 的 package.json → dsh.profile.bundles 中登記 bundle,或由自帶的 cordis.patch.yml 註冊。
  2. 重啓 DSH。12 個 cu_* 工具應出現,skill 進入 / 菜單。

配置項

選項 默認 說明
serviceUrl http://127.0.0.1:47777 本地引擎 URL
autoSession true 對窗口操作時自動顯示浮動膠囊
defaultPreviewMaxDim 960 inline 預覽最大邊長(像素)

典型用法思路

先做 cu_status 或上述 curl 確認引擎與 TCC;用 cu_windows / cu_launch 選定目標應用與窗口。

對需要連續 UI 操作的回合,優先 cu_snapshot 拿 e1… 引用,再用 cu_click、cu_type、cu_key 等單步工具,或 cu_batch 把多步合併爲一次本地執行;每次變更工具返回的 AX delta 纔是判斷 UI 是否變化的主要依據(ok: true 不保證界面已變)。

需要可視化協作時:cu_session(start) 開啓分屏、膠囊與 inline 預覽;用戶點 Stop 後需 cu_session(resume) 才能繼續變更類調用。截圖觀測可用 cu_screenshot;元素難找時用 cu_find。

安全與適用注意

  • Stop 始終一鍵可達;pause 後插件拒絕進一步變更調用,直至 resume。
  • 插件只訪問 127.0.0.1,README 寫明無憑據收集、無遙測。
  • 適合:已在 DSH 中開發 macOS 桌面自動化、能接受單獨維護 cu 引擎與 TCC 授權的開發者。
  • 插件隨當前 DSH 進程 加載運行;安裝前請自行審閱源碼與 MIT 許可證。SkillHub 社區目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係。
  • 僅支持 macOS;非 Mac 環境無需安裝此客戶端插件。

結尾

dsh-computer-use 把 Harness 的工具面擴展到真實 macOS UI:後臺 AX、本地 batch、增量觀測與分屏會話,意圖降低「每步一輪模型 + 全屏圖」的成本。使用前完成 cu 引擎 與雙 TCC 授權;插件與 profile 按 README 用 pnpm add link:… 鏈入並重啓 DSH 即可。

羽毛球分组比赛记分
小程序二维码

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

小夜