從簡單查找到代理推理:聊聊智能RAG系統的興起 原創
檢索增強生成(RAG)是大語言模型領域的一項技術,通過將外部數據檢索融入至生成過程,借此增強文本生成。與單純依賴模型預訓練知識的傳統方式不同,RAG讓AI能夠從外部來自“查找信息”,顯著提高響應準確性與關聯度,有助于緩解幻覺及知識過時等問題。換言之,RAG能夠超越靜態訓練數據、為AI賦予動態記憶。
隨著時間推移,一系列RAG架構也應運而生——其解決的分別是特定早期缺陷,而種種簡單概念如今已發展成為復雜的模式生態,包括維護對話上下文、處理多個數據源以及提高檢索相關性。本文將按照演進順序探討各主要RAG架構,討論各種新架構如何繼承前續方案并解決自身局限性,同時通過可視化圖表介紹每種架構所需解決的問題及解決方案。
簡單RAG
大模型先從靜態知識源(數據庫或向量索引)中檢索相關文檔,再基于檢索到的信息生成響應。
簡單RAG是檢索增強生成的最基本形式。當用戶提出問題時,系統會從固定知識庫中檢索信息,將其提供給大模型以生成基于事實的答案。這種簡單流程通常包含文檔存儲(外部數據,例如數據庫或企業知識庫)和用于查找/查詢相關的文本檢索器。如此一來,即可確保答案最新且基于真實數據,從而大大減少幻覺并提高準確性。
- 工作流:用戶提出查詢,系統從數據庫中檢索相關文檔,大模型根據這些文檔生成響應。?
- 用例:這種基本方法適用于范圍有限的靜態信息集,例如FAQ聊天機器人或文檔助手,配合產品手冊或知識庫確保響應結果符合需求。?

局限:簡單RAG雖比單獨使用大模型更有改進,但仍有缺點——它會孤立處理各項查詢,不具備先前交互或上下文記錄。在多輪對話或者要求AI記住先前所說內容的場景中,簡單RAG會顯得力不從心。它無法將信息從一個問題傳遞至下一問題,往往導致答案重復或不一致。因此上下文管理,就成了RAG下一代演進希望解決的主要挑戰。
帶記憶功能的簡單RAG
此架構通過添加記憶組件擴展了簡單RAG,系統可在生成響應時整合先前用戶交互中存儲的上下文、以及新檢索到的文檔。
帶記憶功能的簡單RAG解決了上下文限制,為AI模型引入持久記憶存儲,可保留先前交互中的信息。實際上,模型現在可以記住用戶之前提出的問題或給出的答案,并將其與新檢索到的數據共同用于當前查詢,從而保持對話連續性并避免忘記先前細節。
- 工作流:用戶提交查詢。系統首先訪問記憶,從之前的對話或存儲的上下文中檢索信息。接下來,它會執行常規文檔檢索,從外部知識源處獲取新信息。最后,大模型生成答案并整合先前上下文(來自記憶)及新檢索到的事實。?
- 用例:此架構特別適合客服或個人助理領域的聊天機器人和對話智能體,它可以回憶起用戶姓名或之前聊天中遇到的問題,從而提供更佳體驗。此外,此架構也適用于個性化推薦或任何需要歷史背景信息來指導當前響應的場景。?

記憶的引入,讓RAG解決了上下文連續性這一挑戰。但隨著應用場景的增加,新的挑戰再次出現:并非所有查詢都只指向同一數據源。帶記憶的簡單RAG只會查詢一組固定文檔,但如果組織擁有多個知識庫或工具,又該怎么辦?每次查詢所有知識庫或工具會拉低效率,因此新的方案需要讓檢索更加智能以確定查找位置。
分支RAG
這種架構會將查詢路由至不同知識源。系統不再搜索所有內容,而是根據查詢分支到最相關的數據源(數據庫、API、文檔集等)。
分支RAG引入了智能源選擇功能,通過評估查詢并將檢索定向至最適合的資源以提升執行效率。換言之,RAG管線可以根據具體問題分支至不同信息源。
- 工作流:分析用戶查詢,由系統決定哪些知識源最可能包含答案(即路由或分支選擇器)。例如,將法律問題路由至法律數據庫,編程問題則路由至Stack Overflow歸檔。之后,系統只查詢特定源,再由大模型根據目標信息生成答案。?
- 用例:分支RAG在處理跨領域或大型異構語料庫時表現出色。例如,大公司的AI助手可能需要處理人力資源政策問題、IT 支持問題以及財務數據查找。通過分支檢索,助手可以為每個查詢選擇正確的內部數據庫,避免搜索完整索引,或者因為在錯誤的位置查找而丟失答案。由于不相關的來源會被跳過,因此得到的響應將更加高效、準確。?

