Codex 多智能體實戰:從架構設計到高階落地策略

在多智能體(Multi-Agent)開發逐漸成為主流的情境下,許多開發者一開始會直覺認為:只要把任務拆分、同時執行,就能大幅提升效率。

但真正落地後,很快會發現問題並不在「並行能力」,而是在系統可控性

常見的失控現象包含:

  • Token 使用量急遽上升,成本難以預測
  • 上下文快速膨脹,模型回應品質下降
  • 任務狀態分散,各 Agent 輸出無法整合
  • 多個 Agent 各自修改同一批檔案,最後難以 merge

因此,多智能體系統的真正核心並非「速度」,而是三個關鍵能力:

  • 控制成本
  • 控制狀態
  • 控制依賴關係

本文整理自 X@BTCqzy1,有興趣可以前往觀看原文

 

一、核心架構:多 Agent 是一個 DAG 調度問題

多智能體系統本質上不是多個 AI 同時聊天,而是一個任務 DAG(Directed Acyclic Graph,有向無環圖)調度系統。每一個任務節點都有明確的依賴關係,只有前置任務完成後,後續任務才應該開始。

若沒有設計成 DAG,而是讓任務彼此互相依賴,就容易出現循環依賴、任務卡死、狀態無法收斂等問題。

Manager(指揮官)

Manager 是整個系統的核心控制點,負責拆解任務、安排順序、控管依賴關係,以及在最後整合成果。

它的重點不是親自寫所有程式碼,而是像調度器一樣決定:

  • 哪些任務可以並行
  • 哪些任務必須等待
  • 哪些輸出可以被合併
  • 哪些結果需要退回重做

也就是說:

Manager 本質是調度器,不是聊天機器人。

Subagent(執行器)

Subagent 是負責實際執行任務的角色,通常會依照專業領域拆分,例如:

  • 前端 Agent:負責 UI、互動、頁面整合
  • 後端 Agent:負責 API、資料庫、服務邏輯
  • 測試 Agent:負責測試、驗證、品質控管

每個 Subagent 應該在獨立的環境中執行,並且只專注於自己的任務範圍。這樣才能避免彼此互相覆蓋程式碼,或因為共享太多上下文而導致狀態污染。

Harness(執行環境)

Harness 可以理解為多智能體系統的基礎設施層,負責讓 Agent 能安全、穩定、可控地執行任務。

它通常需要處理:

  • 執行環境隔離
  • 自動壓縮上下文
  • 同步必要狀態
  • 管控工具權限
  • 記錄任務執行狀況

如果沒有 Harness,多 Agent 很容易變成「多個 AI 同時亂改專案」。因此 Harness 的角色,是把 Agent 從單純對話模型,變成可管理的執行單元。

 

二、正確的 config.toml 配置:穩定比高併發更重要

Codex 支援全域與專案級兩層配置:

  • 全域配置:~/.codex/config.toml
  • 專案配置:.codex/config.toml

一般來說,專案級配置優先於全域配置,這樣可以針對不同專案設定不同的 Agent 策略。

以下是一個基礎範例:

# ~/.codex/config.toml
model = "gpt-5.4"
model_reasoning_effort = "high"

model_auto_compact_token_limit = 80000

approval_policy = "on-request"
sandbox_mode = "workspace-write"

[agents]
max_threads = 4
max_depth = 3
job_max_runtime_seconds = 600

[agents.backend]
description = "後端專家(API / DB)"
config_file = "./agents/backend.toml"

[agents.frontend]
description = "前端專家(UI / 互動)"
config_file = "./agents/frontend.toml"

[agents.tester]
description = "測試專家(品質控制)"
config_file = "./agents/tester.toml"

[mcp_servers.security-auditor]
command = "python3"
args = ["/path/to/audit_tool.py"]

這份配置的重點不在於「開最多 Agent」,而在於限制系統的執行邊界。

 

並發數:max_threads

[agents]
max_threads = 4

max_threads 決定同時能執行多少個 Agent 任務。

很多人會想把它開到很高,但實務上並發越高,不代表效率越好。當 Agent 數量增加時,Token 消耗、上下文同步成本、錯誤合併難度都會同步上升。

