Codex 拆解:OpenAI 如何打造能實際操控你 Mac 的 AI

當 OpenAI 發表「幾乎能做(幾乎)所有事」的 Codex 時,整個科技圈都為之振奮。AI 寫程式、起草郵件已行之有年,但 Codex 聲稱能操作 macOS ——「用自有游標去看、去點、去輸入」—— 這代表的是一種本質上完全不同的能力。

要跨越雲端語言模型與本地作業系統之間的鴻溝,困難度出了名的棘手。幾十年來,自動化仰賴的是脆弱的應用程式介面(APIs)或 DOM 抓取腳本,只要 UI 元素一變動就立刻報廢。

核心工程洞見在於:Codex 捨棄了程式碼層級的整合,改採像素層級的執行。 透過多模態視覺結合底層核心事件注入,OpenAI 把圖形使用者介面(GUI)變成了一套通用 API。

以下就是讓這一切成真的技術架構。

Mac 原生代理的架構

要讓 AI 在無人介入下測試應用程式,或反覆調整前端設計,它需要一個持續運作的感知—推理—行動(Perceive-Reason-Act)迴圈。以下是 Codex 大致如何在 macOS 上實作每一個階段。

1. 感知:語意視覺與定位引擎

AppleScript 之類的傳統自動化工具會讀取 UI 的無障礙樹(accessibility tree)。這種做法很快,但遇到自訂的 Electron 應用、網頁畫布或遊戲——這些 UI 元素缺少正確無障礙標記的場景——就會失效。

OpenAI 表示 Codex 是靠「看」來使用應用程式,這意謂它仰賴電腦視覺(Computer Vision)。執行於 Mac 上的宿主應用程式會以高頻率擷取桌面畫面。接著,多模態模型利用語意分割來解析這些影格——它不是去找 HTML 標籤,而是用視覺辨識出按鈕、搜尋列、選單等介面元素的形狀與脈絡。

Codex 架構示意圖,展示 macOS 上的「感知—推理—行動」迴圈。

這裡最關鍵的工程挑戰是定位(Grounding)。一旦 AI 鎖定目標,它會執行一段計算,把語意物件對應到螢幕上精確的像素座標。它把「點擊關閉按鈕」翻譯成準確的 (x, y) 位置,並依照特定的顯示器解析度與縮放比例進行調校。

階段 發生什麼事 技術
畫面擷取 高頻率擷取桌面截圖 宿主應用程式
語意解析 依視覺外觀辨識 UI 元素,而非依程式碼 多模態視覺模型
定位 把語意目標對應到像素座標 座標迴歸模型
動作派送 將合成輸入事件注入作業系統 系統框架掛鉤

2. 行動:注入作業系統層級事件

知道要點哪裡,唯有軟體能真正觸發該動作才有意義。Codex 完全繞過實體硬體。

要能在原生層級與 macOS 互動,Codex 幾乎可以肯定調用了 Apple 最深層的系統框架:Quartz Event ServicesAccessibility API

當 Codex 決定點擊時,它會合成一個虛擬的 CGEvent——先 mouseDown、再 mouseUp——並直接注入 macOS 的系統事件佇列。從作業系統的角度看,這個合成事件與實體觸控板按壓完全無從區分。這正是 Codex 為什麼能操作任何應用程式的緣故:人類能點的,Codex 就能點。

3. 隔離:「幽靈游標」的運作機制

或許技術上最具野心的宣稱,是 Codex 能「在背景執行,不接管你的電腦」。任何用過巨集錄製工具的人都知道,傳統自動化會完全劫持滑鼠游標。

要達成並行執行,系統必須把 AI 的輸入與使用者的實體輸入隔離開來。大概有兩種可能的實作方式:

方式 如何運作 取捨
定向視窗路由 macOS 允許把事件送往特定的行程識別碼(PIDs)。Codex 把合成的點擊直接送到目標應用程式的事件迴圈,繞過全域硬體游標。 較低開銷;需要精準的視窗定位。
虛擬影格緩衝 系統啟動一個無頭(headless)虛擬桌面層。Codex 在這個隱形工作區內「看見」並運作,而使用者繼續在主工作區不受干擾地作業。 較高記憶體用量;隔離性更強。

虛擬影格緩衝這套做法,與 Anthropic 推出自家 Computer Use 能力時所觀察到的機制相符,暗示這可能正逐漸成為桌面 AI 代理的業界標準模式。

展望:後 API 時代

後續影響遠遠超越技術實作本身。OpenAI 在作業系統層級打通了「視覺到行動」的管線,使得傳統 API 變成可有可無。我們正邁入大型行動模型(LAM)的時代。

看看實際的意涵:

  • 舊有軟體整合: 2008 年的企業工具、沒有 API?Codex 根本不需要。它會開啟應用程式、瀏覽介面、複製資料,再貼進現代化儀表板。
  • 平台限制: 平台用激進的 API 速率限制來箝制開發者存取?Codex 直接開瀏覽器、像真人使用者那樣驅動介面。
  • 跨應用工作流程: 過去需要在互不相通的應用之間架設客製中介軟體的任務,現在只要一句自然語言指令就能編排完成。

軟體業花了幾十年為應用之間搭橋。如今 Codex 征服了 macOS GUI,應用之間再也不必彼此對話——AI 會代替我們去使用它們。

FAQ

Codex 在 macOS 上是如何「看見」螢幕的?

Codex 使用一個宿主應用程式,以高頻率擷取桌面截圖。接著多模態視覺模型會對這些影格執行語意分割,根據按鈕、選單、文字欄位等 UI 元素的視覺外觀來辨識它們,而非依賴底層程式碼或無障礙標記。

Codex 用了哪些 macOS 框架來模擬點擊與按鍵?

Codex 大概是與 Apple 的 Quartz Event Services 和 Accessibility API 介接。它合成虛擬的 CGEvent(如 mouseDown 與 mouseUp)並注入 macOS 系統事件佇列,讓這些輸入與實體硬體事件無從分辨。

Codex 怎麼能在背景執行而不劫持游標?

系統可能採用定向視窗路由——把事件直接送往特定的行程識別碼(PID);或是採用虛擬影格緩衝,建立一個隱形桌面工作區,讓 AI 在其中獨立運作,而使用者的實體游標不受影響。

什麼是大型行動模型(LAM)?它和 LLM 有何不同?

大型行動模型(Large Action Model)把大型語言模型(LLM)的能力,從文字生成延伸到真實世界的任務執行。LLM 產出回應,LAM 則是透過視覺感知環境、推論該採取什麼動作,再透過系統層級的輸入注入來執行這些動作。Codex 正是 LAM 概念的一個具體實作。

留言

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *