強化你的 RAG:利用 Multi-Agent Self-RAG 導入人類推理邏輯

原始來源與檔名:20260512_2026-05-06T095748+0800-Supercharge your RAG with Multi-Agent Self-RAG.md

來源:[[Julian Yip]] / Medium — 2026-05-03 原始檔名:2026-05-06T095748+0800-Supercharge your RAG with Multi-Agent Self-RAG.md


NAPKIN | 餐巾紙

餐巾紙公式

Simple RAG = Retrieve -> Generate (Fails on deep/complex queries). Self-RAG = Retrieve -> Grade Docs -> Hypothesis -> Brainstorm Queries -> Retrieve Again -> Final Generate. Multi-Agent Paradigm: Break the reasoning loop into explicit node states managed by LangGraph.

這篇文章指出了單次檢索 (Single-turn RAG) 在面對真實世界複雜問題時的無力。以「德里飛慕尼黑被拒絕登機可獲多少賠償?」為例,RAG 可能只會檢索到「賠償金額依距離而定」的政策文件,但無法給出精確數字。解法是導入「Multi-Agent Self-RAG」框架 (基於 LangGraph)。Agent 會先對檢索到的文件進行「評分 (Grade)」,然後像人類一樣提出「假設 (Hypothesis)」(我需要先知道兩地距離),接著大腦風暴出新的查詢問題 (New Queries),再次進入向量庫檢索距離數據,最終結合兩份文件給出精確答案。這是一個讓 AI 學會「思考後再問一次」的強大架構。

一句話

傳統的 RAG 系統是「找資料 -> 回答」,但人類找資料是「找資料 -> 發現線索 -> 提出新問題 -> 再找一次資料 -> 統整回答」。透過 LangGraph 實作的多智能體 Self-RAG,我們讓 AI 學會這套邏輯:先檢索,評估文件是否有用,如果資料不夠,AI 會自己提出假說(例如:我需要先查出兩地距離才能算賠償金),然後發動第二次檢索,直到收集齊全所有拼圖,才產出最終答案,徹底解決 RAG 容易給出空泛答案的致命傷。

餐巾紙草圖

[ Multi-Agent Self-RAG Loop ]

(1) User Query: "Delhi to Munich denied boarding compensation?"

       v
(2) Retrieve: General EU policy (distance based)

       v
(3) Grade Docs: Keep EU policy, drop US policy.

       v
(4) Generate Hypothesis: "I need the exact distance."

       v
(5) Transform Query: "Distance between Delhi and Munich?"

       v
(6) Retrieve (Again): Distance is 5,931 km.

       v
(7) Generate Answer: Distance > 3500km, so compensation is 600 EUR.

ROUND 1: SKELETON | 骨架掃描

“這篇文章在說什麼”

ROUND 2: DISSECTION | 血肉解剖

“憑什麼這麼說”

核心論證鏈

  1. RAG 的能力天花板在於「單次命中率」: Vector Search 的本質是文本相似度,但複雜問題的答案往往不是單一文本,而是邏輯推導。如果系統缺乏「意識到自己不知道,並主動尋找缺少的一角」的能力,RAG 就永遠只是個笨拙的維基百科搜尋器。
  2. 狀態機架構確保控制流: 使用 LangGraph 而非單純的 Prompt Chaining,好處在於能夠保留歷史狀態(useful_documents 採取 append 而非覆寫)。這樣 Agent 在進行多輪對話與檢索時,不會出現「查了 B 忘了 A」的失憶症。

關鍵證據

邊界條件

ROUND 3: SOUL | 靈魂提取

“還能怎么用”