單一 Agent 即使擁有強大的 LLM、規劃(Planning)、記憶(Memory)與工具呼叫(Tool Calling)機制,在面對複雜的真實世界任務時,依然會迅速撞上效能與穩定度的極限。
引進 Multi-Agent(多 Agent 協同架構) 不是為了把架構搞複雜,而是為了將軟體工程中的分工、封裝與降維思維引入 AI 系統中。
當我們嘗試用「一個超強 Agent 搞定所有事」時,系統通常會在以下四個層面崩潰:
Multi-Agent 的本質是「Divide and Conquer(分治法)」。它借鏡了人類組織管理與微服務架構(Microservices)的優點:
┌───────────────────────────┐
│ Orchestrator / Router │
└─────────────┬─────────────┘
│
┌────────────────────────────┼────────────────────────────┐
▼ ▼ ▼
【Coder Agent】 【Reviewer Agent】 【Researcher Agent】
- 專注寫程式碼 - 專注尋找漏洞/批判 - 專注搜尋與資料整理
- 綁定:FS Edit Tools - 綁定:Linter/Tester - 綁定:Search / RAG
在 Multi-Agent 系統中,不需要所有節點都使用最高昂的旗艦模型(如 Claude 3.5 Sonnet / GPT-4o):
主控/規劃(Orchestrator):用 GPT-4o 負責複雜推理與任務指派。
簡單執行(Workers):用 GPT-4o-mini 或 Claude 3 Haiku 進行簡單格式轉換或資料抽取。
程式碼生成(Coder):用專門優化 Coding 的模型。
這能大幅降低 Token 費用並提升整體回應速度。
根據任務複雜度,業界主要採用以下三種協同架構:
| 架構模式 | 運作邏輯 | 適用場景 | 代表框架/工具 |
|---|---|---|---|
| 1. Hierarchical (主從階層式) | 由 Supervisor Agent 拆解任務並分派給多個 Sub-Agents,彙整子結果後輸出。 | 複雜專案開發、研發報告撰寫 | LangGraph (Supervisor Pattern)、AutoGen |
| 2. Sequential / Pipeline (流水線) | Agent A 的輸出作為 Agent B 的輸入(A $\rightarrow$ B $\rightarrow$ C),一棒接一棒。 | 代碼審查流程 (寫 Code $\rightarrow$ Lint $\rightarrow$ 寫 Test $\rightarrow$ 部署) | CrewAI (Sequential Process)、LangGraph |
| 3. Joint Chat / Network (網狀對談) | Agents 圍繞一個 Group Chat 自由討論,由 Router 或 Next-Speaker 模型決定誰發言。 | 頭腦風暴、多角色辯論、複雜問題探索 | AutoGen GroupChat |
Multi-Agent 雖然強大,但也帶來了嚴重的工程複雜度:
💡 工程原則:
- 能用單一 Prompt 解決的,不要用 Agent。
- 能用單一 Agent + Tool 解決的,不要用 Multi-Agent。
- 只有當 Context 爆滿、工具過多無法收斂,或需要明確的角色制衡(如 寫 Code + Code Review)時,才是引入 Multi-Agent 的最佳時機。