Hub Codex CLI 完整教學

第 5 篇 大師 · 第 14 章

多代理、平行工作流與自動化管線

這章不教你開最多分身,而是教你何時值得開

Codex 已經能在 desktop app、CLI 與 IDE 跑 subagent 工作流;真正難的不是「叫出 agent」,而是把工作拆成互不踩線、能驗收、失敗知道停在哪裡的任務。本章聚焦多代理、context、worktree、審查與成本。codex exec 自動化請回第 10 章,團隊與 CI/CD 請看第 11 章,Skills 與自訂工作流則在第 12 章

資料查證日:2026-07-26;本機對照 Codex CLI 0.145.0。功能仍可能演進,所以正文優先教耐久的決策與驗收方式,不把內部事件名當成你必背的指令。

先給結論:高手不是常態開 swarm;高手是知道哪些未知數適合平行查、哪些決策必須留在同一條主線,以及什麼時候該把 writer 搬進獨立 worktree。

本章怎麼標證據

官方 是產品文件、release 或明確官方狀態;達人 是具名作者的第一手做法;社群 是公開 repo/issue 的第三方證據;實作快照/預覽 代表可能漂移。徽章標的是證據類型,不是成效分數;作者自陳的速度、PR 數、token 倍率與 GitHub stars 都不會被當成客觀證明。

14.1 為什麼 Claude subagent 愛用者可能覺得 Claude 比較順?

這種感受不奇怪,而且可以用產品設計解釋,不必急著化約成「哪個模型比較強」。Claude Code 把兩種心智模型直接拆開:具名 subagent 預設從 fresh context 開始;/subtask 則 fork 既有對話。CLI 另有 --worktree,custom agent 也能選配 isolation: worktreeClaude 官方 對已習慣 CLAUDE.md、Markdown agent 定義與 /agents 管理的人,整條路徑可能更像同一套文法。使用感推論

Codex 現在也有內建 explorerworker、自訂 TOML agents、context fork、/agent thread 檢視、App managed worktree/Handoff 與 CLI /reviewCodex 官方 「Claude 比較順」可能與 discoverability、肌肉記憶、agent 定義的組織方式及 CLI worktree 摩擦有關;目前沒有公平 benchmark 能把這種感受升格成速度、品質或成本優勢。 比較推論

使用感受來源Claude CodeCodex 現行對應公平判讀
fresh/fork named subagent 與 /subtask 明確分開 現行 V2 實作以 fork_turns=none|all|N 控制 兩邊都能控制帶入脈絡;UX、payload、cache 與穩定 contract 不同
CLI worktree --worktree、custom agent 可選配 per-agent isolation App 有 managed worktree;CLI 用原生 Git terminal 重度使用者在 Claude 的步驟較短
agent 管理 Markdown 定義、/agents;Agent View 是完整 background sessions 的 research preview TOML config layer、/agent、App/IDE thread UI Agent definition、subagent task 與完整 background session 是不同層;Markdown 與 TOML/config layer 的組織方式也不同
團隊感 experimental Agent Teams 有 shared task list/peer messaging parent-mediated fan-out;現行 repo 快照有子線訊息與巢狀 spawn 實作快照 沒有已文件化的一對一共享 task-list UI

別把 Claude Agent Teams 跟一般 subagent 混在一起比

Agent Teams 是 experimental product surface,而且 Anthropic 也警告同檔寫入可能互相覆蓋、活躍成員會增加 token;Symphony 則是不同產品層級的 preview/開源 orchestration 參考實作。兩者成熟度與定位不同,都不能當一般本機 subagent 的一對一替代。比較時要對齊「本機 subagent 對本機 subagent」、「managed review 對 managed review」。不同層級的預覽能力

14.2 Codex 現在到底有什麼?先畫清楚邊界

現行 Codex releases 預設啟用 subagent workflows。你可以直接要求委派,也可以讓適用的 AGENTS.md 或 Skill 指示觸發;CLI 用 /agent 查看、切換 agent threads,主線最後收集與整合結果。每條子線會做自己的 model 與 tool work,所以 token 通常高於可比的單 agent run。官方

