讀完這篇,你會拿到三樣東西:一份標明證據等級的能力清單(哪些有論文與代碼支撐、哪些只是宣傳)、一套 macOS 從 clone 到跑通 Quick Start 的步驟,以及三條落地路徑的取捨——包括為什麼先做半天到一天的只讀 PoC,而不是把整套 harness 交給 AI。
時間成本:閱讀約 15 分鐘,安裝約 30–60 分鐘,完整 PoC 約 0.5–1 天。難度屬 intermediate:需要 macOS 14+、基本命令列操作、Python 3.12,並要理解 macOS 隱私權限(TCC,Transparency, Consent, and Control)——全文最易被低估、也最集中的安全風險點。
OpenGCUA 是什麼:從截圖辨識到真正操作電腦
OpenGCUA 是 generalist computer-use agent(通用電腦操作代理),由 Tongyi-MAI 團隊以 Apache-2.0 開源。它與現有做法的根本差別:主流 computer-use 方案靠 headless 瀏覽器渲染截圖、讓模型看圖輸出座標;OpenGCUA 同時動用四種通道,把「操作電腦」變成「寫程式」。
| 通道 | 讀什麼 | 何時用 |
|---|---|---|
| accessibility tree(AX) | 元素 role / name / value | 直接對元素下指令,不需座標、不拉前景 |
| App API | 應用自身 HTTP API | 有官方 API 的應用 |
| shell | stdout / stderr / return code | 批次、檔案、系統操作 |
| GUI(截圖+座標) | 畫面像素,座標正規化 0–1000 | 無 AX 亦無 API 的介面 |
四條通道各有分工:
- accessibility tree(AX,無障礙樹):讀元素的 role、name、value,直接對元素下指令,不需座標、不把視窗拉到前台。
- App API:呼叫應用自身的 HTTP API。論文的 CRM 例子直接 PATCH lead 狀態再用 assert 驗證,全程沒碰 GUI。
- shell:bash 命令,回傳 stdout、stderr 與 return code。
- GUI(截圖+座標):按需截圖,座標正規化到 0–1000,必要時才做前台真實輸入。
殺手鐧是程式化執行(code execution):模型寫一段 Python,混合 AX、shell、API 與 GUI 操作,帶迴圈與條件,一次執行,消滅「每步截圖等回應」的死循環。消融實驗(ablation)數據:partial score +6.1 分、步數 −14.8%(T0,論文 §3.2)。
另一個重點是背景操作:background_mode 預設開啟,Chromium 不激活啟動、分頁留背景,原生應用走 AX action——代理可在使用者旁邊工作而不搶滑鼠鍵盤(論文 §4.2)。
架構與能力邊界:哪些有證據,哪些是宣傳
結論先講:程式化執行、AX 讀取、背景操作與 benchmark 數字有論文與代碼支撐;「放手讓它全自動完成真實工作」沒有。逐項核對如下:
| 能力 | 證據 | 判定 |
|---|---|---|
| AX 讀取與元素操作 | SDK 示例、QUICKSTART、論文 §4.2 | 代碼+文檔+論文 |
| 背景視窗操作 | background_mode 設計與文檔 | 有支撐;demo 未獨立核實 |
| shell/App API | system prompt 原文;論文 §2(OSWorld) | 有原文與 trajectory |
| 程式化執行 | ablation:+6.1 分、步數 −14.8% | 有數字 |
| GUI 截圖座標操作 | 代碼與論文 §4.3.4 案例 | 有;誤點取決於模型 |
| 前台輸入需批准 | QUICKSTART:每 task 一次 Allow/Reject | 只覆蓋 SDK action,不含任意 Python/Bash |
| 確認門禁、多螢幕、AX-tree diff | harness README 標 🚧(依序 v0.2/v1.0/v0.2) | 均未完成 |
| 跨裝置(Android/Linux) | README 只有 macOS 示例 | 部分未核實 |
| 原生菜單欄 app(DMG) | 本地開發 build、未 notarize | 非正式發行 |
兩個要點:它的安全模型建立在「用戶在場、逐次按 Allow」之上,與無人值守正好相反;項目 2026-10-15 建立,十餘天歷史,屬 research preview,官方也如此定位。
實測數據:效率大漲,全成功率只有四分之一
結論先講:8 個前沿模型的平均成績顯示效率大幅改善,但全任務成功率只有約四分之一——當效率工具可以,當無人值守員工不行。
論文 Table 2(OSWorld-v2 82 題 offline 子集,8 模型,T0)平均改善:
- partial score:+19.6 分
- 任務步數:−53.0%
- output tokens:−27.2%
以提升最大的 DeepSeek-V4.1-Flash 為例:partial score 從 28.0 升到 57.7(+29.8),步數從 167.3 降到 84.9(−49.3%),output tokens 從 316.0K 降到 180.4K——但全任務成功率只從 8.5% 升到 26.8%:四分之三的任務仍需要人接手。
真機(real-device)證據更薄:4 個 macOS 任務、每模型 1 次選定 run,作者自標 preliminary。最好的 GPT-6 Astra 完成 4/4,開源 flash 級模型僅 2/4;成本差一個數量級——GPT-6 Astra 約 US$18/任務,flash 級 US$0.1–1.5(T0,Table 5)。
換算到平價模型,單任務 API 成本約 US$0.25–0.35(內部估算,非實測帳單),是純 shell 流程的 10–50 倍。只有人手要花 20–30 分鐘的 GUI 任務(填表、跨應用搬資料)才划算;shell 能做的事不該交給它。
論文 §4.3.4 記錄三種典型失敗模式:對簡單操作過度推理(2,105 對 124 output tokens);觀察錯目標(抓前台視窗而非背景頁面);程式覆蓋不全(125 題只完成 85 題且未自查)。
系統需求:macOS 14+ 與 TCC 權限
結論先講:硬體與軟體門檻不高,真正的門檻是 TCC 按 「負責進程」(responsible process)授權——換個直譯器授權就失效,直接影響背景與無人值守場景。
| 需求 | 規格 |
|---|---|
| 作業系統 | macOS 14+(原生 app 需 Apple Silicon) |
| Python | 3.11–3.14(官方建議 3.12) |
| uv、Xcode CLT | 必需 |
| Rust/Cargo | 僅源碼安裝需要(1.89+);SDK 有 prebuilt wheel 可繞過 |
| CuaDriver.app | 由 mu setup macos 安裝,常駐 daemon |
需授予 CuaDriver.app 兩項 TCC 權限:螢幕錄製(Screen Recording)與輔助使用(Accessibility)。
官方文檔點名的坑:TCC 授權跟著負責進程走,不是全局生效。切換 venv、換 Python binary 或終端機,授權立刻失效,GUI 呼叫返回 PERMISSION_DENIED;而 macOS 通常不允許把裸 python3.12 加進螢幕錄製清單。解法只有三種:用已授權的 interpreter、重啟 CuaDriver.app、或授權啟動它的終端/IDE。用 cron 或背景任務驅動時,負責進程很可能不是你授權過的那個——必須先實測。
背景執行:設計上支援,background_mode 預設開啟;前台操作每 task 需一次 Allow/Reject。GUI 操作需要已登入解鎖的桌面 session,SSH/headless 無文檔支援。
安裝與 Quick Start
結論先講:官方流程五步——clone、建 venv、裝 SDK、跑 setup、跑 doctor;菜單欄 app 目前要自行 build,且未經 Apple notarize。
git clone https://github.com/Tongyi-MAI/OpenGCUA
cd OpenGCUA
uv venv --python 3.12
source .venv/bin/activate
uv pip install -e ./packages/sdk
接著安裝並檢查 macOS 驅動層(CuaDriver):
mu setup macos # 安裝 CuaDriver.app 並引導權限授權
mu doctor macos # 環境與權限自檢
然後到「系統設定 → 隱私權與安全性」把螢幕錄製與輔助使用授給 CuaDriver.app。驗證標準:mu doctor macos 所有 capability 顯示 ready。
菜單欄助手是 SwiftUI 原生 app,內置 Python 與 SDK,只有本地開發 build、未 notarize——首次開啟需在 Finder 右鍵選「開啟」繞過 Gatekeeper。給它 TCC 權限前,先讀下一節。
幾個執行參數(名稱與預設值來自官方 QUICKSTART,T0):
background_mode: true # 背景操作預設開啟
compaction_trigger_tokens: 200000 # 壓縮觸發閾值
compaction_max_tokens: 100000 # 壓縮後保留上限
img_keep_n: 5 # 保留最近 5 張截圖
img_interval: 10 # 每 10 步截一張
compaction 是有損壓縮,且不會自動續上被中斷的動作。模型接入走 openai 協議(相容 Qwen、vLLM、Ollama、LiteLLM),另有 openai-thinking 與 anthropic。視覺輸入非必需——AX+shell+API 已足以驅動大部分任務。
三條落地路徑:harness、插件、SDK
結論先講:A 路徑兩天、風險高;B 路徑要重寫 Windows 引擎、暫不碰;C 路徑半天到一天、風險最低,建議先做。
| 路徑 | 內容 | 工時 | 風險 |
|---|---|---|---|
| A | 直接跑 macOS harness(SDK+CuaDriver) | 約 2 天 | 高:模型代碼以你的用戶權限執行,確認門禁要到 v0.2 |
| B | 接社群插件 dsh-gcua | 4–6 天 | 中:引擎為 Windows-only 需重寫,單一維護者 |
| C | 只用 SDK 讀 AX、不跑 LLM 迴圈 | 0.5–1 天 | 低:先讀後寫,可逆 |
路徑 A:直接跑 macOS harness。 裝 SDK+CuaDriver,授 TCC,用示例腳本或菜單欄 app 跑真實任務。約 0.5 天裝通+1–1.5 天權限與安全驗收,合計約 2 天。風險高:模型代碼以你的用戶權限執行、確認門禁未完成、GUI 會與常駐服務搶焦點。只應在獨立 macOS 用戶下試。
路徑 B:社群插件 dsh-gcua。 看起來是接線,實際是重寫:其引擎(約 19.6 KB Python)自稱 Windows GCUA harness——PowerShell 車道要換 bash、pywinauto/UIA 要換 AX(pyobjc)、taskkill /T /F 要換 process group、Ctrl+V 要換 Cmd+V,估 4–6 天。加上單一維護者、4 stars、倉庫僅 25 KB,不能當生產依賴。
路徑 C:只用 SDK。 裝 prebuilt wheel(免 Rust),只調 macOS adapter 讀 AX、做背景 AX action,不跑 LLM 迴圈。0.5–1 天,先讀後寫,風險最低。價值在補上「沒有 CLI 的 GUI 應用」這段空白——聊天軟件、券商終端、表格、PDF 簽名,正是 shell 與 headless 覆蓋不到的地方。
安全風險:模型寫的代碼以你的權限直接跑
結論先講:最大的風險不是它點錯按鈕,而是模型生成的 Python/Bash 以你的登入用戶權限直接執行,而官方確認門禁要到 v0.2 才有。
harness README 說得很直白:confirmation gating 屬 v0.2,在此之前「只可以在你能承受狀態損失的機器上跑」(run only on machines whose state you can afford to lose)。這是安裝前提,不是免責聲明。
具體風險有四層:
- 任意代碼執行:模型寫的腳本能讀你的 SSH key、瀏覽器 profile、API key;Allow/Reject 只覆蓋 SDK action,官方明文說那不是任意 Python/Bash 的主機級門禁。
- Prompt injection → GUI 操作:網頁或文件內容可誘導模型點「批准付款」「刪除」;已發出的操作不回滾(already-issued actions are not rolled back)。
- TCC 授權面過大:授給 CuaDriver.app 的螢幕錄製與輔助使用能力,任何能啟動它的進程都會繼承。
- 焦點搶佔:
background_mode降低機率,但系統對話框與前台 action 仍可能搶焦點;與 cron、heartbeat 並存時,時序衝突會「點錯視窗」。
隔離測試方案(最低限度):
- 建專用 macOS 標準用戶:不登入 iCloud、不掛主用戶 home、不放任何憑證。
- 獨立 API key(放 gitignore 的本地配置),不共用,用完即 rotate。
- 先只讀 AX、不寫入;進寫入階段後每次 action 人手批准。
- 全程開 trajectory 與螢幕錄影,事後抽檢。
- 不把 harness 註冊成自動化系統的 tool,避免被其他 agent 自主觸發。
我們的建議:先做只讀 PoC,驗收線寫死
結論先講:先做 C 路徑只讀 PoC,0.5–1 天、五條驗收線全過才考慮下一步;標準事先寫死,不靠感覺。
PoC 範圍刻意收窄:只讀,不寫,不跑 LLM 迴圈。步驟:
- 隔離(0.5 小時):建專用標準用戶,確認主帳戶的
.ssh、瀏覽器 profile、代理配置目錄對它不可讀。 - 環境(0.5 天):venv+SDK 安裝,
mu setup macos、mu doctor macos,授權 TCC。 - 讀取示例:對 TextEdit 類原生應用取 AX 樹、列視窗(API 以 repo 內 examples 目錄為準)。
五條驗收線(全過才進入下一階段):
- C1:
mu doctor macos所有 capability 顯示 ready。 - C2:SDK import 成功,無 native extension 錯誤。
- C3:AX 樹節點 ≥ 50,含 role/name/value;連續 3 次、每次 < 5 秒;同一元素的 id 在兩次快照間可對應。
- C4:單次 observe 序列化 < 30 KB(約 < 2K tokens),全程 0 張截圖。
- C5:零寫入;跑完後目標應用內容 diff 為空。
決策門:C1–C5 全過,才值得再投 2 天做 A 路徑隔離試跑(補三條寫入驗收線:目標元素按預期改變、前台應用與滑鼠座標前後不變、撤權限後返回 PERMISSION_DENIED 且不崩潰)。C3 或 C4 不過(AX 樹太大或太慢),就停——只保留「讀 AX 做查詢」的低頻用途。
明確不做的清單:不在主力機無人值守跑、不接生產系統、不自動批准任何前台操作、不跑付款/發送/刪除類任務。
最後給一個判斷:OpenGCUA 最值得吸收的是「code execution+選擇性觀察+任務台賬」這套設計,而不是急著讓它接管電腦。把這套設計搬進現有 shell 流程,成本低得多,方向一致:讓 AI 少截圖、多寫程式、在背景把事辦了。
來源
一級來源(T0,2026-10-27 抓取)見文首 references:GitHub 倉庫與 QUICKSTART、arXiv 論文、官網、社群插件 dsh-gcua。標「內部估算」的成本換算未經實測帳單驗證;真機數據的樣本量與作者自評限制見論文 §4.3.3。