通過將查詢路由至正確的源,分支RAG可以降低噪聲并提高準確率。它解決了在多個知識庫中擴展RAG的難題。然而,如果查詢不明確或未直接匹配任何文檔,又該怎么辦?在這種情況下,即使是智能分支也可能檢索不到任何有用的信息。下一代創新方案解決了這個問題——當用戶的問題不夠具體時,模型會主動設想出更好的查詢表達來指導檢索。
HyDe(假設文檔嵌入)
在搜索知識庫之前,模型會根據查詢創建一個假設文檔或理想的答案嵌入,再據此檢索與“理想”內容匹配的真實文檔。
HyDe(假設文檔嵌入)是RAG的一個獨特變體,用于解決模糊或難以匹配的查詢問題。在之前的架構中,檢索直接由用戶的查詢驅動。但如果查詢措辭不當或范圍過廣,系統可能無法獲取最佳信息。HyDe給出的答案是,模型首先在內部生成一個假設的答案或文檔(即模型認為理想答案應該包含的內容),將其轉換為嵌入,然后檢索與該假設內容類似的實際文檔。這可以顯著提高檢索到的信息與復雜查詢的相關性。
- 工作流:用戶提供提示詞,系統使用大模型(或其他生成組件)創建一份假設的文檔/答案表達。此假設不會顯示給用戶;相反,它會被轉換成一個嵌入向量,再利用它從知識庫中檢索最接近該理想答案的真實文檔。最后,大模型使用檢索到的文檔生成最終答案。?
- 用例:HyDe主要適用于研究和創造性查詢。例如,若用戶提出一個高開放度問題,如“技術對認知培養有何影響?”這時HyDe會首先讓模型假設一個答案(可能涉及注意力持續時間、記憶力、屏幕時間研究等概念),再使用此答案獲取涉及這些概念的文檔。在創意內容生成方面,HyDe則可嘗試生成“理想”敘述,并用檢索到的事實細節進一步加以充實。?

當用戶查詢不精確時,HyDe可以有效解決檢索難題。通過使用模型生成的答案預覽來引導搜索,它提高了找到正確信息的幾率。這雖然增加了復雜性,但對于復雜問題卻能產生更好的結果。到目前為止,我們所見過的架構仍然遵循針對每個查詢的固定策略(內存或分支有所不同)。接下來,我們將介紹一種可以根據查詢需求動態調整檢索策略的方法,從而使流程更高效,并可針對各種工作負載進行擴展。
自適應RAG
這是一種有條件的檢索策略。系統會檢查查詢并決定如何檢索信息:簡單查詢往往能輕易對應一個來源,而復雜查詢則會觸發更廣泛的檢索(多個來源或迭代搜索)。這種適應性優化了速度與深度。
自適應 RAG 是一種動態方法,其理念是根據問題的復雜性或性質調整檢索策略。較簡單的查詢會獲得輕量級的檢索(以提高速度),而較難的查詢會獲得更繁重、多方面的檢索(以提高完整性)。這種架構解決了早期系統中的一個挑戰:使用一刀切的檢索流程。在簡單RAG中,無論問題是“法國的首都是哪里?”還是詳細的分析查詢,系統可能總是從相同的位置檢索相同數量的文檔。自適應RAG則引入邏輯,使其更加高效和靈活。
- 工作流:用戶提交查詢后,系統首先對查詢復雜度進行初步分析,而后將其劃入不同檢索模式。對于簡單的事實性問題,可能只需查詢單個可信源或檢索少數片段。對于復雜問題,則可擴展至多個數據庫/API,或使用迭代搜索策略。檢索完成后,大模型會正常生成答案,最關鍵的差異在于檢索信息的數量和來源要根據查詢進行定制。?
- 用例:自適應RAG在企業搜索或需要處理不同難度級別的混合類型查詢場景下表現出色。以AI研究助手為例,有些查詢只涉及簡單定義、有些則需要深入研究科學文獻。對于前者,自適應RAG會在詞匯表中快速查找;對于后者,RAG則在多個研究論文數據庫中執行廣泛搜索。這確保了簡單查詢能夠迅速得到響應,復雜查詢則產生更高的檢索成本,從而根據具體情況在速度與深度間尋求最佳平衡。?

