A RAG管道 這是讓人工智慧能夠回答問題的底層機制。 你的 它使用文件而不是從網路上零星記憶中獲取資訊。所有關於這個主題的教學都引導你完成相同的建置流程:LangChain、嵌入模型、向量資料庫、四十行 Python 程式碼,搞定。但它們都沒有告訴你是否真的需要它,發布一周後維護它的成本是多少,或者當它悄悄開始返回錯誤頁面時該怎麼辦。.
我用 Docker 容器經營 10 多個自主業務。集群中的每個代理在寫入任何文字之前都會先從自己的筆記中檢索資訊。這些筆記大約是 8 MB 的純文本,包含約 200 萬個詞元。整個技術棧中沒有任何向量資料庫。這是我刻意選擇的,也正因如此,本指南涵蓋了兩個面向:如何在需要時建立合適的 RAG 管線,以及如何判斷何時一個更簡單的檢索層就能勝任。.
到最後,您將了解五個階段、實際成本線、告訴您應該建立哪種檢索方式的三題測試,以及在將任何內容交給客戶之前可以執行的 20 題評估。.
RAG 管線究竟是什麼(簡單易懂,無需圖表)

RAG 代表檢索增強產生。拋開這些術語,它其實就是一位圖書館員站在你的問題和模型之間:
- 你提了一個問題。. “年度計劃的退款期限是多久?”
- 檢索: 圖書館員會搜尋你的文檔,並找出最有可能包含答案的幾段文字。.
- 增強: 這些段落會貼到提示中,就在你的問題旁邊。.
- 一代: 模型會根據所提供的段落撰寫答案,理想情況下也會引用原文。.
這就是全部思路。 「流程」部分指的是所有必須發生的事情。 前 第二步可行:將文件從 Google 雲端硬碟、Notion、PDF 或幫助台匯出;將它們拆分成多個部分;為這些部分建立索引以便快速查找;並在文件更改時保持索引同步。.
為什麼不直接把所有內容貼到提示符號中呢?
有時候確實應該這樣做。現代上下文視窗很大,如果你的全部知識庫是一本 40 頁的手冊,貼進去完全是一種很好的檢索策略。它簡單易行,而且內容不會過時。當資料太大無法貼上、每次提問都貼上成本太高,或更新太頻繁無法手動整理時,RAG 流程就顯得尤為重要了。.
我的艦隊會攻擊所有三個目標。一個代理讀取的兩個主要記憶體檔案分別有 8,101 行和 39,431 行。加起來大約有 200 萬個令牌,它們無法放入我願意每次都付費的任何上下文視窗中。所以代理會進行讀取,只是讀取方式與教程中的方式不同。.
兩種檢索家族
- 語意檢索(經典的 RAG 流程): 將每一段文字轉換成一個嵌入向量,也就是一個包含數字的列表,用來捕捉文字的意思。並將這些嵌入向量儲存在向量資料庫中。提問時,對問題進行嵌入,並找到與其數字最接近的文本段。這種方法非常適合「尋找與問題相關的內容」。 意思是 即使措詞不同,道理也是一樣的。”
- 詞彙檢索與施事檢索: 搜尋實際單字,使用 BM25 排名或普通搜尋。
grep. 讓模型決定搜尋內容,讀取回傳結果,然後再搜尋。它非常擅長「尋找特定的錯誤代碼、發票號碼、欄位名稱或產品 SKU」。“
大多數運作良好的生產系統最終都會同時使用這兩種方法。了解哪一種方法在發揮主要作用至關重要。 你的 案件就是整個遊戲。.
你真的需要 RAG 管線嗎?三題測試