一般建議從 3~4 開始,這通常是比較穩定的甜點區間。

 

任務深度:max_depth

max_depth = 3

max_depth 用來限制任務可以被拆分的層級。

如果設得太高,Agent 可能會不斷把任務再拆成子任務,導致任務樹過深,最後變得難以管理。
如果設得太低,則可能無法處理稍微複雜的專案。

多數專案可以從 2~3 開始。

 

執行時間限制:job_max_runtime_seconds

job_max_runtime_seconds = 600

這個設定可以避免單一任務無限執行。

尤其在多 Agent 系統中,如果某個 Agent 卡住,可能會持續消耗 token、佔用 thread,甚至拖慢整個任務流程。因此每個 job 都應該設定最大執行時間。

 

MCP Server 設定

[mcp_servers.security-auditor]
command = "python3"
args = ["/path/to/audit_tool.py"]

MCP Server 讓 Agent 可以呼叫外部工具,例如安全掃描、測試執行、資料庫查詢或 API 驗證。

不過一旦開放工具能力,就必須特別注意權限控管。工具不是越多越好,而是要明確限制每個工具能做什麼、不能做什麼。

 

三、Master Prompt 模板:系統規格書,而不是一般提示詞

在多 Agent 系統中,Master Prompt 的角色不是單純告訴模型「請幫我完成任務」,而是要定義整個系統的運作規則。

Manager 的品質,基本上會決定整個多 Agent 系統的上限。

以下是範例:

### [PROJECT_NAME]

目標:[一句話說明問題]

技術棧:[React / FastAPI / PostgreSQL]

執行規則:
1. 必須用 git worktree 做物理隔離
2. 先完成 DB schema,再並行開發前後端
3. 所有模組通過 shared_schema.json 作為唯一契約
4. 子任務完成後必須 git commit,由 Manager 決策合併

輸出:
agent | branch | task

 

這份 Prompt 的重點是,它不是只描述需求,而是明確定義:

  • 執行順序
  • 隔離方式
  • 共同契約
  • 完成條件
  • 輸出格式

如果 Prompt 寫不清楚,多 Agent 很容易各寫各的,最後變成三個看似完成、但完全無法整合的結果。

 

建議補充:加入衝突處理規則

可以在 Master Prompt 中加上:

衝突處理:
1. 若前後端 API 定義不一致,以 shared_schema.json 為準
2. 若資料表欄位與 API 回傳格式衝突,先停止並回報 Manager
3. 不允許 Subagent 自行修改 shared_schema.json,除非 Manager 指派

這樣可以避免每個 Agent 自行定義自己的版本。

 

四、Worktree 並行隔離:真正的關鍵不是模型,而是 Git

多智能體最核心的一步,其實不是模型選擇,而是隔離方式。

在同一個工作目錄中讓多個 Agent 同時修改檔案,很容易發生:

  • 前端 Agent 改到後端檔案
  • 後端 Agent 覆蓋前端修改
  • 測試 Agent 還沒等功能完成就改測試
  • 最後 merge 時衝突爆炸

因此建議用 git worktree 為每個 Agent 建立獨立工作區。

範例:

git worktree add -b feature/frontend-ui ../wt-frontend
git worktree add -b feature/backend-api ../wt-backend
git worktree add -b feature/auto-test ../wt-tester

這樣會建立三個獨立的 worktree:

../wt-frontend   # 前端 Agent 使用
../wt-backend    # 後端 Agent 使用
../wt-tester     # 測試 Agent 使用

為什麼用 Git 做物理隔離?

因為物理隔離比 prompt 約束可靠。

你可以在 prompt 裡要求 Agent「不要修改某些檔案」,但只要上下文理解錯誤,還是可能發生誤改。
而 worktree 則是從檔案系統與 Git 分支層面把任務隔開。

合併流程建議

每個 Agent 完成任務後,應先各自 commit:

cd ../wt-frontend
git add .
git commit -m "feat: implement frontend UI"

cd ../wt-backend
git add .
git commit -m "feat: implement backend API"

cd ../wt-tester
git add .
git commit -m "test: add integration tests"

最後由 Manager 決定合併順序:

