Why Do Multi-Agent LLM Systems Fail
Motivation
目前已經有,若讓 LLMs 分工合作,是否能解決更複雜的問題?
催生了 Multi-Agent System (MAS) ,主要有以下特點:
- 多個代理分別扮演不同角色(如 CEO、Programmer、Reviewer)
- 進行多輪溝通,共同完成任務
- 支援任務拆解、併發、記憶分離、專長分工
但實際上,多代理系統的表現常常還不如單一 LLM 模型的「best-of-N」抽樣
產生問題,MAS 是真的更好?還是只是更「複雜卻沒效率」?
例如:ChatDev 只有 25% 的任務成功完成

HRO(High-Reliability Organizations)
即便是最聰明的 agent,也可能在組織不良的情況下出錯
⇒ 應該把 MAS 視為一個「擁有組織行為的智慧體系」,而非單純多個模型的堆疊
- Preoccupation with Failure(對失敗保持警覺)
- Reluctance to Simplify(避免過度簡化解釋)
- Sensitivity to Operations(對現場敏銳)
- Commitment to Resilience(對復原力的承諾)
- Deference to Expertise(尊重專業知識)
MAS 失敗分類(MASFT)
3 大類別,14 種細緻的失敗模式,,涵蓋了多代理對話中的各個階段(前中後)

Specification & System Design Failures
類別一:系統設計與任務規格錯誤
發生在任務開始之前,多由於 prompt 不清、角色混亂、目標定義錯誤
| 編號 | 失敗模式 | 說明 |
|---|---|---|
| 1.1 | Disobey Task Specification | 沒有按照使用者明確的任務要求執行,如要求用棋譜操作,卻使用座標。 |
| 1.2 | Disobey Role Specification | Agent 扮演錯誤角色,例如 CPO 越權取代 CEO 決策。 |
| 1.3 | Step Repetition | 同樣的步驟或訊息在多輪對話中被重複執行。 |
| 1.4 | Loss of Conversation History | 忘記過去的對話內容,導致回應錯誤或上下文不連貫。 |
| 1.5 | Unaware of Termination Conditions | Agent 不知道何時該結束任務或重複執行已完成任務。 |
Inter-Agent Misalignment
類別二:代理間協作錯誤
發生在執行過程中,與溝通協調失敗有關
| 編號 | 失敗模式 | 說明 |
|---|---|---|
| 2.1 | Conversation Reset | Agent 對話被重置,忽略了上下文,像是突然斷線重來。 |
| 2.2 | Fail to Ask for Clarification | 當遇到模糊資訊時沒有主動詢問,直接做出錯誤決策。 |
| 2.3 | Task Derailment | 對話進行過程中偏離了原始任務目標。 |
| 2.4 | Information Withholding | 該提供的資訊未主動告知對方(例:API 限制條件未說)。 |
| 2.5 | Ignored Other Agent’s Input | 明明已經收到另一 agent 提供的資料,卻當作沒看到。 |
| 2.6 | Reasoning-Action Mismatch | 推理出的結論與實際執行的動作不一致。 |
Task Verification & Termination Failures
類別三:任務驗證與結束錯誤
多發生在任務快完成或即將結束的階段,與結果驗證品質相關
| 編號 | 失敗模式 | 說明 |
|---|---|---|
| 3.1 | Premature Termination | 沒完成任務就提早結束流程。 |
| 3.2 | No or Incomplete Verification | 任務完成後沒有驗證成果,或驗證不夠全面。 |
| 3.3 | Incorrect Verification | 驗證步驟有誤,例如只檢查語法而沒檢查邏輯正確性。 |
Method
實驗兩種策略:
- Prompt 優化與代理角色明確化(Tactical)
- 架構性調整:加入嚴格驗證、標準溝通協議、記憶機制(Structural)
⇒ 雖然 prompt 優化有一定提升(最高 +14%),但仍無法根本解決問題
⇒ 真正的改善需靠 MAS 結構性設計原則的重塑
Tactical Approaches(戰術型快速修補)
-
清楚定義每個角色的任務與範圍
- 避免「角色僭越」與「亂終止任務」
-
Prompt 中加入明確的溝通模式
[RECEIVED]: 對方資訊 [DECISION]: 本輪決策 [REQUEST]: 對誰提出什麼需求 -
強制加入 Self-Verification 步驟
- 每次任務完成後強制自我檢查
- 例:MathChat 中加上「請用自然語言說明你為何認為答案正確」
-
調整代理之間的拓撲順序(對話流程)⇒ 避免不必要的重複溝通或資訊繞圈
Structural Strategies(結構型系統重構)
- 強化任務驗證機制(Comprehensive Verification)
- 解決「錯誤結束任務、不正確驗證」等問題 - 標準化溝通協議(Structured Communication Protocol)
- 解決「角色溝通錯誤、資訊遺失、不問清楚等」 - 信心值量化(Confidence Quantification)
- 避免「Agent 不確定時亂猜、早結束、沒求助」問題 - 記憶與狀態管理(Memory & State Management)
- 避免「上下文斷裂、忘記歷史、重複任務」問題