AI 應用 / 知識管理

把資料丟給 AI,它其實沒有全部看完:RAG 的三種查法與怎麼選

它只是挑了幾段最像你問題的文字,拿那幾段去回答。搞懂中間那個「挑」的動作,才知道為什麼資料明明在裡面,AI 就是講不出來。

這篇在講什麼

你把整個資料夾丟給 AI,它回答的時候並沒有全部看過一遍。它只是挑了幾段最像你問題的文字,拿那幾段去回答。這個「回答前先查一輪」的動作有名字,叫 RAG。查法目前主流有三種:比相似度、走關係、讓 AI 自己決定要查幾輪。選錯了就會出現「資料明明在裡面,AI 就是講不出來」的狀況。這篇用白話講清楚三種各自在做什麼,給你一組判斷順序,並攤開我自己知識庫裡三種同時在跑的實際做法。

適合誰
  • 你已經把資料丟給 AI 了,它有時候答得很準,有時候明明資料就在裡面卻說找不到,你不知道問題出在哪。
  • 你聽過 RAG、向量資料庫、知識圖譜這些詞,但沒有人用你聽得懂的話講過它們差在哪。
  • 你想幫自己或公司建一個 AI 查得到的知識庫,正在猶豫要先做什麼、值不值得花那個力氣。
你可以帶走什麼
  • 一組可以直接照著判斷的順序:什麼題目用哪一種查法,不用每次都問人。
  • 一張三種功能對照表,以及我自己知識庫的真實做法:兩顆本機向量索引、一套標籤結構、上層一份路由規則。
  • 一段可以複製的提示詞,用來檢查你手上的資料到底適不適合被 AI 查。

一個具體問題

你把三十份會議記錄丟進 AI,問它:「這個客戶前後總共答應過我們什麼?」

它給你一段看起來很順的回答,但漏了兩件事。你翻回原檔,那兩件事白紙黑字寫在第七份跟第二十四份裡面。

你會直覺覺得是 AI 不夠聰明。實際上多半是這樣:它根本沒讀到那兩份。

因為它讀不完。三十份會議記錄可能有十幾萬字,塞不進一次對話。所以中間有一個環節,負責在你問完問題之後、AI 回答之前,先去這堆資料裡挑出幾段丟給它。你的問題答得好不好,很大一部分取決於這個環節挑得準不準。

這個環節就是 RAG 你以為 AI 在「讀完你的資料」,實際上它讀的是被挑出來的那幾段。挑的動作發生在你看不到的地方,而它決定了答案的上限。

白話定義:RAG 到底是什麼

RAG 的全名是 Retrieval-Augmented Generation,中文常翻成檢索增強生成。名字很嚇人,動作其實很單純:

一句話定義 讓 AI 在回答之前,先去你的資料裡查一輪,再根據查到的東西回答。

沒有 RAG 的 AI,回答時憑的是訓練時看過的東西加上你當下貼給它的內容。有 RAG 的 AI,多了一個去你的資料庫翻找的動作。

舉個例子。你問一位很博學的顧問「我們公司去年第三季的退貨率是多少」,他再博學也答不出來,因為那份資料在你的抽屜裡。RAG 做的事情,就是在他開口之前,先跑去抽屜幫他抽出相關的那幾張紙。

所以有兩件事會決定答案的品質:抽屜裡的東西有沒有整理好,還有那個跑腿的人會不會抽。接下來講的三種查法,講的都是「那個跑腿的人怎麼抽」。

RAG 只是整套系統的一層,其他幾層是什麼,我另外寫過一篇

三種查法

先講立場:這三種不是三個等級 這三種常被排成越後面越厲害的樣子,用實習生、分析師、資深研究員來比喻。我看的是題目:題目不一樣,該用的查法就不一樣。我自己的知識庫三種同時在跑,各管一種問題,沒有誰取代誰。下面講每一種的時候,講的都是它適合什麼題目、接不住什麼題目,不是它排第幾。

第一種:比相似度(一般說的 RAG)

流程是這樣:

  1. 事前把你的資料切成一段一段,每段轉成一串數字(這串數字叫向量,用來代表這段文字的意思)。
  2. 你提問的時候,問題也轉成一串數字。
  3. 系統去找數字最接近的幾段,通常抓前三到前十段。
  4. 把這幾段連同你的問題一起交給 AI,讓它照著回答。

為什麼要轉成數字?因為這樣可以做到「意思接近就找得到」,不需要用字一模一樣。你問「怎麼讓客戶願意先付訂金」,資料裡寫的是「預收款的溝通方式」,關鍵字搜尋撈不到,換成向量就有機會撈到。