git checkout main
git merge feature/backend-api
git merge feature/frontend-ui
git merge feature/auto-test

通常建議先合併底層契約與後端,再合併前端,最後合併測試。

 

五、MCP 工具實戰:工具鏈決定 Agent 是否真的能做事

Agent 是否真的能幹活,取決於工具鏈,而不是單純的模型能力。

如果 Agent 只能聊天,它只是顧問。
如果 Agent 能安全地執行測試、掃描程式碼、檢查 API、操作檔案,它才是真正的執行者。

以下是一個簡化的安全掃描工具範例:

import subprocess

def audit_code(path: str) -> str:
    if ".." in path or not path.startswith("./"):
        return "Error: Access Denied"

    result = subprocess.run(
        ["bandit", "-r", path],
        capture_output=True,
        text=True
    )

    return result.stdout

為什麼要做輸入過濾?

這段判斷很重要:

if ".." in path or not path.startswith("./"):
    return "Error: Access Denied"

它可以避免 Agent 傳入危險路徑,例如:

../../etc/passwd
/home/user/.ssh
/

 

更完整一點的安全寫法

可以再加上路徑正規化:

import subprocess
from pathlib import Path

BASE_DIR = Path("./").resolve()

def audit_code(path: str) -> str:
    target = (BASE_DIR / path).resolve()

    if not str(target).startswith(str(BASE_DIR)):
        return "Error: Access Denied"

    if not target.exists():
        return "Error: Path Not Found"

    result = subprocess.run(
        ["bandit", "-r", str(target)],
        capture_output=True,
        text=True,
        timeout=120
    )

    return result.stdout or result.stderr

這樣會比單純檢查 .. 更安全,因為有些路徑可以透過符號連結或特殊寫法繞過簡單判斷。

 

六、Token 優化:多 Agent 的真正瓶頸

大多數場景下,多 Agent 的主要瓶頸不是模型能力,而是上下文管理與成本控制。

當多個 Agent 同時執行時,每個 Agent 都需要自己的上下文。如果沒有管理好,很快就會遇到:

  • 同一份程式碼被重複讀取
  • 每個 Agent 都帶入過多無關資訊
  • Token 成本成倍增加
  • 模型開始忽略重要細節

增量上下文:只載入相關程式碼

不要把整個專案丟給 Agent,而是用搜尋工具定位相關檔案。

例如:

grep -R "userService" ./src
grep -R "createUser" ./app
grep -R "shared_schema" .

讓 Agent 先定位,再讀取必要片段,會比一次塞入整個專案更穩定。

 

文件切片:只讀必要區段

可以用 sed 讀取指定行數:

sed -n '1,200p' app/Http/Controllers/UserController.php
sed -n '200,400p' app/Http/Controllers/UserController.php

 

或用 grep -n 找到行號:

grep -n "function store" app/Http/Controllers/UserController.php

 

再讀取附近片段:

sed -n '80,160p' app/Http/Controllers/UserController.php

這樣可以降低上下文污染,也能讓 Agent 更專注。

 

自動壓縮:超出閾值後摘要

原本配置中這行:

model_auto_compact_token_limit = 80000

代表當上下文接近指定 token 閾值時,系統應該自動進行壓縮或摘要。

但摘要不能只是單純縮短文字,而應保留:

  • 已完成任務
  • 尚未完成任務
  • 已做出的技術決策
  • 目前分支與 commit 狀態
  • 已知風險與阻塞點

 

建議摘要格式

[STATE SUMMARY]

已完成:
- backend API branch 已完成 user CRUD
- frontend UI branch 已完成列表與表單

目前契約:
- shared_schema.json 為唯一 API 契約
- User 欄位包含 id, name, email, created_at

待處理:
- tester branch 需補 integration test
- Manager 需合併 backend 後再合併 frontend

風險:
- frontend 目前假設 email 必填,需確認 schema

這種摘要可以讓狀態更容易收斂。

 

七、高階策略:讓多 Agent 系統真正可控

除了基本架構,實務上還需要額外設計幾個保護機制,避免系統在長時間執行後失控。

狀態收斂:每輪結束都要重新整理狀態

每次子任務完成後,Manager 應產出最新狀態摘要,而不是讓每個 Agent 繼續攜帶過長的歷史對話。

