Agentic Research
首頁/工具/OpenGCUA 教學:讓 AI 真正操作電腦的開源方案

OpenGCUA 教學:讓 AI 真正操作電腦的開源方案

2026/10/2715 分鐘Bryan Chan最後更新 2026/10/27
這篇屬於工具主題OpenGCUAcomputer-usemacOSAI Agent

讀完這篇,你會拿到三樣東西:一份標明證據等級的能力清單(哪些有論文與代碼支撐、哪些只是宣傳)、一套 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 的應用
shellstdout / 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 APIsystem prompt 原文;論文 §2(OSWorld)有原文與 trajectory
程式化執行ablation:+6.1 分、步數 −14.8%有數字
GUI 截圖座標操作代碼與論文 §4.3.4 案例有;誤點取決於模型
前台輸入需批准QUICKSTART:每 task 一次 Allow/Reject只覆蓋 SDK action,不含任意 Python/Bash
確認門禁、多螢幕、AX-tree diffharness 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)
Python3.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-gcua4–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)。這是安裝前提,不是免責聲明。

具體風險有四層:

  1. 任意代碼執行:模型寫的腳本能讀你的 SSH key、瀏覽器 profile、API key;Allow/Reject 只覆蓋 SDK action,官方明文說那不是任意 Python/Bash 的主機級門禁。
  2. Prompt injection → GUI 操作:網頁或文件內容可誘導模型點「批准付款」「刪除」;已發出的操作不回滾(already-issued actions are not rolled back)。
  3. TCC 授權面過大:授給 CuaDriver.app 的螢幕錄製與輔助使用能力,任何能啟動它的進程都會繼承。
  4. 焦點搶佔: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 迴圈。步驟:

  1. 隔離(0.5 小時):建專用標準用戶,確認主帳戶的 .ssh、瀏覽器 profile、代理配置目錄對它不可讀。
  2. 環境(0.5 天):venv+SDK 安裝,mu setup macos、mu doctor macos,授權 TCC。
  3. 讀取示例:對 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。