適合的題目 快、便宜、幾乎不用維護

資料丟進去就能用,適合答案就落在某一頁的問題。找定義、找某次的數字、找某段話怎麼寫的,都屬於這類。

接不住的題目 撈回來的片段接不起來

答案分散在好幾份文件的時候,它會撈回一堆各自獨立的段落,彼此之間的關係它不知道。前面那個「客戶總共答應過什麼」就是典型會失敗的題目。另一個常被忽略的限制:它只認得意思像不像,不認得重不重要。一份三年前作廢的舊版報價單,語意上一樣像,它一樣會撈回來。

第二種:走關係(知識圖譜、GraphRAG)

流程不一樣:

  1. 事前先把資料裡的實體抓出來,例如人名、公司名、專案名、產品名。
  2. 建立它們之間的關係,例如「A 公司 → 負責人是 → B」「B → 參與過 → C 專案」。
  3. 你提問的時候,先認出問題裡有哪些實體,再沿著它們之間的線走。
  4. 把走過的那一整串脈絡交給 AI。

這一種的判斷依據是實體之間的關係,跟字面像不像無關。

適合的題目 多跳問題

所謂多跳,就是「要先知道 A 才能查到 B」的那種問題。「這個人跟我們哪些案子有關,那些案子又牽到誰」用第一種查法很難答完整,用這種就是順著線走過去。

接不住的題目 那張圖不會自己長出來

要嘛你手動建,要嘛用 AI 先跑一輪把實體跟關係抽出來,然後每次有新資料進來都要再維護一次。這是持續成本,不是一次性投資。

我自己知識庫用的標籤連結法,走的就是這個精神:受控詞彙當節點,wiki-link 當關係線。差別在於走那張圖的是人跟 AI 讀規則,不是自動化的圖遍歷。

關係層要怎麼自己建,我另外寫過一篇

第三種:讓 AI 自己決定(Agentic RAG)

前面兩種都是固定流水線:問題進來,照既定路線查一輪,交出去。第三種是加了一層判斷:

  1. AI 先想這一題要不要查、該查什麼。
  2. 決定去哪裡查,可能是向量庫、可能是知識圖譜、可能是上網、可能是叫某個工具。
  3. 查回來以後自己評估:這些證據夠不夠回答?
  4. 不夠就換個角度再查一輪,夠了才開始寫答案。

關鍵不在它能用比較多工具,在於它自己決定要不要查、查幾次、答案夠不夠好。

適合的題目 題目本身很模糊的時候

你連自己要查什麼都還不確定,前兩種就沒辦法幫你,因為它們需要一個明確的查詢。

接不住的題目 慢、貴、難除錯

每次跑的路徑可能都不一樣,出錯的時候不容易重現。同一個問題問兩次,中間走的路可能不同。

嚴格說,第三種已經不太算是一種「檢索方法」 它是一個會自己做決定的 AI,檢索只是它手上的工具之一。把它跟前兩種並排比較,其實是拿使用工具的人跟工具在比。這個分別值得記住,因為它決定了你該用什麼心態評估它:你評估的是它的判斷力,不是它的檢索精度。

三種放在一起對照

把功能面的差別攤成一張表,比記三段文字快。

比較項目比相似度走關係AI 自己決定
它實際上在比什麼問題與段落的語意距離實體之間有沒有連線由 AI 判斷這一輪該查什麼
事前要準備什麼切塊、算向量、建索引抽實體、定關係、建圖前兩者至少要有一個,再加工具與規則
回答一題要幾次檢索一次一次(沿路徑展開)不固定,可能三五次
擅長的題型答案落在某一段要串多份文件、多跳問題本身還沒定形
接不住的題型跨文件彙整、版本新舊圖上沒建到的關係單純的事實查詢(殺雞用牛刀)
持續維護成本低(新資料重算即可)高(每批新資料都要更新圖)中(規則與工具要維護)
速度與費用最快最便宜中等最慢最貴
出錯時好不好查好查(看撈回哪幾段)好查(看走了哪條路徑)難查(每次路徑可能不同)

實務上這三種常常混著用