建議格式:

[ROUND CHECKPOINT]

Round: 2

完成任務:
- backend API 已 commit
- frontend UI 已 commit

下一步:
1. merge backend
2. 執行 migration
3. merge frontend
4. 執行測試 Agent

阻塞:
- 無

決策:
- shared_schema.json 不允許 Subagent 直接修改

這可以避免狀態越跑越亂。

 

任務快照:每個穩定階段都要保留回滾點

建議在重要階段建立 Git tag:

git tag checkpoint/schema-ready
git tag checkpoint/backend-ready
git tag checkpoint/frontend-ready

若後續合併失敗,可以快速回到已知穩定狀態:

git checkout checkpoint/backend-ready

 

成本護欄:Token 超標就停止

可以在規則中明確寫入:

成本限制:
1. 單一 Agent 不得讀取超過 10 個檔案,除非 Manager 批准
2. 若上下文超過限制,必須先輸出摘要再繼續
3. 若任務需要大量重寫,必須先回報原因

 

這類規則能有效避免 Agent 一路消耗 token 卻沒有產出。

 

結語:單 Agent 拼 Prompt,多 Agent 拼架構

多 Agent 開發的本質不是模型能力競賽,而是系統工程。

成熟的 Codex 多智能體系統應該具備:

  • 清楚的 DAG 任務結構
  • 明確的 Manager / Subagent / Harness 分工
  • 使用 git worktree 做物理隔離
  • 使用 shared schema 作為唯一契約
  • MCP 工具要有嚴格輸入驗證
  • Token 與上下文必須可控
  • 每一輪都要有 checkpoint 與狀態摘要

最後可以用一句話總結:

單 Agent 拼的是 Prompt,多 Agent 拼的是架構與治理能力。

 

如果您喜歡我們的網站,並且希望支持我們的工作,您可以考慮捐款。我們接受各種形式的捐款,包括一次性捐款和定期捐款。您的捐款將幫助我們維護和改進網站,並為用戶提供更好的體驗。

課程推薦

AI虛擬角色生成實戰班

AI虛擬角色生成實戰班

本課程將帶你從 AI 虛擬角色的概念出發,認識 AI Persona 的生成流程與應用方式,學會打造專屬自己的 AI 分身。課程中會學習 Prompt 提示詞撰寫、真人感人像生成、固定角色模板建立,並延伸出同一角色的多場景、多服裝與多情境照片。

OpenClaw 龍蝦 AI 代理人實作課:零基礎打造 AI 辦公代理人

OpenClaw 龍蝦 AI 代理人實作課:零基礎打造 AI 辦公代理人

本課程從安裝部署、身份設定、技能安裝到實戰應用,帶你從零建立一個專屬的 AI 工作助手-OpenClaw 龍蝦,這個 AI 助手可以替你蒐集情報、摘要文件、整理郵件、生成內容、定時提醒,全部自動完成。

輸入折扣碼 TC1625FR 還可以額外獲得 NT$500 優惠喔。

Google Gemini AI 多媒體生成工具應用實戰:從 Imagen 4、Veo 3、Chirp、Lyria 到 nano-banana

Google Gemini AI 多媒體生成工具應用實戰:從 Imagen 4、Veo 3、Chirp、Lyria 到 nano-banana

如何只用文字說明提示就生成不同的圖像結果?亦或是會議上的語音檔轉文字?這是一堂通盤性、全面性的Google Gemini AI多媒體生成工具應用實戰!

輸入折扣碼 TC1609EW 還可以額外獲得 NT$500 優惠喔。

AI 數據自動化工具實戰班:Google Sheet x Apps Script x NotebookLM 暨資料處理函數

AI 數據自動化工具實戰班:Google Sheet x Apps Script x NotebookLM 暨資料處理函數

本門課將教你如何善用 AI 功能與工具,進行自動分析數據提供有幫助的建議與洞察,以及使用 AI 驅動的公式自動化計算。

輸入折扣碼 TC1615VU 還可以額外獲得 NT$500 優惠喔。

3 小時掌握自動化工作新手應用實作 – n8n AI Agent

