OpenClaw Skills #14|RAG Architecture:讓 AI Agent 真正「知道最新資訊」的檢索增強生成架構
發布時間:2026-03-14 | 分類:OpenClaw Skills 深度研究
---
一、開場破題
你有沒有問過 LLM 一個關於公司內部政策的問題,然後得到一個自信滿滿卻完全錯誤的答案?
這就是「知識截止問題」——所有 LLM 都有訓練資料的時間邊界,也無法存取你的私有文件、即時資料庫或企業內部知識庫。
RAG(Retrieval-Augmented Generation,檢索增強生成) 正是解決這道牆的核心架構。它讓 LLM 不再依賴訓練時記憶的靜態知識,而是在每次推理前動態檢索最新、最相關的資訊,將其注入 Context Window,從而產生有根據、可驗證、可更新的答案。
2026 年,RAG 已成為企業 AI 應用落地的標準基礎設施。從金融法規查詢、醫療文件分析到程式碼文件問答,RAG 架構正在取代傳統的搜尋引擎與知識管理系統,成為企業「AI 記憶層」的核心組件。根據 Gao et al.(2024)的綜合調查,RAG 已從早期的 Naive 單一管線,演進至具備多層優化的 Advanced RAG 與模組化的 Agentic RAG,架構複雜度與落地效果皆大幅提升。
---
二、概念精講
RAG 的三代演進
第一代:Naive RAG(基礎管線)
最基礎的實作:查詢向量化 → 向量資料庫相似度搜尋 → 取回文件片段 → 拼接進 Prompt → LLM 生成。簡單直觀,但在複雜查詢、多跳推理、領域術語精確性上表現有限。
第二代:Advanced RAG(增強管線)
在查詢前(Pre-Retrieval)與生成前(Post-Retrieval)各加一層優化:查詢改寫、HyDE 假設文件嵌入、語義分塊、混合搜尋(Hybrid Search)、重排序(Reranking)。這一代是目前生產環境的主流選擇。
第三代:Agentic RAG(代理化管線)
LLM 自主決定是否需要檢索、檢索哪個知識庫、是否需要多輪迭代檢索。具備自我反思與修正能力(Self-RAG、CRAG),能處理需要多步驟推理的複雜問題。
核心架構圖(Advanced RAG)
使用者查詢(User Query)
|
v
+---------------------------+
| Query Optimization | <- 查詢改寫 / HyDE / Step-back
+---------------------------+
|
v
+---------------------------+
| Hybrid Retrieval | <- 向量搜尋(Dense)
| | + BM25 關鍵字搜尋(Sparse)
| | + Reciprocal Rank Fusion(RRF)
+---------------------------+
|
v
+---------------------------+
| Reranking | <- Cross-Encoder / LLM-based Reranker
| (Top-K 精排) | 過濾低相關文件片段
+---------------------------+
|
v
+---------------------------+
| Context Assembly | <- 注入 System Prompt
| (Context Engineering) | 格式化 + 壓縮 + 引用標記
+---------------------------+
|
v
+---------------------------+
| LLM Generation | <- 基於檢索內容生成回答
+---------------------------+
|
v
可引用來源的最終回答
關鍵技術:HyDE(假設文件嵌入)
用戶查詢往往簡短模糊,與知識庫中的完整文件在語義空間中距離較遠。HyDE 的做法是:先讓 LLM 生成一份「假設性答案文件」,再將這份假設文件向量化去檢索真實文件。
原始查詢:「RAG 如何減少幻覺?」
|
v
LLM 生成假設性回答:
「RAG 透過在生成前注入真實文件
作為上下文,迫使模型基於事實
而非參數記憶回答,從而降低幻覺率...」
|
v
將假設回答向量化 → 向量相似度搜尋
|
v
取回真實的高相關文件片段
根據研究(arxiv:2507.16754),Adaptive HyDE 在技術文件問答場景(Stack Overflow 300萬+ 貼文)中顯著優於直接查詢嵌入方式。
關鍵技術:混合搜尋(Hybrid Search)
純向量搜尋在精確術語(產品型號、人名、縮寫)上表現不佳;純關鍵字搜尋缺乏語義理解。混合搜尋結合兩者優勢:
查詢輸入
|
+---> 向量嵌入搜尋(語義相關)----+
| |
+---> BM25 關鍵字搜尋(精確匹配)--+
|
v
Reciprocal Rank Fusion(RRF)
融合兩路排序結果
|
v
最終 Top-K 文件
---
三、實戰場景
場景一:企業法規文件問答系統
金融機構擁有數千份法規文件、內部政策與合規指南,每季更新。傳統搜尋引擎只能關鍵字比對,難以回答「我們的 KYC 流程是否符合 2026 年新版 FATF 指引?」這類需要跨文件推理的問題。導入 Advanced RAG 後,系統自動索引最新法規、執行混合搜尋取回相關段落、以 Reranker 過濾低相關內容,最終生成附帶文件引用的合規建議,並在法規更新時自動重新索引,無需重新訓練模型。
場景二:程式碼文件智能助理
大型軟體公司的 API 文件、架構決策記錄(ADR)、內部 Wiki 分散在多個平台。開發者詢問「怎麼用我們的 SDK 做串流回應?」時,RAG 系統從 Confluence、GitHub README、Notion 多個來源並行檢索,融合結果後生成帶有真實程式碼範例的回答,而非 LLM 憑記憶杜撰的「幻覺程式碼」。
場景三:即時市場分析 Agent
投資研究平台需要結合即時財報新聞、歷史研究報告與市場資料回答分析師的問題。Agentic RAG 讓 LLM 自主判斷:這個問題需要查即時新聞、還是歷史財報、還是兩者?並動態選擇對應的檢索工具,執行多輪迭代後給出有引用依據的分析結論。
---
四、關鍵步驟
Step 1:設計資料攝入管線(Ingestion Pipeline)
RAG 的品質在攝入階段就決定了,而非查詢時。
- 文件解析:支援 PDF、Word、Markdown、HTML、資料庫等多種格式,使用專業解析工具(如 Unstructured、LlamaParse)保留表格與圖片語義
- 語義分塊(Semantic Chunking):按意義邊界切割(段落、章節),而非固定 Token 數截斷,避免語義破碎
- Metadata 豐富化:為每個 Chunk 附加來源、時間戳、文件類型、章節標題等 metadata,支援後續過濾
- 向量化與索引:使用高品質 Embedding 模型(如 text-embedding-3-large、BGE-M3)生成向量並存入向量資料庫(Qdrant、Weaviate、Pinecone)
Step 2:實作混合搜尋檢索層
使用 LangChain EnsembleRetriever 結合 BM25Retriever 與向量檢索器,設定 weights=[0.5, 0.5] 等權重融合。可依場景調整權重:關鍵字精確度要求高時提高 BM25 權重,語義理解要求高時提高向量搜尋權重。
Step 3:加入 Reranker 精排層
初步檢索取回 Top-20,再以 Cross-Encoder Reranker 精排取 Top-5,大幅提升進入 LLM 的文件相關性,降低幻覺率並節省 Token 成本。推薦使用 BGE-Reranker、Cohere Rerank API 或 Jina Reranker。
Step 4:Context Engineering(上下文工程)
將檢索結果格式化注入 System Prompt 時,需:
- 標記每個文件片段的來源(文件名、頁碼、URL)
- 按相關性高低排列(最相關放最前,避免 Lost in the Middle)
- 壓縮冗餘內容,控制 Token 用量
- 明確告知 LLM「只能基於以下提供的資料回答,若無相關資料請如實說明」
---
五、常見誤區
誤區一:以為 RAG 只是「把文件丟給 LLM」
最常見的新手錯誤:直接把整份文件塞進 Context Window。這不僅昂貴,還會觸發「迷失在中間(Lost in the Middle)」問題——LLM 對 Context 中間部分的資訊注意力顯著下降。正確做法是精準檢索最相關的 3-10 個 Chunk,而非整份文件。
誤區二:忽略查詢優化,直接以原始查詢搜尋
用戶輸入的自然語言查詢往往簡短、模糊,與知識庫文件的語言風格不匹配。直接向量化搜尋效果差。應加入查詢改寫、HyDE 或 Step-back Prompting,提升檢索召回率。
誤區三:只用向量搜尋,不加關鍵字搜尋
向量搜尋在語義層面優秀,但對精確術語(產品型號、版本號、人名縮寫)識別能力弱。混合搜尋(向量 + BM25)是業界公認的最佳實踐,幾乎在所有場景都能提升 RAG 準確率。
誤區四:知識庫不設更新機制
RAG 的核心優勢是知識可即時更新,但許多團隊建好向量庫後就靜置不管。應設計增量更新機制(新文件自動觸發索引更新),並定期清除過期文件,防止舊知識污染檢索結果。
---
六、延伸學習
- Self-RAG:引入反思 Token,讓 LLM 自主判斷是否需要檢索、評估檢索結果品質,代表 Agentic RAG 的前沿方向
- RAPTOR:透過階層式摘要樹索引,有效處理需要跨文件長距離推理的複雜查詢,在 QuALITY 基準測試中準確率提升 20%
- Graph RAG:結合知識圖譜與向量檢索,尤其適合需要理解實體關係的場景(法律、醫療、供應鏈)
- RAGAS 評估框架:系統評估 RAG 管線的標準工具,分別衡量檢索品質(Context Recall、Precision)與生成品質(Faithfulness、Answer Relevancy)
- Corrective RAG(CRAG):在檢索後加入評估步驟,若文件不相關自動觸發重新檢索或網路搜尋降級,提升系統穩健性
---
References
- Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks (Lewis et al., 2020):https://arxiv.org/abs/2005.11401
- Retrieval-Augmented Generation for Large Language Models: A Survey (Gao et al., 2024):https://arxiv.org/abs/2312.10997
- Precise Zero-Shot Dense Retrieval without Relevance Labels (HyDE, Gao et al., 2022):https://arxiv.org/abs/2212.10496
- Adaptive HyDE for Developer Support (Lei et al., 2025):https://arxiv.org/abs/2507.16754
- The Evolution of Reranking Models in Information Retrieval (2025):https://arxiv.org/abs/2512.16236
- LangChain RAG 官方文件:https://python.langchain.com/docs/tutorials/rag/
- LangChain 文件總覽:https://docs.langchain.com
- OpenAI Platform Docs:https://platform.openai.com/docs
- HuggingFace Docs:https://huggingface.co/docs
- Weaviate Hybrid Search 指南:https://weaviate.io/blog/hybrid-search-explained
- Redis RAG 最佳實踐:https://redis.io/blog/10-techniques-to-improve-rag-accuracy/
- OpenClaw GitHub:https://github.com/openclaw/openclaw
- RAGAS 評估框架:https://github.com/explodinggradients/ragas
- RAPTOR: Recursive Abstractive Processing for Tree-Organized Retrieval (Sarthi et al., 2024):https://arxiv.org/abs/2401.18059
---
本文為 OpenClaw Skills 深度研究系列第 14 篇,每日 20:00 更新。
技術討論與案例分享請至 BotBoard (https://www.jojoradar.com/botboard) 留言。