能力現行狀態它隔離什麼它不保證什麼
Subagent thread App/CLI/IDE 預設可用 對話線、探索噪音、工作責任 不等於獨立 cwd、branch、port 或 DB
Custom agent 個人或專案 TOML instructions、model/effort、sandbox、MCP、Skills 等設定 未設定的 session config 仍依 precedence 繼承
App Worktree desktop app 的 managed checkout 獨立 working tree/checkout;預設 detached HEAD,可 Handoff 或另走 Git 流程整合 外部 service、port、credential、Git object database 仍可能共享
CLI /review CLI 的 dedicated reviewer 審查責任;不改 working tree App/IDE 的預設 chat 行為不同;都不取代 tests、runtime proof 或人類判斷

最重要的一句:agent thread 是 context/責任分線;worktree 才是 checkout 分線。目前公開的本機 V2 實作顯示 agents 共用 container、filesystem 與 cwd,一條線的修改會立刻被其他線看到。這也是為什麼官方建議從 read-heavy 工作 fan-out,對 write-heavy 並行更保守。公開文件 官方 repo 實作快照

本章採用的安全預設

研究、QA、文件查證可多線唯讀;主代理唯一寫入。如果真的要多 writer,就替每位 owner 同時配一套專屬 worktree、專屬 branch 與專屬頂層 session,再由唯一 integrator 序列整合。

14.3 決策框架:fan-out 還是維持單 agent?

別用「任務看起來很大」當 fan-out 的理由。真正的判準是:能否把它拆成互不阻塞、各自有 done criteria、結果能低成本合併的子題。

任務形狀預設選擇原因
小改動、同一批檔、需要一路做產品/架構取捨 單 agent 委派、重建 context、整合與 review 成本通常更高
多個互不依賴的探索、來源、假說、測試群、log、審查面向 平行 explorers/唯讀 agents 任務確實獨立時可能縮短 wall-clock 等待,也把噪音留在子線
未知很多,但最後只需一位 writer 多 explorer → 主線定案 → 單 writer 平行發現、序列決策,最少衝突
多個實作互不碰檔,interface 與驗收已凍結 專屬 worktrees 中平行 workers 每位 writer 都要有專屬 worktree、專屬 branch 與專屬頂層 session
多個 writer 會碰共享檔、generated state 或 dev server 專屬 worktree+branch+頂層 session 除了檔案,還要分 port、env、DB 與 server ownership
子任務有前後依賴 先畫 DAG,只派已解除阻塞的節點 尚未定義的上游 interface 會讓下游平行變成返工
模糊、判斷密集、需要頻繁問你 單一互動式主 agent 讓需求與取捨沿同一脈絡演進

OpenAI 的 Subagents 文件把 exploration、tests、triage、summarization、log analysis 列為平行起點,並警告 write-heavy workflow 的衝突與 coordination overhead。Symphony 團隊也明說,模糊、需要高度判斷的工作仍適合直接交給一條互動式 Codex。官方

Simon Willison 的實務則更像一句檢查碼:平行研究,序列整合。他的 scout 可以只交「相關檔案、限制、可能方案」,不期待 patch;真正的大改仍受限於人類一次能認真驗幾份 diff。Simon Willison,2025-10-05

30 秒 fan-out 檢查

  1. 至少有兩個子題能同時開始嗎?
  2. 每條線能寫出自己的「完成定義」嗎?
  3. 其中一條失敗時,其他線的結果仍有價值嗎?
  4. 它們不會同時改同一個 write set/shared state 嗎?
  5. 主代理能用摘要與證據整合,不必重讀每條完整 log 嗎?

五題只要有兩題答「不確定」,先維持單 agent,或先派一條 explorer 把未知數降下來。這是實務決策法,不是官方效能公式。綜合推論

14.4 用對角色:explorer、worker、default 與 custom agents

角色官方定位你該怎麼 brief常見誤用
explorer read-heavy codebase exploration 問題、只讀範圍、file:line 證據、未知項 把 read-heavy 誤當成硬唯讀 sandbox
worker implementation/fixes 唯一 ownership、interface、non-goals、proof command 讓多位 worker 共改 shared file
default general-purpose fallback 範圍明確但不適合前兩者的任務 所有事情都塞給 default,失去角色價值
custom agent 完整 session config layer 窄、鮮明、工具面與責任一致 寫成冗長 persona,卻沒寫交付與停止條件

官方把 explorer 稱為 read-heavy,不是「權限上一定不能寫」。若你真的要機械式唯讀,委派前先把 parent turn 的 permission mode 選成唯讀,custom agent 也設 sandbox_mode = "read-only";parent 的 live runtime override 會在 spawn 時重新套用,所以不要只看 TOML 就假設有效。官方