通過自適應查詢復雜度,該架構可以避免不必要的過度檢索,并確保必要檢索的完整性。它解決了每條查詢(無論簡單還是復雜)都使用相同的繁重管線處理時可能出現的效率和可擴展性問題。然而,即使采用自適應策略,之前提到的所有架構都具有一個共同點:它們信任檢索到的文檔并生成答案。如果檢索到的信息具有誤導性或不足之處,該怎么辦?接下來的架構明確解決了初始檢索可能質量不高的情況,通過引入額外步驟,在回答之前對檢索到的知識進行批判性評估和糾正。
糾正式RAG (CRAG)
此架構增加了自檢和改進循環。檢索到的文檔被分解成“知識條”,并根據相關性進行評分。如果檢索結果不夠好(未達到相關度閾值),系統會在生成最終答案之前執行額外檢索(如網頁搜索或替代查詢)。
糾正式RAG(CRAG)在標準RAG流程的基礎上,增加了對檢索內容的反思機制。其目的是捕捉初始檢索可能未達標的情況——例如檢索到的文檔偏離主題、過時或不完整——并在生成最終答案之前進行修復。在早期架構中,如果檢索到的信息質量較差,大模型可能會得出錯誤的答案,或者產生幻覺來填補空白。CRAG 則會對檢索到的信息進行質量評級,并在必要時進行迭代。
- 工作流:在常規檢索步驟之后,CRAG會將檢索到的文本拆分成更小的片段(即「知識條」),而后評估各片段與查詢間的相關度。如果知識條未達到特定相關度或質量閾值,則系統不會生成。相反,它會尋找更多信息(如擴大網絡搜索范圍或查詢不同數據庫)以補充或替換薄弱部分。只有在大模型擁有足夠相關文檔集后,才會生成答案。本質上,CRAG是在最終答案前插入了檢索-評估-優化的循環。?
- 用例:糾正式RAG特別適合風險高或對準確性要求嚴格的應用場景,例如法律分析、醫學問答或財務報告。例如,使用CRAG的醫療聊天機器人可能會從醫療數據庫中檢索信息;如果這些文檔無法直接回答患者問題,系統可能會自動在線搜索最新醫學文獻或臨床指南,以確保沒有遺漏任何關鍵細節。CRAG的自我評分步驟有助于發現錯誤或遺漏,從而顯著提高輸出質量。?

通過在檢索數據中加入反饋循環,CRAG解決了RAG系統中“垃圾進,垃圾出”的難題。如果它認為源材料的相關度不高,則會拒絕生成答案,從而進一步減少幻覺并提高可靠性。不過在CRAG中,檢索過程仍然發生在生成步驟之前(可能需要多次傳遞)。新的迭代方案希望模糊這條界限:如果模型可以在生成答案的過程中決定檢索更多信息,會怎么樣?這就是自RAG的作用所在——它賦予大模型更大的自主權,使其能夠在制定響應時動態提取新數據。
自RAG
模型在生成過程中參與自驅動檢索循環。在構建答案的過程中,大模型可以檢測知識缺口或不確定性,然后制定并發出新的查詢以獲取更多信息(自查詢),然后再繼續。此迭代循環持續進行,直到答案完整且得到充分支持。
自驅動檢索循環更進一步,允許大模型在生成響應時主動檢索更多信息。與之前提到的架構(每查詢僅在模型上實際進行一次檢索)不同,自驅動檢索循環實現了更具交互性的流程。一旦模型意識到需要更多數據(例如出現了子問題或不完全確定答案),它可以暫停并獲取更多內容,然后繼續回答。這解決了標準RAG流程中的一大局限:在開始生成答案前,模型有時并不確定自己是否了解答案。自RAG通過在回答過程中動態提取信息,確保模型能夠覆蓋這些盲點。
- 工作流:用戶提出問題,系統正常進行初始檢索并開始生成。在生成過程中,大模型會監控自身輸出,查找空白或不確定點所在,而后構建一個與該子主題相關的新內部查詢。由此觸發的自檢索循環可以獲取其他相關文檔或數據,將新信息整合至答案中并繼續生成。整個過程可以多次發生,直到模型認為答案全面且具有充分的依據。?
- 用例:自RAG在探索性任務和復雜問答方面表現極佳。這里設想撰寫深度報告的場景:當AI起草某個部分時,可能會意識到需要更多統計數據或對特定概念的解釋——它隨后可以即時獲取這些信息。另一個例子則是開放域問答中的多跳問題(如「找出文檔X中概念A與文檔Y中概念B之間的聯系」)。自RAG系統可以檢索概念A的信息、進行解釋,而后意識到還須檢索概念B及二者的聯系,最終確定答案。這種方法確保了結果更全面,讓所有查詢細節均得到解決。?

