這篇在講什麼
你把整個資料夾丟給 AI,它回答的時候並沒有全部看過一遍。它只是挑了幾段最像你問題的文字,拿那幾段去回答。這個「回答前先查一輪」的動作有名字,叫 RAG。查法目前主流有三種:比相似度、走關係、讓 AI 自己決定要查幾輪。選錯了就會出現「資料明明在裡面,AI 就是講不出來」的狀況。這篇用白話講清楚三種各自在做什麼,給你一組判斷順序,並攤開我自己知識庫裡三種同時在跑的實際做法。
- 你已經把資料丟給 AI 了,它有時候答得很準,有時候明明資料就在裡面卻說找不到,你不知道問題出在哪。
- 你聽過 RAG、向量資料庫、知識圖譜這些詞,但沒有人用你聽得懂的話講過它們差在哪。
- 你想幫自己或公司建一個 AI 查得到的知識庫,正在猶豫要先做什麼、值不值得花那個力氣。
- 一組可以直接照著判斷的順序:什麼題目用哪一種查法,不用每次都問人。
- 一張三種功能對照表,以及我自己知識庫的真實做法:兩顆本機向量索引、一套標籤結構、上層一份路由規則。
- 一段可以複製的提示詞,用來檢查你手上的資料到底適不適合被 AI 查。
一個具體問題
你把三十份會議記錄丟進 AI,問它:「這個客戶前後總共答應過我們什麼?」
它給你一段看起來很順的回答,但漏了兩件事。你翻回原檔,那兩件事白紙黑字寫在第七份跟第二十四份裡面。
你會直覺覺得是 AI 不夠聰明。實際上多半是這樣:它根本沒讀到那兩份。
因為它讀不完。三十份會議記錄可能有十幾萬字,塞不進一次對話。所以中間有一個環節,負責在你問完問題之後、AI 回答之前,先去這堆資料裡挑出幾段丟給它。你的問題答得好不好,很大一部分取決於這個環節挑得準不準。
白話定義:RAG 到底是什麼
RAG 的全名是 Retrieval-Augmented Generation,中文常翻成檢索增強生成。名字很嚇人,動作其實很單純:
沒有 RAG 的 AI,回答時憑的是訓練時看過的東西加上你當下貼給它的內容。有 RAG 的 AI,多了一個去你的資料庫翻找的動作。
舉個例子。你問一位很博學的顧問「我們公司去年第三季的退貨率是多少」,他再博學也答不出來,因為那份資料在你的抽屜裡。RAG 做的事情,就是在他開口之前,先跑去抽屜幫他抽出相關的那幾張紙。
所以有兩件事會決定答案的品質:抽屜裡的東西有沒有整理好,還有那個跑腿的人會不會抽。接下來講的三種查法,講的都是「那個跑腿的人怎麼抽」。
- LLM、RAG、Agent、MCP 哪個重要?用人體比喻看懂這四個怎麼疊起來 那篇用同一個問題貫穿四層,講清楚這四個名詞怎麼疊起來、你手上的 AI 缺哪一塊。這篇只鑽 RAG 這一層,把它的三種查法拆到能照著選
三種查法
第一種:比相似度(一般說的 RAG)
流程是這樣:
- 事前把你的資料切成一段一段,每段轉成一串數字(這串數字叫向量,用來代表這段文字的意思)。
- 你提問的時候,問題也轉成一串數字。
- 系統去找數字最接近的幾段,通常抓前三到前十段。
- 把這幾段連同你的問題一起交給 AI,讓它照著回答。
為什麼要轉成數字?因為這樣可以做到「意思接近就找得到」,不需要用字一模一樣。你問「怎麼讓客戶願意先付訂金」,資料裡寫的是「預收款的溝通方式」,關鍵字搜尋撈不到,換成向量就有機會撈到。
資料丟進去就能用,適合答案就落在某一頁的問題。找定義、找某次的數字、找某段話怎麼寫的,都屬於這類。
答案分散在好幾份文件的時候,它會撈回一堆各自獨立的段落,彼此之間的關係它不知道。前面那個「客戶總共答應過什麼」就是典型會失敗的題目。另一個常被忽略的限制:它只認得意思像不像,不認得重不重要。一份三年前作廢的舊版報價單,語意上一樣像,它一樣會撈回來。
第二種:走關係(知識圖譜、GraphRAG)
流程不一樣:
- 事前先把資料裡的實體抓出來,例如人名、公司名、專案名、產品名。
- 建立它們之間的關係,例如「A 公司 → 負責人是 → B」「B → 參與過 → C 專案」。
- 你提問的時候,先認出問題裡有哪些實體,再沿著它們之間的線走。
- 把走過的那一整串脈絡交給 AI。
這一種的判斷依據是實體之間的關係,跟字面像不像無關。
所謂多跳,就是「要先知道 A 才能查到 B」的那種問題。「這個人跟我們哪些案子有關,那些案子又牽到誰」用第一種查法很難答完整,用這種就是順著線走過去。
要嘛你手動建,要嘛用 AI 先跑一輪把實體跟關係抽出來,然後每次有新資料進來都要再維護一次。這是持續成本,不是一次性投資。
我自己知識庫用的標籤連結法,走的就是這個精神:受控詞彙當節點,wiki-link 當關係線。差別在於走那張圖的是人跟 AI 讀規則,不是自動化的圖遍歷。
- 資料越堆越多,AI 反而找不到怎麼辦?:標籤連結法 Tag Wiki 四個維度怎麼分、受控詞彙怎麼維護、為什麼幾乎不用 YAML。這篇談的是三種查法各自在做什麼,那篇談的是關係那一層要怎麼動手建起來
第三種:讓 AI 自己決定(Agentic RAG)
前面兩種都是固定流水線:問題進來,照既定路線查一輪,交出去。第三種是加了一層判斷:
- AI 先想這一題要不要查、該查什麼。
- 決定去哪裡查,可能是向量庫、可能是知識圖譜、可能是上網、可能是叫某個工具。
- 查回來以後自己評估:這些證據夠不夠回答?
- 不夠就換個角度再查一輪,夠了才開始寫答案。
關鍵不在它能用比較多工具,在於它自己決定要不要查、查幾次、答案夠不夠好。
你連自己要查什麼都還不確定,前兩種就沒辦法幫你,因為它們需要一個明確的查詢。
每次跑的路徑可能都不一樣,出錯的時候不容易重現。同一個問題問兩次,中間走的路可能不同。
三種放在一起對照
把功能面的差別攤成一張表,比記三段文字快。
| 比較項目 | 比相似度 | 走關係 | AI 自己決定 |
|---|---|---|---|
| 它實際上在比什麼 | 問題與段落的語意距離 | 實體之間有沒有連線 | 由 AI 判斷這一輪該查什麼 |
| 事前要準備什麼 | 切塊、算向量、建索引 | 抽實體、定關係、建圖 | 前兩者至少要有一個,再加工具與規則 |
| 回答一題要幾次檢索 | 一次 | 一次(沿路徑展開) | 不固定,可能三五次 |
| 擅長的題型 | 答案落在某一段 | 要串多份文件、多跳 | 問題本身還沒定形 |
| 接不住的題型 | 跨文件彙整、版本新舊 | 圖上沒建到的關係 | 單純的事實查詢(殺雞用牛刀) |
| 持續維護成本 | 低(新資料重算即可) | 高(每批新資料都要更新圖) | 中(規則與工具要維護) |
| 速度與費用 | 最快最便宜 | 中等 | 最慢最貴 |
| 出錯時好不好查 | 好查(看撈回哪幾段) | 好查(看走了哪條路徑) | 難查(每次路徑可能不同) |
實務上這三種常常混著用
講成三種是為了說清楚機制,實際系統很少只用一種。常見的混法有三種:
- 詞法加向量(混合檢索):關鍵字比對負責精準命中專有名詞,向量負責接住換句話說的問法,兩邊結果合併重排。要注意合併不必然更好,我自己那批測試裡,混合排序就沒有贏過單用詞法。
- 先走關係再比相似度:先用知識圖譜把範圍縮到相關的那幾份文件,再在那個小範圍裡比相似度。這是 GraphRAG 實作常見的做法,圖負責縮範圍,向量負責找段落。
- 上層放判斷,下層放前兩種:第三種本來就不是獨立的檢索方法,它是在前兩種上面加一層決定要用哪個、要不要再查一輪。
怎麼選:一組可以照著走的判斷順序
既然是適用問題,判斷的起點就是題目本身,不是先挑技術。我自己的分法很簡單,照這個順序問下去:
| 先問自己 | 是的話 | 典型題目長什麼樣 |
|---|---|---|
| 這題的答案是不是落在某一份文件、某一段裡? | 用第一種(比相似度) | 找定義、找某次的數字、找某段話怎麼寫的 |
| 這題要不要把好幾個人、好幾個案子、好幾個時間點串起來看? | 用第二種(走關係) | 問題裡出現「總共」「前後」「這幾個之間」「誰跟誰」 |
| 我自己都還說不清楚要查什麼嗎? | 才用第三種(AI 自己決定) | 探索型的題目、要先釐清問題本身的題目 |
| 以上都不是,只是要一份明確的檔案? | 別用 RAG | 知道檔名就直接翻資料夾,比語意檢索快也準 |
我自己的知識庫怎麼跑這三種
講到這裡都還是原理。以下是我實際做的,包含它失手的地方。我的知識庫是一堆 Markdown 檔,放在 Obsidian 裡,累積了幾年。三種查法我都在用,各自管不同的問題。
第一種:兩顆本機向量索引
我在 2026 年 8 月建了兩顆索引,都跑在自己的電腦上(用 Ollama 跑 bge-m3 這個嵌入模型),資料不外送、也不用付 API 費用。
- 主庫索引:收 286 份文章檔,切成 3,299 個片段。用途是「我明明覺得寫過這件事,但想不起來在哪」。
- 官網索引:收 101 篇已上線的公開文章,每個片段都帶著公開網址。用途是官網 AI 客服,回答的時候直接附連結給訪客。
建完我做了一組盲測:隨機抽文章,用「不含標題詞」的口語問句,測系統能不能把原檔找回來。兩個結果值得講。
第二個結果對「該用哪一種」很有意義:向量檢索不是必然比關鍵字強。中文、專有名詞多、用詞穩定的語料,詞法檢索常常表現很好,而且不用裝模型、不用建庫、冷啟動快。要在自己的資料上實測才知道。
- AI 改了十幾次還是有錯,怎麼辦?:資料清理只是第一關,長文件審不出錯的三層設計 掃描 PDF 缺字跳行、逐字稿錯字口水話這些成本怎麼處理。這篇講的是資料整理好之後怎麼被查到,那篇講的是資料要怎麼先整理到能用
第二種:標籤連結法當關係層
我沒有跑真正的自動化知識圖譜。我用的是標籤連結法:一份受控詞彙字典(人名、主題、專案、文件用途四個維度),每份檔案掛標籤,標籤之間用 wiki-link 互連。
要查「這個人最近跟哪些案子有關」,走的是這層,不是向量。因為向量認不得「這兩份文件講的是同一個人」,它只認得字面意思像不像。
代價很實在:字典要維護,寫任何標籤前都要先對字典,不能憑印象亂掛。我為此還在流程裡加了機械檢查,不然一定會漏。
第三種:上層的路由規則
我的知識庫有一份主規則檔,裡面寫著什麼情況該用哪種查法。AI 接手工作的時候先讀那份,再決定這次要用檔名找、用標籤走、還是用向量查。
這就是最上面那層的「自己決定」。它不是什麼高深的架構,本質上是一份用白話寫清楚的判斷規則,讓 AI 照著選路。
三層加起來的效果是:大部分的問題在第一層就解決了,第二層處理關係題,第三層只在真的模糊的時候才啟動。這也是我建議的順序,先把便宜的做好,不要一開始就衝最複雜的那個。
它保證什麼、不保證什麼
誠實講清楚邊界,免得期待落空。
- 不保證撈得完整。我自己那顆主庫索引,盲測時就有相當比例的題目撈不回原檔,而那些資料明明在庫裡。撈不完整是常態,不是故障。
- 不保證撈到的是對的版本。舊版跟新版語意一樣像,它分不出來,除非你在資料本身標清楚。
- 不保證 AI 會照著撈到的東西講。它拿到片段之後還是有可能自己補話。要防這個得靠另一層檢查,跟 RAG 是兩件事。
- 不保證省下整理資料的工夫。資料越亂,RAG 的效果掉得越快,因為它挑片段的依據就是那些亂資料本身。
你可以怎麼開始
不需要一上來就建索引。照這個順序做,成本由低到高:
把一份代表性的資料丟給任何一個 AI,用下面那段提示詞跑一次,看它能不能答得出來。
檔名寫清楚日期跟主題、文件裡有標題階層、同一件事統一用詞。這三件事做完,就算不建索引,AI 的表現也會明顯變好。
到這個階段再回頭看上面三種查法,你會很清楚自己需要哪一種。多數人卡住的地方其實在第二步。
第一步用的檢查提示詞
直接複製,把你的資料貼在後面:
第 4 題是重點。RAG 是切成片段來查的,一段抽出來看不懂,AI 拿到那段也一樣看不懂。
常見的坑
- 以為丟進去 AI 就會全部看完。它沒有。它每次只讀被撈出來的那幾段。
- 以為換更強的模型就會查得更準。查得準不準是檢索那層的事,跟模型聰不聰明是兩件事。
- 一開始就要做知識圖譜。關係圖的維護成本是持續性的,資料量還不大的時候,投報率很低。
- 忘記可以直接用檔名找。知道檔案叫什麼的時候,語意檢索是繞遠路。
- 拿 RAG 當資料整理的替代品。順序是反的,整理是 RAG 的前提。
收尾
三種查法,各自的重點一句話:
答案落在某一頁的問題交給它,快又便宜。
要串好幾份文件的問題交給它,代價是那張圖要一直維護。
連要查什麼都還不確定的問題交給它,代價是慢、貴、難除錯。
想把自己的資料整理成 AI 查得到的知識庫?
我每月固定舉辦兩場免費線上講座,分享善用 AI 作為思考夥伴、把知識與經驗整理成提示詞、技能包、知識庫的實戰方法。對知識管理、AI 知識庫有興趣,歡迎先從社群開始。
每個月兩場免費講座,場次會先在社群公布。
點我加入 Line 社群 ↗