3 小時掌握自動化工作新手應用實作 – n8n AI Agent

這門課程將帶你循序漸進掌握 n8n 的自動化技巧,從基礎認識與操作入門,到進階節點應用與流程控制,再到 Google 服務的整合實作,最後延伸至部署思維與 OpenAI API 的智慧化串接。

輸入折扣碼 TC1600UY 還可以額外獲得 NT$500 優惠喔。

用 AI 生成網站? AI 高效網站設計實戰課:ChatGPT X HTML X SEO

用 AI 生成網站? AI 高效網站設計實戰課:ChatGPT X HTML X SEO

利用 AI 提升網站設計效率與 SEO 排名!了解如何透過 ChatGPT 等工具快速建立 HTML 架構,優化關鍵字與用戶體驗,讓網站更具競爭力。

輸入折扣碼 TC1533SL 還可以額外獲得 NT$500 優惠喔。

AI工作術全面學習實戰營:6 堂精選課程,學會最好用 AI 工具,翻轉你的人生

AI工作術全面學習實戰營:6 堂精選課程,學會最好用 AI 工具,翻轉你的人生

《PChome雜誌》攜手 5 位在 AI 領域的專業講師,打造上述 6 堂實用課程,教你學會時下最好用的 AI 工具,導入生成式 AI 來產製工作內容,改造並升級你的工作流程。

輸入折扣碼 ZERO2024 還可以額外獲得 NT$400 優惠喔。

HTML與SEO實戰應用—並以ChatGPT助力提升網站品質與流量

HTML與SEO實戰應用—並以ChatGPT助力提升網站品質與流量

本課程專為希望深入了解 HTML 並有效結合 SEO 策略的學員設計。我們將重點放在 HTML 的深度學習與應用上,同時穿插介紹如何透過搜索引擎優化提升網站能見度。透過即時互動式的直播教學,加上 ChatGPT 的輔助,您將學習到如何建立一個結構優良、美觀且符合 SEO 標準的網站。這不僅會提升網站的用戶體驗,還會大幅提高網站的搜索引擎排名,進而增加訪客流量和潛在客戶。
用AI強化職場競爭力 ChatGPT、Midjourney從入門到精通

用AI強化職場競爭力 ChatGPT、Midjourney從入門到精通

在快速變遷的職場中,提升競爭力成為關鍵。透過引領潮流的AI技術,ChatGPT和Midjourney將助您勇攀高峰。無論您是AI新手還是專家,這個課程將引導您從入門到精通,解密AI的奧秘,並學習如何運用於職場。
GitHub Copilot AI 程式碼編輯工具應用實務班

GitHub Copilot AI 程式碼編輯工具應用實務班

讓學員瞭解有效地使用該工具來加速開發流程、提高程式碼品質和生產力。課程重點放在以 JavaScript 程式語言為例,介紹 Copilot 的基本原理、使用方法和最佳實踐。

輸入折扣碼 TC1456JA 還可以額外獲得 NT$500 優惠喔。

ChatGPT X Clipchamp AI 生成影片、配音與字幕應用實戰班

ChatGPT X Clipchamp AI 生成影片、配音與字幕應用實戰班

掌握Clipchamp AI的操作技巧,靈活運用Clipchamp AI進行影片編輯和創作,實現創意表達和傳播目的。

輸入折扣碼 TC1451JAN 還可以額外獲得 NT$500 優惠喔。

如何串接多種數位工具資訊?Looker Studio 資料視覺化實戰班|GoogleAds x FB廣告 x GA流量數據

如何串接多種數位工具資訊?Looker Studio 資料視覺化實戰班|GoogleAds x FB廣告 x GA流量數據

Looker Studio除了可協助使用者監控網站流量、廣告成效、選擇匯入資源的管道之外,還可以將數據資料多平台整合、數據報表即時更新、數據範本可重複套用的效益,透過自動化系統,將數據全部匯入同一個報表平台,是企業不可或缺的重要工具。

輸入折扣碼 TC1270JIA 還可以額外獲得 NT$500 優惠喔。

和我們交流

加入我們的社群,裡面會有一些技術的內容、有趣的技術梗,以及職缺的分享,歡迎和我們一起討論。