我使用 Claude Code 了 12 個月,然後改用 Codex 30 天。
以下是發現的差異
Codex 在 2026 年真正的樣貌
大多數人仍認為 Codex 只是個更聰明的自動補全工具。但事實並非如此。
- Codex 是一個完整的代理式軟體開發平台。它能讀取你的程式碼庫、撰寫與測試程式碼、審查 Pull Request、控制你的 Mac 桌面、瀏覽網頁、生成圖片、排程重複性任務,還能跨對話記住你的偏好。
- 這需要相當大的心態轉變。你不再是那個寫程式碼的人,而是變成一個審查由永不休息的初級工程師團隊所寫程式碼的人。
大多數開發者安裝 Codex 後,會先用簡單的單行提示詞試用兩週,得到平庸的結果,然後放棄。他們從未設定過 AGENTS.md。
他們從未寫過任何一個 Skill。也從未使用過子 Agent。他們只用了 5% 的功能,卻根據這 5% 來評斷這個工具。
本課程涵蓋了另外的 95%。
五種使用介面
在安裝任何東西之前,先了解 Codex 存在於哪些地方。你選擇的介面決定了你跟進其工作的緊密程度,以及程式碼在哪裡執行。
CLI 適合腳本化工作流程、單一任務工作與無頭自動化。你的程式碼除非你主動推送,否則不會離開你的機器。開源、以 Rust 建構、可在 macOS、Windows 與 Linux 上執行。
IDE 擴充套件適合需要精確檔案情境的互動式編輯。可安裝於 VS Code、Cursor、Windsurf 或 JetBrains。使用你的 CLI 驗證,無需另外登入。
桌面應用程式是多執行緒工作流程、內建瀏覽器、電腦使用、目標模式、Appshot 與自動化的主要場所。2026 年 2 月於 macOS 推出,2026 年 3 月 4 日於 Windows 推出。
Cloud 適用於非同步背景任務、平行 PR 以及在你睡覺時工作。任務在預載你 GitHub 儲存庫的沙盒容器中執行。不會阻塞你的本機電腦。
內建瀏覽器與電腦使用適用於 UI 驗證、前端迭代與端到端測試。Codex 開啟你的本機開發伺服器、與之互動、截取結果畫面,並驗證程式碼變更是否產生了正確的視覺輸出。
真正的工作流程會結合多個介面:
- CLI 用於腳本化事項
- IDE 用於互動式功能開發
- Cloud 用於你不需要監看的平行任務
- App 用於目標導向的長時間任務
選擇介面的主要因素是你想多緊密地跟進 Agent 的工作。如果你想即時監控變更,CLI 或 IDE 會讓工作停留在你的機器上並呈現在你眼前。如果你想委派一個較長的對話並在最後再審查,Cloud 就是正確的選擇。
心智模型:Agent,而非自動補全
釐清介面後,下一個轉變是理解工作單位。
工作單位是「任務」,而非「輪次」。產出是「PR」,而非「聊天回應」。
思考方式要從「寫一個做 X 的函式」轉變為「實作功能 Y,以下是限制條件,完成後執行測試」。
每個 Codex 任務都遵循相同的內部循環。Codex 讀取你的任務與情境,產生內部計畫,逐步執行,並檢查自己的成果。
不要再把 Codex 當作程式碼助手。開始把它當作一個你早上 briefing、下午 review 的初級工程師團隊。
一個實際應用的例子:WorkOS 的開發者現在會在喝早晨咖啡前排隊四到五個 Codex 任務。等他們坐回位子時,已經有兩到三個完成的 PR 等著審查,處理那些過去佔據他們 30% 到 40% 時間的維護工作。
截至 2026 年 5 月的目前模型:
- GPT-5.5(預設)——處理大多數任務,延遲與之前相同,但相同工作所需的 token 數明顯減少
- GPT-5.3-Codex——專為長時間自主執行、大型重構與平行雲端分散而設計;比先前的 Codex 專用模型快 25%
- GPT-5.5 Pro——最高推理能力;僅限 Pro、Business 與 Enterprise 方案
- Codex Mini——免費方案永久免費;適合學習
建議將 Codex 預設保留在 GPT-5.5。對於需要長時間自主執行的大型代理任務,則切換到 GPT-5.3-Codex。
入門:你的第一個真正工作階段
最快獲得有效 Codex 工作階段的途徑,遵循以下五個步驟。跳過那些 fizzbuzz 教學。直接從一個真正的程式碼庫開始。
步驟 1:安裝 CLI。
步驟 2:開啟一個真正的專案。
導覽至一個你已經熟悉且風險較低的儲存庫。這一點很重要。
當你能夠辨認輸出並發現錯誤時,Codex 的表現會更好。在不熟悉的程式碼庫進行第一次工作階段會產生不可預測的結果。
當系統提示時,使用你的 ChatGPT 帳戶登入。你的瀏覽器會自動開啟。點擊繼續,然後回到終端機。
步驟 3:在執行其他任何操作之前,先執行 /init。
這個單一指令是大多數教學忽略的。Codex 會掃描你的目錄與 Git 歷史,識別語言、框架、建置指令與測試指令,並建立一個填入所發現內容的 AGENTS.md 檔案。
審查產生的檔案,調整任何錯誤的部分,然後提交。每個未來對這個專案的 Codex 工作階段都會自動讀取它。
步驟 4:給予 Codex 一個導向任務。
在要求它變更任何東西之前,先請它解釋程式碼庫。這能建立你對它載入了哪些情境的信心:
1將此專案中的架構決策用 Markdown 摘要寫出。2列出所有的主要模組、它們的責任以及如何互相通訊。
閱讀輸出。如果它準確地描述了你實際的程式碼庫,那麼它就擁有了所需的情境。如果內容模糊或錯誤,你的 AGENTS.md 需要更多細節。
步驟 5:給予一個小的實際任務。選擇具體且有範圍限制的事項。
1在 src/auth/login.ts 中,新增電子郵件與密碼的輸入驗證。2規則:電子郵件必須包含 @,密碼長度至少 8 個字元。3註冊失敗案例。不要變更其他任何檔案。4完成後執行 `pnpm test` 並回報結果。
這是正確的 Codex 提示詞結構:明確的檔案情境、預期結果、限制條件,以及定義好的驗證步驟。審查它傳回的 diff。你現在正在正確地使用 Codex。
步驟 6:安裝桌面應用程式。從 OpenAI 網站下載。使用同一個 ChatGPT 帳戶登入。
步驟 7:安裝 IDE 擴充套件。在你的編輯器擴充套件面板中搜尋「OpenAI Codex」。它會自動讀取你的 CLI 驗證。
步驟 8:連接 GitHub。前往 Codex 應用程式內的設定,並連接你的 GitHub 帳戶。在使用雲端任務之前,至少連結一個儲存庫。
各項資源的位置:
~/.codex/config.toml:主要設定:核准模式、沙盒模式、MCP 伺服器、模型預設值~/.codex/AGENTS.md:個人 AGENTS.md,適用於所有專案<專案>/AGENTS.md:專案層級的指令<專案>/.agents/skills/:專案層級的 Skill<專案>/.codex/config.toml:專案範圍的設定(僅限受信任的專案)
AGENTS.md:你儲存庫中最重要的檔案
既然你已經有一個運作中的工作階段,下一步就是讓每個未來的工作階段都從相同的品質開始。這就是 AGENTS.md 的作用。
AGENTS.md是區分平庸 Codex 輸出與穩定高品質輸出的單一檔案。- 它是你儲存庫根目錄下的一個純 Markdown 檔案。每當 Codex 在你的專案上啟動一個工作階段時,Agent 會在任何其他操作之前自動讀取它。
- 它是一個開放標準。Codex、Cursor、Gemini CLI、Windsurf 與 GitHub Copilot 都會讀取它。只需撰寫一次,你工具鏈中的所有 Agent 就會讀取相同的真實來源。
解析順序:Codex 讀取 ~/.codex/AGENTS.md(家目錄層級,所有專案)加上 <專案>/AGENTS.md(專案層級)。AGENTS.override.md 檔案在每個層級具有優先權。合併限制為 32 KiB。
應包含的內容:
- 技術堆疊、框架、語言版本、套件管理器
- 精確的建置、測試與開發指令;要能直接複製貼上,而非「執行常用的測試」
- 檔案結構慣例與命名規則
- 樣式與模式規則
- 禁止區域:哪些不該碰
- 上線需求:CI、PR 慣例、部署機制
不應包含的內容:
- 機密或憑證(該檔案在版本控制中)
- 模糊的指導方針(對 Agent 來說「寫乾淨的程式碼」毫無意義)
- 重複 README 的文件
保持在 500 字以下。過多的內容會將有用的情境擠出模型的運作記憶體。
一個可用的模板:
1# AGENTS.md23## 技術堆疊4- 語言:TypeScript 5.55- 執行環境:Node.js 226- 套件管理器:pnpm 97- 前端:React 19 + Tailwind CSS 48- 後端:Hono 4 + Drizzle ORM9- 測試:Vitest + Playwright10- CI:GitHub Actions1112## 指令13- `pnpm dev` — 啟動開發伺服器14- `pnpm build` — 產品建置15- `pnpm test` — 執行單元測試16- `pnpm test:e2e` — 執行端到端測試(需要 `pnpm dev`)17- `pnpm lint` — ESLint + Prettier1819## 慣例20- 新功能:在 `src/features/<name>/` 中建立模組21- 共用 UI:使用 `src/components/ui/` 中的元件22- API 路由:檔案命名為 `*.route.ts`23- 資料庫遷移:使用 Drizzle,檔案命名為 `*_<name>.ts`24- 測試檔案:與來源檔案放在一起,命名為 `*.test.ts`2526## 禁止事項27- 請勿修改 `src/config/` 中的設定檔案28- 請勿直接變更資料庫遷移檔案;改為建立新的遷移29- 請勿移除或修改現有的 PropTypes / TypeScript 型別定義3031## 合規要求32- 每次 PR 前必須執行 `pnpm lint` 與 `pnpm test`33- Markdown 文件用繁體中文;程式碼註解用英文34- 所有公開函式必須有 JSDoc 註解
驗證 Codex 是否正在讀取該檔案:提示「摘要你目前已載入的指令」。
對於大型 monorepo,在子目錄中放置額外的 AGENTS.md 檔案。
packages/api/AGENTS.md 中的檔案在該套件內的任務中會優先於根層級的檔案。
執行 codex trust . 以啟用專案層級的 .codex/config.toml。這可防止惡意的複製儲存庫在你背後設定 Codex。
CLI 深入探討
設定好 AGENTS.md 之後,接下來要精通的是 CLI 本身。大多數使用者只會輸入 codex,而錯過了那些讓它真正強大的指令。
以下四個指令涵蓋了 95% 的實際日常使用。
codex 開啟互動模式,用於探索、迭代以及與程式碼庫進行來回對話。
codex exec "<task>" 以非互動方式執行 Codex。它會串流輸出到 stdout 並在完成時結束。這是任何可腳本化工作的利器:
1codex exec "檢查所有檔案中是否有過時的 API 呼叫,並輸出摘要"
將 exec 連結到 git hooks、CI 管線與 cron 任務。它是所有自動化工作的基礎建構塊。
codex resume --last 會從你上次離開的地方精確接續。每個工作階段都會儲存:
1codex resume --last # 接續上次的中斷處2codex resume --session <id> # 指定特定工作階段
codex cloud 管理非同步雲端任務,將在下方 Cloud 章節中說明。
有用的旗標:
--json:JSONL 事件串流,用於導向其他工具--model <name>:選擇 GPT-5.5 或 GPT-5.3-Codex--reasoning <level>:低、中、高--search:允許在任務期間進行網路搜尋-C <dir>:在不同的工作目錄中執行--sandbox <mode>:覆寫此工作階段的沙盒模式--approval <policy>:覆寫此工作階段的核准政策
沙盒與核准
CLI 賦予你力量。沙盒則控制 Codex 可以在不詢問你的情況下行使多少力量。正確設定沙盒能讓你的工作流程保持快速,同時不產生風險。
沙盒是控制 Codex 能做與不能做什麼的邊界。正確設定可以防止意外。
三種沙盒模式:
workspace-write(預設):在工作區內讀取與寫入,常規指令,除非允許否則無網路。幾乎總是使用此模式。read-only:唯讀,無寫入,無 shell。適用於程式碼審查與探索。danger-full-access:無限制。幾乎從不使用。保留給經過測試與驗證的自動化工作。
兩種核准政策:
untrusted—— 在每個非受信任指令前詢問。適合學習階段或不熟悉的專案。on-request(預設)—— 自動核准常規沙盒指令,在可能突破沙盒邊界前才詢問。
auto_review 是一個審查者子 Agent,會根據你的 AGENTS.md 自動核准或拒絕。
在設定中啟用 approvals_reviewer = "auto_review"。適用於長時間的非同步任務與目標模式,你不需要全程監看每一步。
1[approvals]2policy = "on-request"3reviewer = "auto_review"4allowed_commands = [5 "pnpm *",6 "git *",7 "curl *",8]
新增那些不斷煩你要求核准的指令。永遠不要新增任何破壞性指令。
有效提示 Codex
沙盒已設定好,工作階段在運作。下一個槓桿是提示詞的品質,其對輸出的影響超過任何其他變數。
影響 Codex 輸出品質的最大單一因素是提示詞結構。模糊的提示詞產生模糊的程式碼。
框架:告訴、展示、描述、提醒。
- 告訴它你想要的結果,而非方法
- 展示它範例輸入與預期輸出
- 描述要使用的 API、函式庫與模式
- 提醒它來自
AGENTS.md的慣例
並非每次都需要全部四個。一個小的錯誤修正可能只需要「告訴」與「提醒」。一個新功能通常需要全部四個。
- 單一變更規則:Codex 處理一件事的表現遠好於處理五件事。「修正 auth 錯誤、新增測試、重構使用者儲存庫、更新 README」就像擲硬幣。將同樣的工作分拆成四個提示詞則很可靠。
- 對於任何非瑣碎的事,先要求一個計畫:「先產生一個計畫,在我核准之前不要寫程式碼。」花三十秒審查一個計畫,勝過花三十分鐘除錯一個錯誤的實作。
- 明確指定失敗時的行為。如果不指定,Codex 會不擇手段讓測試通過:
1如果測試失敗,請勿偽造結果。改為輸出完整的測試輸出與你認為失敗原因的假設。
明確限制情境。指定要讀取的特定檔案。「不要讀取或修改其他任何檔案。如果你需要其他地方的資訊,問我。」
推理努力級別:
- 低:瑣碎編輯、格式化、簡單重構
- 中(預設):大多數功能開發與錯誤修正
- 高:架構決策、困難除錯、大型多檔案重構
目標模式
當單一任務提示詞感覺自然之後,下一個層次是給予 Codex 一個跨多天的目標,讓它自行排序工作。
目標模式適用於太大而無法逐項簡報、但足夠連貫以單一目標處理的工作。它在 2026 年 5 月變得穩定。
使用以下指令管理正在進行的目標:
codex goal status:查看進行中的目標及其進度codex goal logs <id>:檢查 Codex 到目前為止做了什麼codex goal pause <id>:暫停執行並等待你的輸入codex goal resume <id>:從暫停處繼續codex goal cancel <id>:停止並丟棄該目標
從有範圍限制的目標開始。「最多 5 個 PR」直到你信任 Codex 如何解讀你的目標。一個失控的目標自信地做著錯誤的事情是最糟的結果。
始終使用以下條件進行約束:最大 PR 數量、每個 PR 的最大程式碼行數、PR 之間的 CI 門檻,以及明確的停止條件。遇到 AGENTS.md 中未涵蓋的任何架構決策時暫停。遇到任何破壞性 API 變更時暫停。
Skills:可重複使用的工作流程
目標模式處理大型計畫。Skills 則處理每個專案中都會出現的重複性微工作流程。如果你發現自己在多次工作階段中重複相同的指示,那就是你應該撰寫一個 Skill 的信號。
一個 Skill 是一個以目錄形式包裝的可重複使用工作流程:一個 SKILL.md 檔案中的指示,加上可選的資源與腳本。
Codex 會根據名稱與描述來發現 Skills。只有在任務觸發該 Skill 時才會載入完整的指示。你可以有 50 個 Skill,在被觸發之前完全不耗費情境成本。
Skills 存放的位置:
- 個人:
$HOME/.agents/skills/:跨專案,反映你無論在哪個儲存庫中的工作方式 - 團隊:儲存庫內的
.agents/skills/:專案特定、受版本控制、可與協作者共用
SKILL.md 格式:
1# 技能名稱23**描述**:一行說明技能的作用。45**觸發條件**:何時 Codex 應使用此技能(檔案模式、任務關鍵字等)。67## 步驟81. 第一步92. 第二步10 - 子步驟113. 第三步1213## 資源14- 技能目錄中提供的情境檔案15- 任何需要的腳本(在技能目錄中以相對路徑引用)1617## 限制18- 技能不可修改的事項19- 技能完成時應產生的輸出
每個進階使用者應先撰寫的三個 Skill:
open-pr是標準的 PR 工作流程:檢查分支、推送、建立帶有結構化內容的 PR、套用標籤並請求審查。這是日常工作中最常用的單一 Skill。new-feature讀取 PRD 與AGENTS.md,識別可重複使用的現有元件,輸出計畫,等待核准,實作,測試,並透過open-prSkill 開啟 PR。如果 PRD 中有任何不明確之處,它會在產生程式碼之前先詢問。investigate是「診斷但不修復」的 Skill。它確認可重現性、讀取相關程式碼路徑、形成假設(「我認為 X 發生是因為 Y」),並輸出假設與驗證計畫(Markdown 格式)。它不會實作修復。輸出的是理解,而非程式碼。
investigate Skill 很重要,因為如果你允許的話,Codex 每次都會跳過根本原因分析。它會直接跳到修復,而那個修復往往會是錯的。強制要求「先調查」是改善除錯輸出品質的最大單一改進。
驗證你的 Skills 是否已載入:codex 然後輸入「列出可用的 skills」。
子 Agent 與平行處理
Skills 處理你可重複的工作流程。子 Agent 則處理你的平行工作。這個區別很重要,因為錯誤的平行處理會製造比解決更多的問題。
一個子 Agent 是一個獨立、隔離的 Agent 實例。它在其自己的情境中執行,回傳摘要,然後其情境被丟棄。這與在主 Agent 情境中執行的 Skill 不同。
子 Agent 是正確工具的三種模式:
- 探索:產生一個子 Agent 來讀取 30 個檔案並總結;讀取發生在它的情境中,而不是你的
- 平行實作:五個獨立功能作為五個並發的子 Agent,各自擁有自己的情境與計畫
- 驗證:一個全新的審查者子 Agent 不會因為剛剛寫了程式碼而產生偏見
自訂子 Agent 在 .codex/agents/<name>.md 中定義:
1# 審查者23你是一個專門審查程式碼變更的子 Agent。你的職責是:4- 檢查 diff 中是否有邏輯錯誤5- 檢查是否符合 AGENTS.md 規範6- 確認測試涵蓋率是否足夠7- 如果一切良好,回傳「核准」;否則說明問題
- 子 Agent 定址功能於 2026 年 3 月推出。使用
@<nickname>來與正在運行的子 Agent 對話。 - 當多個子 Agent 平行執行,而你想重導某一個而不打擾其他時,此功能很有用。
- 分散模式:在獨立任務上平行產生 N 個子 Agent,並將結果折回。
- 五個任務以最慢的那個任務所花時間完成。經驗法則:如果一個任務在主情境中執行少於 30 秒,就直接在那裡做。
桌面應用程式:無所不能的 Codex
子 Agent 與 Skills 同樣可以在 CLI、IDE 擴充套件與桌面應用程式中執行。但桌面應用程式是那些沒有 CLI 等效功能的地方。
2026 年 4 月 16 日的「Codex(幾乎)無所不能」更新將桌面應用程式從一個程式碼工具轉變為完整的開發者工作站。
電腦使用
Codex 操作你的 Mac:點擊、打字、滾動、開啟應用程式、導覽選單,並且在你旁邊執行而不會搶走游標焦點。
- 殺手級應用是行為驗證。單元測試通過但 UI 仍然壞掉。
- 電腦使用填補了這個差距,讓 Codex 可以開啟開發伺服器、點擊相關流程並截取結果畫面。
- 啟動方式:前往 Codex 設定、電腦使用、安裝。當 macOS 提示時,授予螢幕錄製與輔助使用權限。從任何提示詞中呼叫:
1開啟本機開發伺服器,導覽至設定頁面,並截取畫面以驗證新主題是否正確套用。
鎖定電腦使用讓 Codex 在你的螢幕鎖定後仍能繼續操作桌面應用程式。在設定的「電腦使用」下啟用。睡覺前啟動一個任務,鎖定機器,早上審查結果。
Appshot
按下 Command-Command 組合鍵,最前端的 macOS 視窗會直接進入你的 Codex 對話串。
Codex 會擷取螢幕截圖、可見文字與輔助使用文字;通常也包括螢幕外的內容。
- 沒有 Appshot:看到錯誤 → 切換到 Codex → 打字提問 → 擷取螢幕截圖 → 拖入 → 輸入更多情境。半分鐘的摩擦。
- 有 Appshot:看到錯誤 → 按下 Command-Command → 提問。五秒鐘。
如果你在過去 60 秒內與 Codex 對話串互動過,Appshot 會進入該對話。
否則它會開啟一個新對話串。同一個工作階段中的多個 Appshot 會堆疊到同一個對話串中。需要螢幕錄製與輔助使用權限。
內建瀏覽器
內建瀏覽器是一個原生的代理式瀏覽器,不是頁面預覽。它開啟你的本機開發伺服器、點擊、填寫表單、檢查 DOM 狀態、擷取螢幕截圖,並驗證剛剛寫的修補程式是否修復了視覺錯誤。
- 在內建瀏覽器中開啟一個本機開發伺服器,然後直接在渲染的元素上新增自然語言註解。
- 在元素上寫「將這個按鈕增高 20 像素」,Codex 就會在你的程式碼庫中執行變更並重新載入頁面。
- 內建瀏覽器提供直接的 DOM 存取,無須管理視窗,並與你的真實瀏覽器隔離。
記憶
記憶讓 Codex 能夠跨工作階段保留情境。
- 每個工作階段結束後,Codex 會總結互動並寫入
~/.codex/memories/。 - 在下一個工作階段開始時,它會在載入你的提示詞之前先讀取這些檔案。
- Codex 會學習你偏好的提交訊息格式、測試框架、架構模式以及上次犯的錯誤;你無需重複任何這些情境。
- 在設定中啟用,或在
config.toml的[features]下新增memories = true。
90 多種外掛生態系
外掛是 Skills、MCP 與整合的策展捆綁包。使用 codex plugins install <name> 安裝。
主要外掛類別:
- 專案管理:Linear、JIRA、GitHub
- CI/CD:CircleCI、Vercel、GitHub Actions
- 資料庫:Neon、Postgres、PlanetScale
- 程式碼品質:Sentry、CodeRabbit
- 生產力:Notion、Remotion
只安裝你每天使用的工具。盡可能在專案層級設定範圍。每季審核一次。每個外掛不管你有沒有使用都會耗費情境 token。
Codex Cloud:大規模非同步工作
桌面應用程式驅動你的本機與互動式工作。Cloud 則是在工作太大而無法在單一互動工作階段中完成,或者你想要多個任務平行執行而你專注於其他事情時使用的功能。
Codex Cloud 是將 Codex 從一個快速的程式碼助手轉變為一個可以水平擴展的初級工程師團隊的功能。
提交一個任務,Codex 就會啟動一個預載你儲存庫的沙盒、執行工作、執行測試並開啟一個 PR。不會阻塞你的本機機器。
提交單一任務:
1codex cloud submit "實作密碼重設功能" --model gpt-5.3-codex
平行任務;核心模式:
1codex cloud submit "新增使用者設定 API 端點"2codex cloud submit "建立設定 UI 頁面"3codex cloud submit "新增設定頁面的端到端測試"4codex cloud submit "更新 API 文件"
二十分鐘後,四個 PR 都已開啟。審查、分類、合併。
CSV 分散可讓你提交一個任務檔案,Codex 會將它們分散成並行的雲端 Agent,並附帶進度追蹤:
1codex cloud submit --from-csv tasks.csv
codex cloud 瀏覽進行中與已完成的任務。codex cloud apply <task-id> 在合併前將變更拉取到本機。
GitHub 整合
雲端任務會以 PR 的形式進入你的儲存庫。GitHub 整合決定了這些 PR 如何被審查,以及 Codex 如何融入你現有的 CI/CD 管線。
Codex 與 GitHub 在三個層級整合:儲存庫環境、Pull Request 審查,以及用於 CI/CD 的 codex-action。
儲存庫環境是基礎。在 Codex 設定中連結一個 GitHub 儲存庫後,雲端任務會複製該儲存庫、在沙盒容器中執行任務,並將結果推送為分支或 PR。每個雲端任務都會自動讀取 AGENTS.md。
Pull Request 審查有兩種方式:
- 在任何 PR 評論中提及
@codex review。Codex 會以一個眼睛表情符號回應確認收到,然後發布一個結構化的審查,重點放在根據你的AGENTS.md檢查的嚴重問題上。 - 開啟自動審查,讓 Codex 在每個新 PR 上自動發布審查,無需手動觸發。
Codex 發布審查後,直接在 PR 評論串中要求它修復標記的問題。它會將修復提交到同一個分支並更新 PR。
codex-action 是一個官方的 GitHub Action,可在你的 CI/CD 管線中於任何觸發條件下執行 Codex CLI:推送、排程、問題建立或 PR 開啟。這是將 Codex 整合到完全自動化、無人類在場的管線中的推薦方式。
自動化:無人值守的工作
GitHub 整合處理人類開啟 PR 時發生的事。自動化則處理完全不需要人類介入時發生的事。
自動化是在專用工作樹中執行的排程 Codex 任務。從「自動化」面板設定:名稱、專案、提示詞、排程與執行環境。
對話串重複使用功能於 2026 年 4 月推出。自動化可以在多次執行中重複使用同一個對話串,隨著時間累積情境並變得越來越聰明。
每個專案都應該擁有的三個入門自動化:
- 每週依賴項檢查(週一早上 6 點):執行
pnpm outdated與pnpm audit。回報重大、主要與次要發現結果。自動 PR 安全的次要與修補程式升級。不要碰重大或主要更新;那些需要人類決策。 - 每日 Sentry 分類(工作日早上 8 點):擷取過去 24 小時內按指紋分組的錯誤。對於每個出現 3 次或以上的分組,識別檔案與行號,讀取相關程式碼,並找出根本原因。發布分類報告。僅診斷,不修復。
- 每週過時 PR 清理(週五下午 5 點):列出超過 7 天仍未處理的開啟 PR。對於每個 PR,判斷它是正在等待你、等待審查,還是已經過時,然後發布一個提醒評論。不要關閉或合併任何東西。
終止任何沒人再看其輸出的自動化。一個好的自動化省下一個你無論如何一定會做的重複性任務,產生單一可掃描的輸出,並且不會在無人監看時採取破壞性行動。
MCP 整合
自動化處理你儲存庫內的事。MCP 伺服器則將 Codex 擴展到處理儲存庫之外的一切。
MCP(模型情境協定)是外掛背後的開放規範。有外掛時使用外掛。對於自訂整合到內部工具時使用原始 MCP。
- STDIO:Codex 產生一個本機程序並透過 stdin/stdout 通訊。涵蓋 95% 的個人使用案例。
- 可串流 HTTP:Codex 連接一個網路端點。用於託管的團隊 MCP。
新增一個原始 MCP 伺服器:
1在 ~/.codex/config.toml 中新增一個 MCP 伺服器,指向內部 API 文件伺服器。2名稱為 "docs-server",指令為 "node",參數為 ["path/to/server.js"]。
或者直接在 ~/.codex/config.toml 中:
1[mcp_servers.docs-server]2command = "node"3args = ["path/to/server.js"]
好的,這是您要求的繁體中文翻譯版本:
Configure per-tool approvals: auto-approve reads, ask before writes. Every MCP server adds tool definitions to Codex's context, costing tokens and diluting attention. Only enable what you actually use.
設定各工具的核准權限:讀取操作自動通過,寫入操作需先確認。每個 MCP 伺服器都會將工具定義加入 Codex 的上下文,這會消耗 Token 並分散注意力。只啟用你實際會用到的工具。
Docker MCP Toolkit connects Codex to 220-plus pre-built servers with one command: docker mcp-client configure codex
Docker MCP Toolkit 只需一個指令就能將 Codex 連接到 220 多個預建伺服器:docker mcp-client configure codex
行動應用程式 (Mobile App)
MCP 伺服器擴展了 Codex 能觸及的範圍。而行動應用程式則擴展了你使用 Codex 的場景。
2026 年 5 月 14 日,Codex 登陸了 iOS 和 Android 平台上的 ChatGPT 行動應用程式。
行動版 Codex 是一個遠端控制和監控介面,而非程式碼編輯器。其典型使用情境是:當你離開辦公桌時,可以透過手機檢查正在雲端執行的長時間任務或目標模式 (Goal mode) 的運行狀況。
透過手機,你可以:
- 監看筆電、開發容器 (devboxes) 或已連接的遠端環境上的即時運行記錄
- 瀏覽執行緒,並在不同執行緒的平行任務之間切換
- 在變更合併到分支之前,檢視差異 (diffs)
- 核准或拒絕 Codex 想要在你的硬體上執行的指令
- 在任務進行中切換模型(若需要更強大的模型)
- 從全新的提示或直接從 GitHub Issue 啟動新任務
- 在 Codex 開啟的 Pull Request 上發表評論
設定方式:將 ChatGPT 更新至 2026 年 5 月 13 日或更新的版本,使用與桌面版相同的帳號登入,並確認已在「設定」→「Codex」→「環境 (Environments)」中配置了至少一個雲端環境。行動版會自動繼承所有現有的執行緒和已連接的主機。
這種模式實際上的運作流程是:早上出門前啟動一個目標模式任務,通勤時用手機檢查進度,核准一個暫停的決策,然後走進辦公室時,前兩個 Pull Request 已經開好了。
Chrome 擴充功能
行動應用程式擴展了你的觸及範圍。Chrome 擴充功能則將 Codex 的觸角延伸到任何你已登入的網站。
- 這意味著它可以存取需要認證的服務:LinkedIn、Salesforce、Gmail、Workday,以及任何需要登入的內部工具。
- 安裝方式:前往 Codex 桌面應用程式內的「外掛程式 (Plugins)」,加入 Chrome 外掛,然後按照引導設定即可。
- 啟用時,擴充功能會顯示「已連線 (Connected)」狀態。你可以從任何 Codex 執行緒中呼叫它:
Codex 可以透過子 Agent 在不同執行緒中控制多個 Chrome 分頁,每個分頁彼此隔離。
相對於無頭瀏覽器自動化 (headless browser automation),Chrome 擴充功能的一大優勢是:它可以存取網頁開發者工具。Codex 可以在即時瀏覽器工作階段中檢查 DOM、讀取主控台錯誤、診斷執行階段的問題。適用於 macOS 和 Windows 系統。
Codex SDK
Chrome 擴充功能處理的是瀏覽器自動化。而 SDK 處理的是程式化自動化;也就是將 Codex 作為基礎架構嵌入到你自己的應用程式和處理流程中。
Codex SDK 讓開發者能夠從自己的應用程式和 CI 流程中,以程式化方式控制 Codex。
安裝 JavaScript SDK:
基本用法:
- 在同一個執行緒上再次呼叫
run()以繼續對話。使用codex.resumeThread(threadId)恢復已儲存的執行緒。 - Python SDK 使用
from codex_app_server import Codex。啟動時傳入模型名稱:thread = codex.thread_start(model="gpt-5.5")。 - 目前 SDK 仍處於實驗階段,需要在本機安裝 Codex CLI。
- 它透過 JSON-RPC 與本機的應用伺服器 (app-server) 通訊;它能控制你在桌面應用程式中互動的那個 Agent。
驗證:如何真正信任 Codex 的產出
上述所有功能都會產生輸出。驗證則是決定你能夠實際交付其中多少輸出的關鍵。
「生成」這個問題已經解決了。現在「驗證」才是瓶頸。
五個平行的雲端 Pull Request,代表著有五次機會讓 Bug 出貨。如果沒有驗證層,你的生產力上限就取決於你閱讀 PR 的速度。
核心問題在於「奉承效應 (sycophancy)」。撰寫程式碼的模型會傾向於認為自己的程式碼是正確的。叫它自己審查自己的作品,大多數時候你只會得到一個「讚」。
兩個結構性解決方案:
auto_review(Codex 內部功能):這是 Codex 內建的審查子 Agent。它擁有全新的上下文,對先前輸出的內容沒有任何偏見,因此更有可能指出真正的問題。- 跨提供者驗證(黃金標準):讓 Codex 撰寫程式碼,然後讓 Claude Code 進行審查。跨提供者驗證可以捕捉到特定模型家族的盲點。這是生產級程式碼的最低可行驗證習慣。
電腦使用 (Computer Use) 的行為驗證,補足了「測試通過」到「東西真的能用」之間的差距。讓 Codex 開啟開發伺服器、點擊相關流程、截取結果畫面,然後對照你的 PRD (產品需求文檔) 進行比較。
每個 PR 的最低可行習慣:在你親自檢查差異之前,先用不同的模型執行自動審查。先閱讀審查摘要。只有在審查結果乾淨時才打開差異檔;然後只檢查程式碼品味,而不是正確性。對於 UI 變更,請查看截圖。
秘訣:經過實戰考驗的模式
有了驗證習慣,以下是開發者最常透過 Codex 執行的任務的端到端範本。
- 實作功能:使用
new-feature技能。閱讀 PRD 和AGENTS.md。先規劃,等待核准。為主路徑和一個錯誤情況撰寫測試。如果任何事項不明確,在產生程式碼前先提問。 - 修復 Bug:先使用
investigate技能。只進行診斷。輸出重現步驟、根本原因假設和驗證計畫。在確認之前不要修復。 - 重構:使用
grep列出所有受影響的位置。輸出遷移計畫。等待核准。所有現有測試必須通過且不需修改。如果某個測試需要更新,代表測試本身有問題;請停止並回報。一個 PR 完成。 - 第三方整合:包裝在
/lib/integrations/[name].ts中。將環境變數加入.env.example。此 PR 不包含 UI。以草稿模式開啟,以便對外部服務進行手動測試。 - 補寫測試:輸出涵蓋快樂路徑、邊界情況和錯誤情況的測試計畫。等待核准。所有測試必須能通過現有生產環境的程式碼。請勿修改生產環境的程式碼。
- 升級相依套件:閱讀版本間的 Release Notes。列出重大變更。等待核准。更新並套用程式碼變更。持續執行測試直到全部通過。
- 目標模式專案:設定最大 PR 數量、每個 PR 的最大程式碼行數、PR 之間的 CI 閘門,以及明確的停止條件。當遇到
AGENTS.md中未定義的架構決策時,應暫停。遇到任何破壞 API 相容性的變更時,應暫停。
常見錯誤
上述模式涵蓋了常見的成功案例。下面這個章節則涵蓋了常見的失敗案例;導致大多數糟糕 Codex 體驗的十個錯誤。
- 任務含糊不清。指明具體的成果、檔案和限制條件。如果你無法具體說明,代表這個任務還不適合交辦。
- 沒有
AGENTS.md。寫一份。即使寫得不好,也比完全沒有強。 - 跳過規劃步驟。對於任何非簡單的任務,都應先要求「產生一份計畫」。
- 多任務提示。一個提示只處理一個任務。使用子 Agent 或雲端任務來處理平行工作。
- 從危險的完全存取權限開始。除了經過測試的自動化任務外,
workspace-write搭配on-request模式應該是所有情況的預設值。 - 使用太多 MCP 和外掛。保持清單精簡。停用你沒有在積極使用的項目。
- 自我審查。使用
auto_review或完全不同的工具。撰寫程式碼的模型對自己的產物有偏見。 - 認為編譯成功就代表正確。包含行為驗證。對於 UI 變更,請使用電腦使用 (Computer Use) 功能。
- 過度平行化。只將真正獨立的工作平行化。共用檔案的操作必須序列化處理。
- 無邊界的目標模式任務。設定最大 PR 數量、最大程式碼行數、最長時間限制和明確的停止條件。當你為目標模式加上你對待初級工程師的那種限制時,它才是最實用的。
快速參考:小抄 (Cheat Sheet)
CLI 指令:
關鍵檔案位置:
- 全域設定:
~/.codex/config.toml - 全域 AGENTS.md:
~/.codex/AGENTS.md - 專案 AGENTS.md:
<repo-root>/AGENTS.md - 覆寫檔案:
AGENTS.override.md - 記憶庫:
~/.codex/memories/ - 技能(個人):
$HOME/.agents/skills/ - 技能(團隊):專案中的
.agents/skills/目錄 - 子 Agent:
.codex/agents/<name>.md
四大結構化提示:
- 告知:說明預期成果,而非實作方法
- 展示:提供範例輸入和預期輸出
- 描述:說明要使用的 API、函式庫和模式
- 提醒:提醒
AGENTS.md中的慣例
結論
在使用 Claude 12 個月後,讓我決定轉換的臨界點並非某一天的糟糕體驗。而是速率限制 (rate limits)、工作流程摩擦,以及不斷造成困擾的桌面應用程式體驗,這些問題長久以來的累積。
正是這種挫折感促成了轉向 Codex 的決定。
- 在過去 90 天裡,深入使用 OpenAI 生態系統讓一件事變得明確:對於嚴肅的開發者工作流程而言,Codex 作為一個工作環境感覺更加完整。
- 它的 Agentic 模型更強大,周邊的應用程式介面更廣泛,而且一旦將
AGENTS.md、技能、雲端功能和驗證迴圈整合進來,這個系統就更容易被信任。 - 這並不表示 Claude Code 沒有價值。這只代表其間的權衡取捨不再合理。
如果 Claude Code 仍然適合你的工作流程,請繼續使用它。但如果你已經厭倦了速率限制、脆弱的連線,以及那些感覺像是在對抗你的工作流程的工具,那麼 Codex 現在已經足夠好到讓你認真考慮轉換了。
這篇文章的撰寫目的,就是為了讓這個轉換過程更容易一些。
希望你喜歡這篇文章,並開始動手建構 ❤️
免責聲明
本文由作者根據其筆記、研究和個人經驗撰寫,並由 AI 模型 (Sonnet 4.6) 編輯。
縮圖來自 Pinterest,並使用 AI 修改。





