Skip to content

RAG 的三種形態與 evaluator paradox

2026年8月10日 1 分鐘
TL;DR Standard RAG 取錯 chunk 就答錯,而且沒有任何機制會發現。Agentic RAG 補上自我檢查,但代價是 evaluator paradox——自我修正能力的上限,就是那個做評估的 LLM 判斷相關性的能力。

🌏 English version

系列最後一篇回到檢索。第一篇給的判準是「答案在文件裡 → RAG;答案需要對其他系統動手 → Agent」,但 RAG 自己也已經分化成三種形態,而且第三種把 agent 的迴圈搬進了檢索裡。

三種形態的機制與取捨

機制取捨
Standard RAGquery → embedding → 向量庫取 top-K → LLM 生成快又便宜,但取錯 chunk 就答錯,而且沒有任何機制會發現
Graph RAG先分類 query:具體問題走 local search(向量找實體 → 沿知識圖譜蒐集關聯 context);廣泛問題走 global search(不做向量搜尋,分批載入 community reports 讓 LLM 評分排序)建置貴、更新慢。適合法律、法遵、生醫這類結構化知識
Agentic RAG推理 agent 拆子問題、選來源 → 多來源檢索 → 另一個 agent 檢查檢索到的內容有沒有回答問題,沒有就重新檢索 → 綜合更強更彈性,但慢、貴、難 debug。適合需要多步推理與自我修正的問題

Standard RAG 那一列的後半句是關鍵:沒有任何機制會發現。 它不會知道自己取錯了,因為它沒有任何東西可以拿來比對。生成階段的 LLM 拿到什麼就用什麼,於是錯誤的檢索會被包裝成一個流暢、有引用、看起來很可信的答案。

Agentic RAG 就是為了補這個洞——加一個檢查步驟。但這一步有它自己的問題。

evaluator paradox

自我評估這一步,是用一次 LLM 呼叫去監督另一次 LLM 呼叫

所以整個系統的自我修正能力有一個上限:那個做評估的 LLM 判斷「這段檢索有沒有回答問題」的能力。 如果它判斷不出來,多加的那一輪只是多花錢多花時間。這不是實作品質的問題,是架構本身的天花板。

還有一個相關的失效模式叫 overcorrection:agent 在評估時丟掉了其實有用的檢索結果、繼續去找「更好的」,最後拿到比第一次更差的答案。加了自我修正不等於單調變好。

這跟第三篇那個記憶的思想實驗結構一樣——一個會自信地評估自己的系統,可能輸給一個知道自己不確定的系統。

四家的具體做法

Perplexity:五階段管線。 這篇還有個有意思的產品史細節——他們原本在做「英文轉資料庫查詢」,ChatGPT 發表後發現外界最大的抱怨是沒有來源,而自家原型剛好解了這題,於是放棄四個月的既有工作全轉去做答案引擎。

Dropbox Dash:資料的三種難處。 多樣性(每種格式要各自的語意抽取邏輯)、破碎性(散在 Gmail / Slack / Notion / Jira,各有各的權限規則)、多模態。第二項最容易被低估——跨系統檢索不只是接 API,是要在檢索階段就正確套用每個來源的權限模型,否則就是第五篇講的那種洩漏。

Uber Finch:用單表 data mart 避免 join。 與其讓 LLM 生成複雜的多表查詢,不如先把資料整理成寬表。另外語意層用 OpenSearch 存欄位名與欄位值的自然語言別名——使用者說「上個月的取消」,系統要知道那對應到哪個欄位的哪個值。

Yelp:citation 要做解析與驗證兩步。 模型輸出 [S1][S3] 這類標記後,先解析回原始來源,再驗證每個標記都對應到真的可檢索的內容。少了第二步,你會得到看起來有引用、但引用指向不存在東西的答案——這比沒有引用更糟,因為它更可信。

怎麼知道檢索有沒有壞

不同元件要用不同方式評估,混為一談就抓不到問題:

對象主要評估方式
LLM評最終答案(LLM-as-judge)
RAG要分開評檢索與生成——檢索對了但生成錯,跟檢索就錯了,是兩個問題
編碼 agent主要靠跑測試(code-based)
多 agent評的是協調與角色遵守,混用 code test + LLM judge + 人工

原文那句總結很實在:「管線每多一個元件,就多一個出錯的地方,也多一件 eval 必須抓到的事。」 這句話反過來也是選型的依據——如果你的 eval 抓不到 Graph RAG 或 Agentic RAG 多出來的失敗模式,那多出來的複雜度只會讓 debug 更難,不會讓答案更好。

回到系列開頭那條判準:多數情況下,先把 Standard RAG 的檢索品質做好,比升級到更複雜的變體划算。Anthropic 在《Building Effective Agents》講過同一件事——對很多應用而言,把單次 LLM 呼叫加上檢索與範例優化好,通常就夠了。

本系列

  1. 概念界線:agent、workflow、RAG、MCP 到底差在哪
  2. 模型只是元件,harness 才是系統
  3. context 與記憶:agent 失敗的真正位置
  4. 上線才是工作的開始:企業案例橫向讀
  5. 安全:prompt injection 只能在 harness 層做損害控制
  6. 協定層:MCP、A2A、ACP、Skills 各解什麼問題
  7. RAG 的三種形態與 evaluator paradox(本篇)

參考資料