講成三種是為了說清楚機制,實際系統很少只用一種。常見的混法有三種:

  • 詞法加向量(混合檢索):關鍵字比對負責精準命中專有名詞,向量負責接住換句話說的問法,兩邊結果合併重排。要注意合併不必然更好,我自己那批測試裡,混合排序就沒有贏過單用詞法。
  • 先走關係再比相似度:先用知識圖譜把範圍縮到相關的那幾份文件,再在那個小範圍裡比相似度。這是 GraphRAG 實作常見的做法,圖負責縮範圍,向量負責找段落。
  • 上層放判斷,下層放前兩種:第三種本來就不是獨立的檢索方法,它是在前兩種上面加一層決定要用哪個、要不要再查一輪。
所以「用哪一種」這個問題,答案常常是「都用,但分工」 真正要決定的不是選哪一種技術,是哪一類題目走哪一條路。這也是下一節那組判斷順序在做的事。

怎麼選:一組可以照著走的判斷順序

既然是適用問題,判斷的起點就是題目本身,不是先挑技術。我自己的分法很簡單,照這個順序問下去:

先問自己是的話典型題目長什麼樣
這題的答案是不是落在某一份文件、某一段裡?用第一種(比相似度)找定義、找某次的數字、找某段話怎麼寫的
這題要不要把好幾個人、好幾個案子、好幾個時間點串起來看?用第二種(走關係)問題裡出現「總共」「前後」「這幾個之間」「誰跟誰」
我自己都還說不清楚要查什麼嗎?才用第三種(AI 自己決定)探索型的題目、要先釐清問題本身的題目
以上都不是,只是要一份明確的檔案?別用 RAG知道檔名就直接翻資料夾,比語意檢索快也準
順序反過來用會很痛苦 拿第三種去回答「我們的退貨政策寫在哪」,你會等三十秒、花十倍的成本,換到一個第一種零點五秒就能給你的答案。

我自己的知識庫怎麼跑這三種

講到這裡都還是原理。以下是我實際做的,包含它失手的地方。我的知識庫是一堆 Markdown 檔,放在 Obsidian 裡,累積了幾年。三種查法我都在用,各自管不同的問題。

第一種:兩顆本機向量索引

我在 2026 年 8 月建了兩顆索引,都跑在自己的電腦上(用 Ollama 跑 bge-m3 這個嵌入模型),資料不外送、也不用付 API 費用。

  • 主庫索引:收 286 份文章檔,切成 3,299 個片段。用途是「我明明覺得寫過這件事,但想不起來在哪」。
  • 官網索引:收 101 篇已上線的公開文章,每個片段都帶著公開網址。用途是官網 AI 客服,回答的時候直接附連結給訪客。

建完我做了一組盲測:隨機抽文章,用「不含標題詞」的口語問句,測系統能不能把原檔找回來。兩個結果值得講。

結果一:同一套技術,用在整理過的資料上跟用在原始筆記上,差距大到像兩個系統 官網那顆明顯高於主庫那顆。兩顆用同一個模型、同一套切塊方式,差別只在資料本身:官網文章每篇都有整理過的摘要、清楚的標題階層、一致的結構;主庫是原始筆記,什麼都有,同一件事可能用三種說法寫過。檢索品質的天花板是資料的整理程度,換更貴的模型拉不動它。
結果二:在我自己的語料上,詞法檢索贏過向量檢索 後來我用正式的 BM25 詞法檢索(就是把關鍵字比對做到位的那套演算法)在同一批題目上再測一次,它的命中率高於向量檢索,把兩者混合排序也沒有贏過純 BM25。所以我主庫現在是 BM25 當主力,向量退為兜底,只在詞法找不到的時候補上。
這裡刻意不放百分比 我在寫這篇的時候回頭重算了一次原始測試結果,發現工具的說明檔跟測試紀錄有兩處對不上,欄位可能標反了。數字在確認之前不對外引用,只寫我重算過、兩種算法下都成立的方向。這也是這類實測數據的通則:自己算過才寫,別人的說明檔(包括你自己上個月寫的)不算驗收。

第二個結果對「該用哪一種」很有意義:向量檢索不是必然比關鍵字強。中文、專有名詞多、用詞穩定的語料,詞法檢索常常表現很好,而且不用裝模型、不用建庫、冷啟動快。要在自己的資料上實測才知道。

整理這一關本身也是一整套工夫

第二種:標籤連結法當關係層

我沒有跑真正的自動化知識圖譜。我用的是標籤連結法:一份受控詞彙字典(人名、主題、專案、文件用途四個維度),每份檔案掛標籤,標籤之間用 wiki-link 互連。

要查「這個人最近跟哪些案子有關」,走的是這層,不是向量。因為向量認不得「這兩份文件講的是同一個人」,它只認得字面意思像不像。

代價很實在:字典要維護,寫任何標籤前都要先對字典,不能憑印象亂掛。我為此還在流程裡加了機械檢查,不然一定會漏。