在建立向量資料庫之前,請如實回答三個問題。只需五分鐘,就能為您節省一個月的時間。.
1. 整個語料庫是否能容納在你能承受的提示時間內?
數一數。一個粗略的規則:1 個字元大約是 4 個英文字元。匯出你的文檔,檢查字元數,然後除以 4。如果你的詞元數在幾十萬以內,而且你每天提出的問題不到幾十個,那麼先測試一下簡單的長上下文提示。你可能根本不需要檢索功能。如果你的詞元數達到數百萬,或是你每天要回答數百個客戶問題,那麼你就需要某種檢索功能了。.
2. 你的問題和文件中使用的字詞是否一致?
這是沒人問的問題。如果你的用戶搜尋的是訂單號碼、API 欄位名稱、錯誤字串或策略代碼等精確訊息,那麼詞法搜尋才是最佳選擇。眾所周知,詞嵌入在精確標識符方面存在很大的模糊性: INV-20931 和 INV-20391 它看起來幾乎與語義思維模型完全相同。如果你的使用者針對用法律術語編寫的文檔(「退款資格」)提出模糊的、轉述的問題(「如果我不喜歡,可以退款嗎?」),那麼語義搜尋就派上了用場。.
3. 讀者是人還是智能體?
客戶在聊天視窗中輸入一次問題,並期望得到一個滿意的答案。檢索必須在第一次嘗試中就準確無誤,而經過優化並帶有重排序功能的 RAG 管道正能勝任這項工作。.
一個 代理人 它有所不同。它可以搜尋、讀取資訊、發現結果錯誤,然後用更合適的關鍵字再次搜尋。給智能體配備一個快速搜尋工具,它通常會比固定流程表現更好,因為它能像人一樣重新建構查詢語句。.
Anthropic 的 Claude Code 團隊對此深有體會。 Claude Code 的創辦人 Boris Cherny 曾公開表示,早期版本使用 RAG 演算法並結合本地向量資料庫,團隊很快就發現,這種主動搜尋方式(即模型運行諸如 rg 之類的工具)存在缺陷。 grep 就其本身而言,它通常效果更好。它也更簡單,在安全性、隱私性、過時性和可靠性方面的問題更少。這是一個用於搜尋代碼的編碼工具,所以不要過度概括。但這強烈表明,「你需要一個向量資料庫」是一個值得質疑的預設設置,而不是一條鐵律。.
簡要結論: 面向客戶的問答系統,如果文件模糊不清且由人工撰寫,則需要建立真正的紅黃綠(RAG)流程,並結合混合搜尋。而對於處理精確、結構化或技術文本的代理,則需要先對文件進行代理搜索,只有當能夠明確指出查詢失敗的原因時,才添加嵌入。.
RAG流程的五個階段(以及每個階段的故障點)

如果測試結果顯示需要構建,那麼以下是構建流程的剖析。從週末原型開發到企業級部署,所有 RAG 管線都包含這五個階段。大多數失敗都源自於前兩個階段,而不是那些複雜的階段。.
第一階段:攝取
將文件從它們存放的位置提取出來,並轉換成清晰的文字。這項工作並不光鮮亮麗,但卻隱藏著大部分真正的工作量。雙欄佈局的 PDF 檔案匯出後會變得雜亂無章。表格會失去原有的結構。服務台匯出的文件包含簽名、免責聲明和引用的電子郵件往來,這些都會污染每個文字區塊。. 進入攝取環節的垃圾將永遠無法回收。. 在這裡要比其他任何地方都多花些時間,並且要為每篇文章都附上來源網址和最後修改日期。之後你會用到這兩點。.
第二階段:分塊
將文字分割成足夠小的片段,以便精確檢索,同時又足夠大,使其能夠獨立成篇。 2024 年的研究 探索檢索增強生成的最佳實踐 (arXiv 2407.01219) 比較了組塊方法。結果表明,句子級分割是兼顧意義保留和簡潔性的最佳方案,組塊大小為幾百個詞元,相鄰詞元之間的重疊較少。作者使用了 20 個字元。.
我的實際做法是先依照文件本身的架構進行分段:標題、常見問題、政策條款。只有在沒有結構可循的情況下才採用固定大小的分段方式。如果一個分段從句子中間開始,到表格中間結束,那麼就沒有人能正確檢索到它。.
第三階段:嵌入與索引
將每個資料塊轉換為向量並儲存。嵌入是目前為止成本最低的階段(成本計算將在下一節中討論)。關鍵決策是… 你與向量一起索引的內容:來源、日期、文件類型、存取權限。如果沒有元數據,你就無法篩選掉去年的價格表,也無法阻止實習生透過提問取得董事會簡報。.
不要單獨索引向量。也要同時建構關鍵字(BM25)索引。 Anthropic 的上下文檢索研究是目前最清晰的公開證據。他們在索引之前,在每個資料塊前面添加了一段由模型編寫的簡短上下文訊息,然後對結果同時運行詞嵌入和 BM25 索引。這種組合將前 20 個資料區塊的檢索失敗次數減少了 49%(從 5.7% 降至 2.9%)。新增重新排序器後,檢索失敗次數進一步減少了 67%。.
第四階段:檢索(並重新排序)
提問時,同時搜尋兩個索引,合併結果,然後 重新排名第二個更聰明的模型會對前 20 到 50 個候選人進行相關性評分,並保留其中最佳的幾個。重新排序是大多數 RAG 流程都會忽略的最有價值的升級。最近鄰搜尋速度快但結果粗略,而重排序速度慢但結果精準,因此可以使用速度快的模型進行篩選,使用結果精準的模型進行最終選擇。.
第五階段:產生(附收據)
把問題和獲勝片段交給模型,並指示它回答。 僅有的 根據所提供的資料,指出每項索賠的依據所在段落,並在相關段落未涵蓋時表示「我不知道」。最後這條指令是客服機器人和風險承擔者之間的差異。一個連「文檔裡沒有」都說不出來的RAG流程,會在凌晨三點自信滿滿地為你編造一份退款政策。.

