在昨天的文章中,我們透過 LangGraph 實作了一個具備工具循環與持久化記憶的單一 ReAct Agent。
然而,當系統的業務邊界持續擴大——既要處理即時資料檢索、又要撰寫深度分析報告、同時還得執行資料庫寫入與郵件發送時,把所有的職責、提示詞與數十個工具全部塞進「同一個 Agent」會引發災難性的後果:
解決這個瓶頸的標準架構,就是將單一龐大的 Agent 拆解為專業分工的 Multi-Agent 系統(多智能體協同架構)。今天我們就來拆解兩種最主流的協同模式:主管模式(Supervisor Pattern) 與 階層式工作流(Hierarchical Pattern)。
單一 Agent 就像一個必須包辦產品設計、後端架構、前端切版、測試與維運的「全端工程師」;而 Multi-Agent 架構則是建立一個「各司其職的敏捷團隊」:
[傳統 Single-Agent]
User ──> [ 超大 Agent: 負責 30+ 工具 + 5 種角色 Prompt ] ──> 容易混亂、難以除錯
[現代 Multi-Agent (Supervisor)]
┌──> [ 檢索專家 Agent (專用 Context + 搜尋工具) ]
User ──> [ 主管 Agent ] ├──> [ 代碼執行 Agent (專用 Context + Python 環境) ]
└──> [ 報告撰寫 Agent (專用 Context + 格式規範) ]
主管模式是目前業界最常見、也最容易落地的 Multi-Agent 架構。
┌───────────────────┐
│ __start__ │
└─────────┬─────────┘
│
▼
┌─────────────────────────┐
│ Supervisor (主管) │ ◄──────────┐
└────────────┬────────────┘ │
│ (條件邊派工) │
┌──────────────────┼──────────────────┐ │ (回報結果)
▼ ▼ ▼ │
┌─────────────────┐┌─────────────────┐┌─────────────────┐
│ WebResearcher ││ DataAnalyst ││ EmailNotifier │
│ (網路檢索專家) ││ (數據分析專家) ││ (通知發送專家) │
└────────┬────────┘└────────┬────────┘└────────┬────────┘
│ │ │
└──────────────────┴──────────────────┘
from typing import Literal
from pydantic import BaseModel, Field
class RouterOutput(BaseModel):
next_node: Literal["WebResearcher", "DataAnalyst", "EmailNotifier", "FINISH"] = Field(
description="根據目前任務進度,決定下一個負責執行的專家 Agent;若任務已完成則為 FINISH"
)
instruction: str = Field(
description="派發給該專家的具體子任務指令與背景資訊"
)
當業務複雜度進一步提升,單一層級的主管模式可能會使頂層 Supervisor 的決策負擔過重。這時會演化為階層式架構(樹狀 / 網狀組織)。
[ 總指揮 (Director Agent) ]
│
┌────────────────────┴────────────────────┐
▼ ▼
[ 調研主管 (Research Lead) ] [ 寫作主管 (Editorial Lead) ]
│ │ │ │
▼ ▼ ▼ ▼
[ 搜尋專員 ] [ 論文專員 ] [ 起草專員 ] [ 審校專員 ]
階層式架構讓大型複雜系統具備了無限向外擴展(Scale-out)的能力。
在設計 Multi-Agent 系統時,子 Agent 之間主要有兩種溝通機制:
| 評估維度 | 單一 Agent (Single-Agent) | 主管模式 (Supervisor) | 階層模式 (Hierarchical) |
|---|---|---|---|
| 適用工具數量 | 1 ~ 8 個 | 8 ~ 20 個 | 20 個以上 |
| 任務複雜度 | 單一明確任務、短鏈路 | 多步驟混合任務、需角色分工 | 企業級複雜流程、跨部門級自動化 |
| Context 隔離度 | 無(共用單一視窗) | 高(子任務獨立消化) | 極高(層級化上下文沙盒) |
| 系統調試難度 | 低(定位單點問題) | 中(需監控 Supervisor 派工) | 高(需端到端分層 Tracing) |
| Token 總消耗 | 低 | 中(需額外的主管路由調用) | 較高(多次分層調度開銷) |
Multi-Agent 架構不是為了炫技,而是為了在複雜任務中維護「高凝聚、低耦合」的系統邊界。透過 Supervisor 與階層式設計,我們能讓每個 Agent 專注於自己的專業領域,打造真正穩定且具備彈性的 AI 團隊。
理解了 Supervisor 的協同理念後,在實戰中該如何用 LangGraph 將多個獨立的 Agent 節點串接起來?
明天 【Day 13】實作 LangGraph Supervisor Multi-Agent 系統,我們將進入實戰篇,透過 Python 程式碼完整構建一個由主管動態派工、串接 Research 與 Writer 兩大專家的 Multi-Agent 工作流!