總而言之,自RAG賦予模型一定程度的自主權來指導其自身的檢索,從而有效地使檢索生成邊界更加靈活。它解決了答案構建過程中不可預見的信息需求問題。這是邁向更類似智能體行為的重要一步,為我們討論的最先進的架構——代理式RAG——奠定了基礎。代理式RAG不僅能夠進行自我檢索,還能以目標導向的方式協調多個智能體和工具,處理超越單一問答的極其復雜的查詢或任務,從而將這一理念推廣開來。
代理式RAG
一種先進的多智能體檢索架構。其中RAG系統的行為類似于一個能夠執行多步推理并與多個數據源或工具交互的智能體。頂端元智能體可能會為每個數據源或數據塊生成專門的文檔代理,收集它們的發現,然后合成最終答案。
代理式RAG代表了RAG架構的最前沿,其模型以更加自主、目標驅動的方式運行,而非單一的問答系統。在代理式RAG中,AI 可以將復雜的查詢分解為子任務,調用多個智能體(可以是 LLM 實例或專用檢索模塊)來處理不同的部分,然后組合生成結果。這種架構的靈感源于新興的AI智能體趨勢,各智能體可以規劃、推理、使用工具并執行多步驟操作來滿足用戶請求。它直接解決了單步RAG無法處理的復雜查詢難題——例如,需要跨多個文檔進行推理、執行中間計算或與外部系統(API、數據庫)交互(而不僅僅是獲取文本)的查詢。
- 工作流:最常見的模式為:用戶提交復雜查詢或任務,RAG系統以智能體形式激活,生成多個特定于文檔的智能體或工具調用。如需要進行市場分析時,系統可以創建一個智能體以檢索財務數據,另一智能體收集新聞文章,第三智能體負責獲取專家意見。頂端元智能體負責監督這些工作,并決定按何種順序執行。各子智能體分別檢索或計算所屬任務,最終由元智能體綜合所有信息,由大模型生成連續的最終報告/答案。在此過程中,智能體系統可以做出“若信息源A的數據不足,須咨詢信息源B”或“就X提出后續問題”等決策。這在本質上形成一套靈活的框架,涵蓋大量彼此協調的檢索和生成步驟,以服務于更高目標。?
- 用例:代理式RAG非常適合開放式研究、多源分析或任何需要人工執行多項查找及推理步驟的復雜任務。以編寫競爭性商業報告的自動化研究助手為例,具體任務可能包括:查詢財務數據庫、閱讀多份報告,通過API獲取社交媒體情緒并匯總所有內容。代理式RAG特別適合需要自主確定檢索內容以及如何整合多來源信息的場景,其本質上相當于一個能夠“自主研究”的AI智能體。?

通過部署多個智能體并規劃檢索操作,代理式RAG克服了簡單RAG系統在處理復雜性和規模方面的局限性。它標志著信息檢索和合成從預定義流水線向更具適應性的規劃器-執行器范式的轉變。當然,這種強大的能力也帶來了設計的復雜性增加,以及在確保智能體保持一致和高效方面的潛在挑戰。
總結
從簡單RAG到代理式RAG的演進,體現了AI系統不斷提升知識儲備、可靠性和情境感知能力的持續探索。每個新架構都建立在前一個架構的基礎上,用以解決一個特定瓶頸:簡單RAG引入外部知識以減少幻覺;帶記憶的RAG保留了上下文;分支RAG使檢索具備源感知能力;HyDe提高了模糊查詢的相關性;自適應RAG 優化了每個查詢的執行工作量;糾正式RAG對檢索到的信息進行質量檢查;自RAG使模型能夠迭代地填補空白;而代理式RAG則支持跨源進行復雜的多步驟推理。整個演進過程本質上是一系列創新,旨在滿足日益復雜的AI應用實際需求。
RAG架構的選擇取決于實際應用程序需求。簡單架構更易于實現,足以勝任簡單的任務,而高級架構則會以更高的復雜性為代價來解鎖更多功能。例如,如果你只需要一個用于單個數據庫的事實機器人,那么簡單RAG可能就足夠了。但是,如果你正在打造一名AI研究分析師,或許可以考慮使用代理式RAG來處理涵蓋廣泛和深度的查詢。理解這些模式至關重要——這既是一項技術決策,也是一項戰略決策,會影響用戶體驗和系統性能。
有一點是明確的:隨著我們不斷突破AI利用海量信息的能力邊界,RAG也在快速發展。通過利用合適的架構,我們賦能AI系統,使其不僅能夠檢索知識,還能以智能且情境化的方式進行檢索。這使得它們生成的響應更加準確、相關,更好地幫助用戶解決問題。演進過程中的每一步都讓我們更接近真正能夠充當專家級研究助手的 AI——能夠記住上下文、找到最佳來源、反復核實事實、并推理復雜問題,最終給出更加準確可靠的答案。
原文標題:???From Simple Lookups to Agentic Reasoning: The Rise of Smart RAG Systems??,作者:Naresh Dulam

