取得人工智慧策略手冊
這篇文章背後的營運說明:車隊如何回收設備、費用是多少,以及上週哪些設備故障。免費,您可以隨時離開。.
RAG管道的真實成本:建造、營運和維護——這些成本無人問津。

所有排名靠前的教學都避而不談成本。以下是詳細的成本明細,價格數據來自 OpenAI 的定價頁面,日期為 2026 年 10 月 12 日。.
嵌入:捨入誤差
OpenAI 的 text-embedding-3-small 列於 每百萬代幣 $0.02, , 和 text-embedding-3-large 在 每百萬 $0.13. 以一個實際的小型企業知識庫為例:2000 個文檔,平均每個文檔 2500 個令牌,總計 500 萬個令牌。.

⚡ 取得人工智慧優勢
每週提供真正省時省錢的AI小技巧。沒有廢話,沒有誇大其詞——只有切實有效的方法。.
- 將所有內容嵌入小型模型中:關於 $0.10.
- 使用大型模型:大約 $0.65.
- 在添加 Anthropic 風格的上下文區塊頭,Anthropic 估計在啟用提示快取的情況下,每百萬個文件標記大約需要 $1.02 個:約 $5, , 一度。.
嵌入問題的成本甚至更低。如果有人報出一個很高的「嵌入成本」報價,一定要問這裡面還隱藏著什麼費用。.
儲存和託管:通常規模較小
對於大多數小型企業而言,數千份文件的向量索引完全可以儲存在Postgres資料庫中。 pgvector 可以透過擴充或在託管向量服務的入門層內新增向量。如果您已經在使用 Postgres,新增向量幾乎不需要額外費用。託管向量資料庫按儲存、讀取和 Pod 數量計費,而且這些套餐經常變動,因此您應該查看最新的定價頁面,而不是輕信任何部落格文章中的數字,包括本文中的數字。.
產生:每個問題的實際成本
每個答案都會將問題以及檢索到的文字區塊發送給語言模型。五個包含 400 個詞元的文字區塊,也就是每個問題 2000 個字元的上下文訊息,之後模型才會產生單字。乘以您每天的問題量和模型的輸入成本。這條線會隨著使用量的增長而增長,這也是為什麼精簡檢索(更少但更高質量的文本塊)既能提高準確率又能節省成本的原因。.
維修費用:沒人會提及的帳單
這就是 RAG 管線真正成本高昂的地方,而且是人工成本,而不是 API 支出:
- 重新索引。. 每次文件發生更改,都需要重新剪下、重新嵌入各個部分,並刪除舊部分。如果漏掉刪除步驟,你的機器人就會引用你三月就已失效的政策。.
- 連接器斷裂。. Notion匯出格式發生變化,SharePoint權限變更,PDF產生器更新。資料導入過程開始悄無聲息地產生空資料塊。.
- 評估偏差。. 新文檔會改變舊問題的檢索結果。如果沒有測試集(後續章節),你需要向客戶了解狀況。.
- 模型互換。. 更改嵌入模型後,必須重新嵌入所有內容。來自不同模型的向量不能混合使用。.
如果你是為企業而非個人專案進行規劃,那麼維護成本這一欄就是區分簡報系統和正式系統的關鍵。這也是當有人讓我進行規劃時,我主要關注的內容。 為他們建立端到端的AI自動化流程:不是那四十行 Python 程式碼,而是誰會在攝取中斷時注意到呢?至於這項決定的人為因素,這裡有完整的分析。 僱用人工智慧開發人員而不是自己構建, , 和 你實際上從人工智慧自動化服務中購買的是什麼 涵蓋所有權問題。.
代理檢索:我的代理實際運行的 RAG 管道