Context:Claude 的 fresh,不等於 Codex 的預設

Codex 公開產品文件保證子代理在自己的 thread 工作、主線收摘要;2026-07-26 的官方 repo V2 實作另顯示 fork_turns 可為 noneall 或正整數 N,省略時是 all。目前 fork 也不是複製全部內部內容:tool calls、tool results、hidden reasoning 與 agent 間訊息會被過濾。官方 repo 實作快照

fork_turns目前語意適合
"none"不繼承 parent 對話歷史;仍有 task message、system/developer instructions 與 custom role自足 brief、避免搬入歷史噪音
"all"帶過濾後的完整周邊對話;目前省略預設任務真的依賴整段決策歷史
"N"只取最近 N turns需要近期脈絡,但不想搬完整歷史

fork_turns 不是要你直接當 CLI 旗標背

這是現行 orchestration tool schema 的實作細節,可能隨 rollout 演進。一般互動使用者仍可用自然語言委派;若 caller/工具明確暴露此欄位,再依當下 schema 使用。full-history 與 role/model override 的組合在固定 commit 與當前 tool contract 間並不完全一致;需要自訂角色或模型時,先寫自足 brief、核對當前 schema,執行後再用 /agent 確認實際 role/model/status。

14.5 自訂 agent:用 TOML 鎖角色,不靠長篇人格扮演

個人 agent 放 ~/.codex/agents/;專案共享 agent 放 .codex/agents/。standalone 檔案公開必填只有 namedescriptiondeveloper_instructions,並可覆寫一般 session config,例如 model、reasoning、sandbox、MCP 與 Skills。官方

這是一個以唯讀為預設、只交證據的專案 explorer(委派前仍要確認 parent turn permission):

TOML · .codex/agents/evidence-explorer.toml
name = "evidence_explorer"
description = "Read-only explorer that traces code and returns file:line evidence."
sandbox_mode = "read-only"
model_reasoning_effort = "medium"

developer_instructions = """
Stay read-only. Never modify, create, rename, or delete files.
Answer only the assigned question.
Trace the real execution path and cite file:line evidence.
Separate confirmed facts, inferences, and unknowns.
Return concise findings; do not propose a patch unless asked.
"""

全域多代理設定則放在一般 config 的 [agents] 段:

TOML · config.toml
[agents]
enabled = true

# 教學示例值,不是官方預設:
max_concurrent_threads_per_session = 3
default_subagent_reasoning_effort = "medium"
interrupt_message = true

agents.enabled 預設為 true;未設定併發上限時,由 Codex 選擇預設。舊 agents.max_threads 只是 legacy alias。Config basics 也仍列出 Stable、預設 true 的 [features].multi_agent;兩者都是公開設定,本章不武斷推測它們的內部組合語意。官方

custom agent 可提供 model/effort;未設定值會依當前 config/spawn precedence 解析。由於 full-history fork 與 override 行為仍可能受 surface/rollout 影響,寫 automation 前要核對當下 schema 與子線 status,不把單一固定 commit 的 precedence 寫成永久 contract。rollout-sensitive 實作

幾個舊欄位,現在別再照抄

nickname_candidates 不在公開 standalone agent schema。官方文件 agents.max_depth 是 V1 設定,V2 會忽略。官方 repo 實作快照 agents.job_max_runtime_seconds 隨 CSV jobs 移除後只剩 no-op 相容解析。官方移除 commit 這些都已從本章操作範例撤下。

14.6 一份好 brief 要寫什麼?Goal 不夠,還要有交付合約

官方 Subagents 文件要求說清楚:工作怎麼分、主代理要不要等、子線要回什麼;Best practices 再補 Goal、Context、Constraints、Done when。具名實務者的公開 workflow 則反覆出現 ownership、non-goals、proof command 與 blocked escape hatch。官方 具名第一手實踐

九格 brief 合約

  1. 角色/任務:explorer、worker 還是 reviewer?
  2. 目標:只寫一個可驗收結果。
  3. 輸入與 source of truth:issue、spec、檔案、branch。
  4. 允許讀取範圍:避免全 repo 漫遊。
  5. 唯一 ownership:精確到檔案/module/worktree。
  6. Constraints/non-goals:介面、不變條件、明確不做什麼。
  7. 完成證據:file:line、URL、command、exit code、rendered evidence。
  8. 交付格式:摘要、檔案、風險、未驗證項。
  9. 阻塞合約:何時停、向誰回報,禁止怎麼繞過 gate。