第三種:上層的路由規則

我的知識庫有一份主規則檔,裡面寫著什麼情況該用哪種查法。AI 接手工作的時候先讀那份,再決定這次要用檔名找、用標籤走、還是用向量查。

這就是最上面那層的「自己決定」。它不是什麼高深的架構,本質上是一份用白話寫清楚的判斷規則,讓 AI 照著選路。

三層加起來的效果是:大部分的問題在第一層就解決了,第二層處理關係題,第三層只在真的模糊的時候才啟動。這也是我建議的順序,先把便宜的做好,不要一開始就衝最複雜的那個。

它保證什麼、不保證什麼

誠實講清楚邊界,免得期待落空。

RAG 能保證的 AI 回答的時候,手上有你的資料可以參考,不是純粹憑印象講。
RAG 不保證的
  • 不保證撈得完整。我自己那顆主庫索引,盲測時就有相當比例的題目撈不回原檔,而那些資料明明在庫裡。撈不完整是常態,不是故障。
  • 不保證撈到的是對的版本。舊版跟新版語意一樣像,它分不出來,除非你在資料本身標清楚。
  • 不保證 AI 會照著撈到的東西講。它拿到片段之後還是有可能自己補話。要防這個得靠另一層檢查,跟 RAG 是兩件事。
  • 不保證省下整理資料的工夫。資料越亂,RAG 的效果掉得越快,因為它挑片段的依據就是那些亂資料本身。

你可以怎麼開始

不需要一上來就建索引。照這個順序做,成本由低到高:

STEP 1 先確認你的資料能不能被查

把一份代表性的資料丟給任何一個 AI,用下面那段提示詞跑一次,看它能不能答得出來。

STEP 2 先把命名跟結構做好

檔名寫清楚日期跟主題、文件裡有標題階層、同一件事統一用詞。這三件事做完,就算不建索引,AI 的表現也會明顯變好。

STEP 3 資料大到翻不動了,再上索引

到這個階段再回頭看上面三種查法,你會很清楚自己需要哪一種。多數人卡住的地方其實在第二步。

第一步用的檢查提示詞

直接複製,把你的資料貼在後面:

我要把這批資料交給 AI 查詢使用。 請你只根據我貼上的這份內容,回答下面四個問題,不要幫我美化: 1. 這份資料在講什麼?用兩句話說。 2. 如果我之後要問「這裡面提到的人、時間、金額、決議」, 你從這份內容裡答得出來嗎?答不出來的是哪幾類? 3. 這份內容裡有沒有同一件事用不同說法講了好幾次?列出來。 4. 有沒有哪些段落,抽出來單獨看會看不懂在講什麼? (例如全篇都是「這個」「那時候」而沒有寫清楚是誰、是什麼) 最後給我一句話:這份資料現在適不適合直接交給 AI 查詢。

第 4 題是重點。RAG 是切成片段來查的,一段抽出來看不懂,AI 拿到那段也一樣看不懂。

常見的坑

  • 以為丟進去 AI 就會全部看完。它沒有。它每次只讀被撈出來的那幾段。
  • 以為換更強的模型就會查得更準。查得準不準是檢索那層的事,跟模型聰不聰明是兩件事。
  • 一開始就要做知識圖譜。關係圖的維護成本是持續性的,資料量還不大的時候,投報率很低。
  • 忘記可以直接用檔名找。知道檔案叫什麼的時候,語意檢索是繞遠路。
  • 拿 RAG 當資料整理的替代品。順序是反的,整理是 RAG 的前提。

收尾

三種查法,各自的重點一句話:

比相似度

答案落在某一頁的問題交給它,快又便宜。

走關係

要串好幾份文件的問題交給它,代價是那張圖要一直維護。

AI 自己決定

連要查什麼都還不確定的問題交給它,代價是慢、貴、難除錯。

三種共同的前提只有一個 資料要先放得好,AI 才查得到。這件事目前還是得我們自己來,而且它剛好也是唯一不會被下一代模型淘汰的那部分投資。
知識管理知識庫AI應用工具操作

想把自己的資料整理成 AI 查得到的知識庫?

我每月固定舉辦兩場免費線上講座,分享善用 AI 作為思考夥伴、把知識與經驗整理成提示詞、技能包、知識庫的實戰方法。對知識管理、AI 知識庫有興趣,歡迎先從社群開始。

免費線上講座

每個月兩場免費講座,場次會先在社群公布。

點我加入 Line 社群 ↗