這是收據。 JonOps 叢集中的每個代理程式在執行開始時都會讀取叢集已學習到的信息,這些資訊以純 Markdown 檔案的形式儲存。以下是在 jonjones.ai 容器上,於 2026 年 10 月 12 日測得的數據:
- MEMORY.md: 2.0 MB,8,101 行,284 個有日期的章節。.
- observations.md: 6.1 MB,39,431 行,1,451 個有日期的章節。.
- 運行日誌: 1631 個文件,8.9 MB。.
- 向量資料庫: 零。.
平原 grep 兩個記憶體檔案中,大約回傳了 800 萬個字元。 13毫秒. 無需重建索引,無需擔心嵌入失效,也無需同步任務。當某個技能更新文件時,下次搜尋即可立即生效。.
代理如何檢索
該模型並非採用固定的流程,而是透過循環的方式自行運行搜尋:
# 1. 尋找與此技能相關的章節,按最新發布順序排列:grep -n "^## blog-writer" MEMORY.md | head -5 # 2. 只讀取這些章節,而不是整個 2 MB 的檔案:sed -n 44,75pTPTRY.md使用上次運行使用的確切關鍵字縮小範圍:grep -n -i "rank math.*cache" MEMORY.md
這就是檢索、增強和生成,這三個字母相同,模型充當自身的查詢規劃器。由於文件是由代理寫入的,因此它們也是寫入的。 待檢索:標題按日期排序,每個部分對應一項技能,以及下次運行將要搜尋的確切欄位名稱和錯誤代碼。我已在[此處插入連結]中介紹了文件佈局。 CLAUDE.md 最佳實踐 以及原始記憶模式 三種文件技巧賦予人工智慧代理長期記憶能力.
它的不足之處(老實說)
這種方法確實有局限性,而我正好遇到了這些局限性:
- 同義詞漏掉了。. 如果一次運行輸出“Metricool 令牌過期”,而下一次運行搜尋“身份驗證失敗”,”
grep什麼也沒發現。嵌入程式碼本來可以發現這個問題。緩解措施是規範寫作:使用一致的術語,並在每個章節開頭添加簡短的摘要。. - 平庸之語會讓你不知所措。. “僅”Metricool”一詞在一個文件中匹配了237行,在另一個文件中匹配了1217行。代理需要縮小匹配範圍,而每次縮小範圍都需要呼叫一次模型。.
- 文件大小沒有上限。. 9月中旬時MEMORY.md檔案大約0.7MB,現在已經2.0MB了。普通檔案不會自動建立索引,也不會自動清理。壓縮文件已經列入待辦事項,這相當於我所說的維護費用。.
所以這些代理商並非反對 RAG。他們只是採用了適合的檢索方法。 他們的 結構:一個智能體閱讀器、精確的技術文本、持續的寫作任務,以及智能體自行編寫的語料庫。如果其中任何一項發生改變(例如,一個面向客戶的機器人需要閱讀超過 5000 篇人工撰寫的幫助文章),我會毫不猶豫地根據前面的章節構建混合 RAG 流水線。如果您是從無程式碼開發的角度出發,, Flowise遷移路徑 展示如何將可視化的 RAG 流程圖轉換為基於程式碼的代理程式。.
如何在信任 RAG 管線之前進行測試