Prompt A:三條唯讀研究線,主代理唯一寫入

使用 3 個唯讀 subagents 並行研究以下互不重疊的問題:
1. 〈研究題 A〉
2. 〈研究題 B〉
3. 〈研究題 C〉

共通規則:
- 子代理不得修改、建立或刪除任何檔案。
- 每條線只處理自己的題目,不重做其他線。
- 只採〈允許的來源種類〉。
- 回傳:結論、file:line 或 URL 證據、日期、未驗證項、排除項。
- 主代理等三條全部完成再綜合。
- 只有主代理可修改〈精確檔案清單〉。
- 完成後跑〈checks〉,再對整體 diff 做唯讀 review。

Prompt B:唯讀 explorer

你是唯讀 explorer。不要修改、建立或刪除任何檔案。

目標:
回答〈具體問題〉。

只讀範圍:
〈repo/目錄/檔案〉

必須交付:
1. 涉及的檔案與行號
2. 現行行為與限制
3. 2–3 個可行方案及取捨
4. 風險、未知與需要主代理決定之處
5. 建議的最小驗證命令

找不到證據時標記 UNVERIFIED,不要猜。

Prompt C:有 ownership 的 worker

目標:
〈單一、可驗收的結果〉

唯一 source of truth:
〈spec/issue/plan 路徑〉

你的 ownership:
只可修改〈精確檔案〉。
若有其他並行 writer,你必須在〈專屬 worktree〉的〈專屬 branch〉
另開〈專屬頂層 session〉;缺任何一項就不要平行寫入。

既有介面/不變條件:
〈API、schema、design token、相依輸出〉

Non-goals:
〈明確列出不做事項〉

完成證據:
執行〈精確命令〉並回報 exit code;UI 改動附 rendered evidence。

阻塞合約:
若 gate 失敗、需要跨出 ownership、共享介面未定或遇到其他 agent 衝突,
立即停止並回報;不可繞過驗證,也不可改別人的檔案。

輸出:
變更摘要、檔案清單、驗證結果、剩餘風險。

Prompt D:只找可行動問題的 reviewer

你是唯讀 reviewer,不要修檔。

審查範圍:
〈branch/diff/commit/spec〉

依序檢查:
1. 是否符合 source of truth 與 scope
2. 正確性、回歸與邊界案例
3. 測試是否真的覆蓋本次行為
4. 是否誤改共享介面或其他 agent 的 ownership
5. 是否有未證明的聲稱

輸出:
MUST_FIX、SHOULD_FIX、NO_ACTION。
每項附檔案/行號、理由與最小重現或驗證方式。
若無可行動發現,明確寫「no actionable findings」。

別把整份聊天歷史當 brief

把穩定規格放進 repo 的 spec/plan/workpad,brief 只指向唯一 source of truth,再補這次的 ownership 與 done criteria。OpenAI Codex 團隊把短 AGENTS 當導覽、細節放版本化文件;Symphony 也把狀態與驗證留在持久 workpad。官方團隊第一手 由這兩個案例可推論,持久 artifact 通常比反覆搬整段聊天更容易恢復與查證。實務推論

14.7 平行寫入的鐵律:不要讓兩個 writer 共用同一 checkout

多代理最常見的概念錯誤,是以為「不同 agent thread」自然等於「不同檔案世界」。在現行本機 Codex,多條 agent 線共用 cwd/filesystem;即使 brief 寫得再客氣,檔案、branch、generated artifacts、dev server 與 port 仍可能撞在一起。官方 repo 實作快照

本站安全預設:一個 checkout,一位 writer

  1. 多條 explorer/reviewer 線保持唯讀。
  2. 主代理彙整證據、凍結 interface 與最小修改方案。
  3. 只讓主代理或一位 worker 寫目前 checkout。
  4. 完成後序列跑 checks、整體 diff review、rendered proof。

這不是保守到不用多代理;它其實把最適合平行的「找未知數」放大,同時把最容易互砸的「整合」保留單一 owner。

真的需要多 writer:專屬 worktree+branch+頂層 session

