前言¶
在 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 及後續步驟,而不是直接崩潰。
- 目錄頁:https://www.skillhub.cn/plugins/alexkwok213/dsh-computer-use
- 源碼:https://github.com/alexkwok213/dsh-computer-use
- 許可證:MIT(package.json 版本 0.1.0)
設計要點¶
README 歸納的三條思路與多數「逐步點屏」循環的差異如下:
- 本地批量執行:
cu_batch在本地一次跑完 click → type → key → wait 等序列(約 300 ms 量級),而不是每個動作各佔一輪模型。 - 按增量觀測:變更類調用返回緊湊的
+added / -removed / ~changedAX 樹 diff,模型讀幾行文本而非大圖。 - 不搶指針:點擊、輸入、滾動經
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.jsonpeerDependencies) - 已構建並安裝的
cu引擎,且對引擎應用授予 Accessibility 與 Screen Recording - DSH 引擎要求:
dsh>=0.1.5-rc.0(package.jsonengines)
隨時檢查授權與服務(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 可用):
- 構建並安裝 engine,確認本機服務已啓動。
- 在 DSH profile 目錄安裝插件:
cd ~/.dsh/profiles/<your-profile>
pnpm add link:/path/to/dsh-computer-use
- 在 profile 的
package.json→dsh.profile.bundles中登記 bundle,或由自帶的cordis.patch.yml註冊。 - 重啓 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 即可。