大多數 RAG 流水線都是憑感覺發布的:有人問了五個問題,答案看起來不錯,就發布了。然後第六個問題就冒出來個折扣。這就是最小可行測試,而且還要花一個下午的時間。.
建構一個包含 20 個問題的黃金題集
寫下 20 位使用者實際提出的真實問題(這些問題應來自您的收件匣或客服系統,而不是憑空想像)。針對每個問題,記錄以下兩項內容: 哪個文件可以回答這個問題? 和 正確答案是什麼?. 至少包括:
- 5 個精確查找問題(價格、代碼、日期)。.
- 5 個改寫後的問題,使用了與文件中不同的字詞。.
- 5 個多部分問題,需要兩份文件。.
- 你的文件中的 5 個問題 不能 答案。這些測試系統是否會回答「我不知道」。“
分別進行分數檢索和產生。
這是大多數團隊都會忽略的步驟,也是他們無法解決任何問題的原因。對於每個問題,請分別檢查以下兩項:
- 檢索結果: 交給模型的文件區塊中,有沒有正確的那一份?是或否。.
- 答案正確性: 最終答案是否正確?引用的來源是否正確?
然後分析模式。如果檢索失敗且答案錯誤,則表示搜尋有問題,需要修復分塊、元資料、混合搜尋或重新排名等問題。如果檢索成功但答案錯誤,則表示產生有問題,需要修復提示資訊、減少分塊數量或強制引用。如果五個無法回答的問題中有一個有安全問題,則表示有安全問題,必須修復後才能發布。.
每次更改後都要重新運行。
新文件、新資料塊大小、新嵌入模型、新提示:重新運行 20 次。腳本編寫完成後只需幾分鐘,而且這是你唯一能用來預警偏差的早期預警系統。我的叢集執行的是代理的類似操作。每次運行都必須以機器可讀的結果行結束,並且每晚都會運行一個監控程序來核對計劃與實際發生的情況。同樣的原則:永遠不要相信你沒有測量過的系統。.
RAG管道常見問題解答
現在上下文視窗這麼大,RAG 是否已經過時了?
不,但它的預設狀態是這樣的。較長的上下文使得「直接貼上」對於小型語料庫來說是可行的,而智慧搜尋使得「讓模型進行搜尋」對於技術語料庫來說是可行的。對於需要一次性回答的大型、模糊、手動編寫的知識庫(例如客戶支援),經典的 RAG 流程仍然是最佳選擇。.
建構 RAG 管線需要向量資料庫嗎?
不一定。對於小型語料庫而言,, pgvector 在現有的 Postgres 資料庫中進行搜尋就足夠了。對於處理技術文字的代理工作流程,純文件搜尋的效能可能完全優於嵌入搜尋。只有當能夠指出目前搜尋失敗的查詢時,才需要新增專用的向量資料庫。.
用 LangChain 還是自己寫?
框架對於原型開發來說速度很快,而且它提供的抽象層最終會讓你更容易調試。對於生產環境中的 RAG 管線,許多團隊最終會在嵌入式 API、資料庫和重排序器周圍編寫一層薄薄的自訂程式碼。使用最快的框架進行原型開發,然後只保留你理解的部分。.
如何阻止我的 RAG 聊天機器人編造事實?
三個控制措施:指示模型僅根據提供的片段進行回答,要求對每個說法提供引用,並在測試集中包含無法回答的問題,以便證明它會說「我不知道」。然後,一旦有任何變化,就重新測試。.
小型企業可以在沒有開發人員的情況下運行 RAG 管線嗎?
無需編寫程式碼的工具可以在一下午內建造一個基本的文件聊天機器人。但維護工作(例如重新索引、連接器故障修復、評估等)仍需要專人負責。如果團隊中沒有人願意負責,那就需要為此預留預算。有關智能體如何融入小型運營的更多信息,請參閱… 自主人工智慧代理指南.
結語:建構滿足您問題需求的檢索機制
RAG 管線並非一個需要安裝的產品。它關乎你的 AI 在發聲前如何找到真相。首先要做正確的決定:貼上、搜尋或嵌入。然後建立一個能夠通過 20 題測試的最小版本,並在發布前在維護成本欄旁邊命名。.
這些教學會在一個下午教你四十行Python程式碼。而真正讓它成為一個商業系統的部分(乾淨的數據導入、混合搜索、誠實的“我不知道”答案,以及每次內容變更後都要重新運行的測試)決定了它在六個月後是否仍然準確無誤。.
我的代理伺服器使用 8 MB 可搜尋純文本,無需向量資料庫,因為這符合代理的閱讀方式。你的代理商可能需要完整的五階段流程。無論如何,你現在知道哪些問題決定了最終結果。.

想查看下一個建置日誌嗎?
當有一個真正值得展示的系統時,只需發送一封郵件:包括架構、收據以及故障部件。郵件中還包含「潛在客戶開發人工智慧策略手冊」。.

📥 免費:《人工智慧劇本》
我用來經營一人代理公司的所有工具和工作流程。 25 年的行銷經驗濃縮成一份實用指南。免費贈送。.