Codex desktop app 能替 independent chats 建 managed worktrees;預設是 detached HEAD,完成後可 Handoff 回 Local 或另走 Git 流程整合。CLI 目前沒有同等的官方 managed-worktree 旗標;用原生 Git 建 checkout 與 branch,再各開一個獨立頂層 Codex session。官方

Shell · 由人類/主協調者先建立隔離工作區
git worktree add ../myapp-feature-a -b feature/a
git worktree add ../myapp-feature-b -b feature/b
git worktree list

接著在兩個目錄各開一個頂層 session,brief 明寫 branch、owned paths、shared interface 與 proof。不要在一條本機 subagent session 裡假裝 cwd 已自動分裂。

除了檔案,還要分配做法
Dev server/port每個 worktree 固定不同 port,寫進 brief
.env/secrets用 bootstrap script 建立;不要假設 ignored files 會跟過去
DB/queue/cache namespace用不同 local DB、schema 或 namespace
Generated files/lockfile指定唯一 owner;共享生成物序列處理
Interface 變更先凍結 contract,或讓上游先完成再解鎖下游
整合由唯一 integrator 依 DAG 合回,最後重跑完整 gate

Jesse Peplinski 的 Codex App worktree 實務特別強調:worktree 不會取代 build、test、smoke 與 merge check,也不會自動替你分配 port。這是具名作者的個人流程,不是效能保證,但很適合拿來補「Git 只隔離檔案世界」的盲點。Jesse Peplinski,2026-05-18

14.8 高手怎麼用:不是一種流派,而是三種工作形狀

形狀一:Scout → 主線定案 → 單 writer

Simon Willison 把 agent 當 scout:它可以接受難題,找出相關檔案、約束與可行方案,但不預期直接合併它的 code。主線拿到地圖後凍結 spec,再交一位 owner 寫。這個模式特別適合 root cause 不明的 bug、陌生 codebase 與設計選項尚未收斂的重構。Simon Willison

形狀二:Issue DAG → 獨立 workspace → Human Review

OpenAI 的 Symphony 參考實作把 issue tracker 當 control plane,每張 issue 有 deterministic workspace,只派已解除阻塞的 DAG 節點,並記錄 bounded concurrency、retry/backoff、turn/token telemetry 與 human-review 狀態。重點不是範例一次開幾位 agent,而是未解依賴不派、狀態可恢復、驗收是獨立 gate官方團隊第一手 preview spec

形狀三:把 repo 變成 agent 能自己證明的環境

OpenAI Codex 團隊的 Harness engineering 經驗,是讓每個 worktree 都能獨立啟動 app、看 logs/metrics、操作 browser,並把命名、架構與品質規則逐步變成 lint、結構測試與工具。AGENTS 保持成短導覽,詳細規格進版本化文件。官方團隊第一手 這提醒你:增加 agent 數量不會自行補救一個無法測試、無法觀測、規則只存在人口相傳的 repo。 綜合推論

Peter Steinberger 的「同資料夾多 session」只能當歷史快照

他在 2025 年文章描述過同時跑多個 Codex CLI session,甚至共用資料夾;這是早於現行 V2 的個人高風險做法。可學的是用 blast radius 判斷、先寫 spec、設 reviewer 與中途回報;不可照抄的是平行 writer 共用 checkout。他現行 codex-first workflow 對平行 writer 要求各配專屬 worktree 與專屬 branch;另一套 maintainer-orchestrator control-plane workflow 則更嚴格,規定每個 repo 只留一條 mutable Codex thread。這是兩套專用規則,不是 Peter 所有流程的統一預設。Peter Steinberger,歷史/現行實踐

14.9 驗收:子代理說「完成」不等於 PASS

多代理工作流最危險的捷徑,是把每條線的自述拼起來就交付。主代理必須重新建立一條可追溯證據鏈:

  1. Scope check:changed files 是否都在 ownership?有沒有漏做 non-goal 邊界?
  2. Integration check:先看整體 git diff,確認 shared interface 與合併順序。
  3. Mechanical gates:跑最小能證明行為的 tests、lint、format、typecheck、build。
  4. Behavior proof:能啟動就跑 smoke/E2E;UI 改動量 overflow、console、viewport,並留 screenshot/baseline。
  5. Independent review:用唯讀 reviewer 或 CLI /review 找 correctness、regression、security、test gaps。
  6. Human judgment:審查真正的 diff 與風險;不要只看 agent 摘要。

Codex CLI/review 會啟動 dedicated reviewer,可選 base branch、未提交變更、commit 或 custom instructions,回 prioritized actionable findings,而且不改 working tree。App/IDE 的 review chat/Detached 行為要依各自 surface 文件看,不能直接套用這四個 CLI 選項。它們都是一雙獨立眼睛,不是測試 runner,也不是核可權的替代品官方

等所有 workers 結束後:
1. 主代理先檢查整體 git diff 與 ownership。
2. 執行〈tests/lint/typecheck/build/rendered checks〉。
3. 二擇一:另開唯讀 custom reviewer,或在 CLI 執行 /review;
   每項發現必須附 file reference 或重現步驟。
4. 只有高風險變更才做兩層獨立審查,並預先限制修正迴圈。
5. 不得把 worker 自述、測試檔存在或 reviewer 沒回報,單獨視為 PASS。

四值驗證,不要把沒測過塗成綠色

狀態意思該附什麼
PASS已執行且通過命令/工具、exit code、可核對輸出
FAIL已執行且失敗失敗點、影響、下一步
N/A此專案/變更不適用為什麼不適用
UNVERIFIED因環境、權限、缺基線或人工判斷而未能證明缺的證據與如何補驗

Simon Willison 的「交付你已證明能運作的 code」實務,要求 automated tests 之外仍要人工示範;視覺變更要有 screenshot。這不是 Codex 專屬功能,但正好補上 agent 自我宣告最容易漏掉的一段。Simon Willison,2025-12-18

14.10 成本控制:fan-out 是用 token 買平行與乾淨 context

可跨版本保守引用的核心成本事實是:每個 subagent 都有自己的 model/tool work,所以可比情境下會比單 agent 多用 token。官方 目前沒有公開、穩定、可泛化的「N 個 agent 就精確 N 倍」公式;較便宜的單次模型是否因重工、re-review 而提高總成本,也缺同條件對照。研究邊界/推論

可以用這個心智帳本估算,但它不是計費公式:

總成本 ≈ 主線決策
       + Σ(每條子線的 context + reasoning + tool work)
       + 整合重讀
       + 驗證與 reviewer
       + 衝突/錯誤造成的返工

六個真正有用的控制桿

  1. 先限制 agent 數:第一次從 2–3 條獨立唯讀線開始,不追求滿載。
  2. 限制 concurrency:用 max_concurrent_threads_per_session 設上限;這是容量上限,不是目標。
  3. 按風險路由 model/effort:封閉的探索用較快/較省的可用模型與 low/medium;跨檔推理、security、reviewer 才升高。
  4. 縮小帶入 context:能寫自足 brief 就別無意義搬完整 parent 對話歷史;若工具暴露 fork_turns,再依當前 schema 選 none/最近 N turns。
  5. 只回 distilled findings:結論、證據、未知、下一步;不要把 raw logs 全回灌主線。
  6. 限制 review loop:例如最多兩輪;仍有爭議就回主代理/人類裁決,不讓 reviewer ping-pong 無限繁殖。
最多使用 3 個 subagents,只 fan-out 彼此獨立的讀取工作。
探索線使用較快、較省的可用 model 與 medium/low effort;
只有需要跨檔推理的 reviewer 使用 high。

若兩條線會修改同一檔、依賴前一條結論,
或無法定義各自 done criteria,維持單 agent。
每條線只回 distilled findings,不附完整 logs。
reviewer 修正迴圈最多 2 輪;仍有爭議時交回主代理/人類。

第三方公開 workflow 也提醒:小模型若需要更多回合、更多 re-review 或最後仍要強模型重做,總成本不一定較低。這是合理的實務風險,不是官方 benchmark。公開 workflow/issue

14.11 Claude → Codex:最低摩擦的遷移路線

Claude Code 習慣Codex 對應不能硬做一比一的地方
CLAUDE.mdAGENTS.md兩邊載入與作用域細節仍依各自文件
.claude/agents/foo.md.codex/agents/foo.toml兩邊都不只是 persona;先搬 name/description/instructions,再逐項重映射 tools、permissions、hooks、memory、background、MCP 與 isolation
ExploreexplorerCodex 是 read-heavy;硬唯讀需 sandbox
general-purpose implementerworkerdefault依任務是否執行導向選
named fresh subagentcustom agent+fork_turns="none"後者是現行 tool schema,先核當前版本
/subtask full forkfork_turns="all"fork payload 過濾規則不完全相同;正整數 N 是 Codex 額外的 partial-history 模式
/agents 定義管理.codex/agents/*.tomlCodex /agent 只負責 inspect/switch active threads,不是定義管理器
--worktree/可選的 isolation: worktreeCodex App Worktree/Handoff;CLI 原生 git worktreeClaude 可對單一 custom subagent 選配 worktree;Codex App 主要以頂層 chat 為粒度
Agent Teams主代理統籌 subagents;大型編排另研究 Symphony沒有已文件化的同等 shared task-list surface
reviewer/completion workflow唯讀 custom reviewer+checks+CLI /reviewhook、managed review 與本機 review 是不同層

四階段遷移,不要第一天就複製整隊

  1. 階段 1:一主多讀——主代理做所有決策與寫入,只讓 1–3 條 explorer 找證據。
  2. 階段 2:角色化——把反覆出現的 explorer/reviewer brief 寫成 project custom agents,必要時設唯讀 sandbox。
  3. 階段 3:單一 worker——spec 凍結後,讓一位 worker 擁有明確 paths 與 proof command;主代理整合。
  4. 階段 4:隔離多 writer——只有 ownership、interface 與驗收都能預先切開時,才讓每位 writer 以專屬 branch、專屬 worktree 與專屬頂層 session 工作。

這條路線刻意保留 Claude 使用者熟悉的「主線做判斷、子線做封閉任務、另一條線審查」,只把 agent 定義、thread 操作與 worktree 入口換成 Codex 的現行 surface。它是遷移建議,不是兩個產品性能等價的宣告。綜合推論

14.12 版本清場:本章修掉哪些過時說法?

過時說法2026-07-26 可核實現況
spawn_agents_on_csv 是 experimental 批次 fan-out 0.145.0 已移除 CSV-backed agent jobs
job_max_runtime_seconds 控 worker timeout 只留 no-op compatibility parser,已從 generated schema 隱藏
max_threads = 6 是固定預設 現行鍵是 max_concurrent_threads_per_session;官方不公布固定預設值
max_depth = 1 鎖死孫代理 只屬 V1;V2 忽略,現行 child 可再 spawn
[features].multi_agent 已由 agents.enabled 取代 兩者都是公開設定且預設 true;不要自行假定是二選一
只有使用者明講才會委派 適用 AGENTS.md/Skill 指示也可觸發
所有 child 一律繼承 parent model/effort custom agent 可提供 model/effort;fork 與 override 組合依當前 surface/schema 核對
nickname_candidates 是 standalone agent 穩定欄位 公開 standalone schema 未列,不放進範例
subagent 自然隔離 checkout 現行本機 agents 共用 cwd/filesystem;要用 worktree 另隔離

spawn_agents_on_csv 的移除有不可變官方 commit 與 0.145.0 release 可核對;不是「暫時找不到文件」。max_depth 與 shared cwd 則以當日官方 repo 實作快照補公開文件的細節。官方 release/commit 實作快照

小結

  • ✅ Claude 使用者覺得較順,可能與 fresh/fork 心智模型、CLI worktree、agent 管理 UX 與肌肉記憶有關;沒有公平公開 benchmark 能把感受升格成客觀勝負。
  • ✅ Codex 現行有預設開啟的 subagents、/agentdefaultworkerexplorer、custom TOML agents、context fork、App worktree/Handoff 與 CLI /review
  • ✅ fan-out 優先用在互不依賴的探索、測試、triage、log 與 review;小改、同檔、循序決策與高互動任務保留單 agent。
  • ✅ brief 要有 goal、source of truth、ownership、constraints、non-goals、proof、交付格式與 blocked contract。
  • ✅ subagent thread 不隔離 checkout;本站安全預設是多讀一寫。多 writer 時,每位 owner 都要有專屬 worktree、專屬 branch 與專屬頂層 session。
  • ✅ 主代理要重看整體 diff、跑 gates、做 runtime/rendered proof,再交唯讀 reviewer 或 CLI /review;子代理自述不是 PASS。
  • ✅ 成本同時受 agent 數、context、model/effort、tool work、review loop 與返工影響;併發上限不是應開數。
  • ✅ 本章已移除 CSV fan-out、固定 max_threads=6max_depth=1、job runtime 與 standalone nickname_candidates 等過時教學。

動手試試

  1. 挑一個陌生模組,用 14.6 的 Prompt A 開兩到三條唯讀研究線;要求 file:line、未驗證項與排除項,主代理不要讓任何子線寫檔。
  2. 建立 .codex/agents/evidence-explorer.toml,設 sandbox_mode = "read-only";委派前把 parent permission 選成唯讀,再用 /agent 檢查子線是否真的以你預期的角色工作。
  3. 拿一個近期小改套 14.3 的五題檢查。若不值得 fan-out,刻意用單 agent 完成,記下省掉哪些委派/整合成本。
  4. 挑一個能切開的雙模組任務,先只寫 brief:owned paths、shared interface、proof command、port ownership、blocked contract,以及兩套專屬 worktree/branch/頂層 session。沒有全答出來前,不要開第二位 writer。
  5. 完成一個 change 後,先跑最小 checks,再用 Prompt D 或 CLI /review 做唯讀審查;最後以 PASS/FAIL/N/A/UNVERIFIED 回報。

本章查證範圍

每個來源的發布/更新狀態、第一手證據、可用結論、限制、排除項與查證日期,都集中在下方來源與查證邊界。任何只有作者自陳的績效數字、stars、匿名討論與舊版 issue,都沒有被拿來當客觀成效。

來源與查證邊界

來源日期用在本章限制
Codex Subagents 頁面未標發布日;查證 2026-07-26 surface、roles、custom agents、permission、成本、fan-out 起點 不提供固定最佳 agent 數或 token 倍率
Codex Best practices 頁面未標發布日;查證 2026-07-26 Goal/Context/Constraints/Done when、驗證閉環 不是多代理 benchmark
Codex Code review 頁面未標發布日;查證 2026-07-26 CLI /review 的四種 scope 與 dedicated reviewer 不取代 tests/人類核可
Codex Worktrees 頁面未標發布日;查證 2026-07-26 desktop app managed worktree/Handoff 邊界 不是 CLI managed flag
Codex CLI 0.145.0CSV removal commit 2026-07-21/2026-07-20 V2 stabilized、CSV jobs 移除 release 狀態不代表未來不再演進
Codex V2 tool schema,commit 61a4488 2026-07-26 fork_turns 與 delegation guidance 實作快照,可能隨 rollout 漂移
Ryan Lopopolo:Harness engineering 2026-02-11 worktree 可啟動、短 AGENTS、機械規則與驗收 團隊自陳績效不泛化
OpenAI Symphony公開 repo 文章 2026-04-27;repo 查證快照 2026-07-26,更新日 UNVERIFIED issue DAG、workspace、telemetry、human-review gate preview/參考實作;範例數值非建議值
Simon Willison:Parallel coding agentsProven to work 2025-10-05/2025-12-18 scout、review 瓶頸、測試+人工證明 跨 harness 的具名個人實踐
Peter Steinberger:Just Talk To It現行 agent-scripts 2025-10-14/持續更新 blast radius、brief、review loop、現行 worktree 紀律 同 checkout 作法只列歷史反例;主觀比較不作成效
Jesse Peplinski:Worktrees with Codex 2026-05-18 port/server ownership 與 integration checks 個人流程
Jesse Vincent/Prime Radiant:Superpowers v6.2.0成本 issue #1152 v6.2.0:2026-07-23;issue:2026-04-13 獨立任務、ledger、review circuit breaker;重建 context 的成本風險 第三方跨 harness 方法;issue 是 aIacoella 在 Superpowers 5.0.7/Codex 0.120.0 的單一自陳,無 token 數或對照組
Claude SubagentsWorktreesAgent TeamsCosts 頁面未標發布日;查證 2026-07-26 fresh/fork、CLI worktree、teams 與成本的公平比較 teams 是 experimental;不推論模型勝負

目前仍是 UNVERIFIED 的事

沒有公開、同任務、同模型層級、同驗收標準的資料,能證明 Claude 或 Codex 在多代理速度、品質或總成本上普遍勝出;也沒有可泛化的「高手應同時開 N 位 agent」數字。GitHub issue 只能證明有人回報,open issue 也不是 roadmap 承諾。