iT邦幫忙

2026 iThome 鐵人賽

DAY 3
0
AI Engineering

用 Hermes Agent 變成企業同事的 30 天系列 第 13

D10 · QMD 是衍生索引,不是第二套知識庫

  • 分享至 

  • xImage
  •  

前一天我把 Company Brain 的四層知識架構攤開來:L1 是 Hermes 的長期記憶,L2 是 Wiki,L3 是 Obsidian Vault,L4 則是 QMD。

今天要談的是最容易被誤解的一層:QMD。

很多人第一次看到搜尋索引,會直覺把它當成另一個知識庫。資料可以被搜尋、可以回傳段落、甚至還有自己的 SQLite 資料庫,看起來很像「另一份內容」。但在我的系統裡,這個理解是錯的。

QMD 的定位只有一句話:它是 Obsidian Markdown 的衍生搜尋層,不是第二套可獨立編輯的知識庫。

為什麼要把這件事講清楚?因為一旦兩邊都能修改,系統就會出現「到底哪份才是真的」的問題。Agent 查到的內容可能和人打開 Obsidian 看到的內容不同;有人修了索引裡的資料,下一次重建索引又被覆蓋;更麻煩的是,錯誤不一定立刻出現,而是在幾週後才變成難以追查的失憶。

我的資料流

在這個架構裡,原始資料只有一份:Obsidian Vault 裡的 Markdown。

人或 Agent 要新增知識時,先依照分類、查重與關聯規則整理成 Markdown。這份 Markdown 才是需要被審閱、版本控制與長期保存的內容。QMD 接著讀取同一批 Markdown,建立 SQLite、BM25 與 embedding 等索引,讓查詢更快、更容易找到語意相近的內容。

因此資料流是單向的:

Markdown 原始資料 → QMD 索引 → 查詢結果

不是兩套資料互相同步,也不是 QMD 內容可以脫離 Markdown 獨立維護。

SQLite、BM25 與 embedding 各自做什麼

SQLite 可以保存檔案、段落、metadata 與索引所需的結構化資料。它讓搜尋層能快速定位文件和內容片段,但它保存的是對原始 Markdown 的衍生表示。

BM25 是文字搜尋方法,適合找關鍵字、專有名詞與精確片語。例如搜尋某個 cron 名稱、設定欄位或錯誤訊息時,字面匹配往往比語意相似更可靠。

Embedding 則把文字轉成向量,讓系統能找到「意思相近、用字不同」的段落。使用者不一定記得原文寫的是「認證自動修復」,可能只輸入「登入過期怎麼處理」,語意搜尋仍有機會找到相關 SOP。

三者的角色不同,但都只是為了改善查詢,不會改變哪一份資料是權威來源。

一次同源驗證

我曾經做過一個很簡單、但很重要的檢查:統計 Vault 裡的 Markdown 數量,再和 QMD 顯示的 indexed 數量比較。

當時的結果是 329 個 Markdown 對應 329 個 indexed。這個數字不能證明每一個字都正確,但可以先排除一大類問題:有檔案完全沒有進入搜尋層。

更完整的驗證還要抽查檔案內容、路徑與修改時間,確認索引沒有指向錯誤位置,也要在修改一份 Markdown 後重新查詢,確認新內容能被找到。

驗證不只是看「索引完成」

索引工具顯示成功,不代表 Company Brain 已經正確。至少要驗證三件事:

一、數量一致:原始 Markdown 與 indexed 文件數量能對上。

二、內容可回讀:用一個不容易混淆的句子搜尋,查詢結果能回到正確文件與段落。

三、更新可追蹤:修改原始 Markdown 後重建或更新索引,查詢結果反映新內容;舊內容不應在沒有標示的情況下繼續被當成最新規則。

如果只驗證第二層,Agent 可能「搜尋得到」,但搜尋到的是舊版本。如果只驗證第一層,則可能只是 329 個錯誤檔案被成功索引。

這個邊界也限制了 Agent 的權限

查詢 Agent 可以讀取 QMD,透過它快速找到相關知識;需要寫入時,應該回到 Markdown 原始資料層,依照文件治理規則處理。QMD 不應被當成可以直接編輯的工作區。

這會讓流程多一步,但換來的是可追溯性:誰在什麼時間修改了哪一份原始文件,內容變更前後是什麼,都可以在 Markdown 與版本記錄中查到。索引壞了可以重建,原始資料不會因此消失。

真正的取捨

把 QMD 當成衍生層,並不是否定索引的價值。相反地,只有先把權威來源和加速層分開,搜尋系統才可以放心演進。未來可以更換 BM25 參數、embedding 模型,甚至換掉整個索引工具,而不必搬遷公司知識本身。

這也是資料架構裡很常見的原則:可重建的 cache、index、materialized view,不應該和 source of truth 混為一談。

今天的結論

如果你正在替 Agent 加上知識庫,先回答一個問題:哪一份資料是唯一權威來源?

我的答案是 Obsidian Vault 的 Markdown。QMD 負責讓它更容易被找到,不負責取代它。

這條界線看似只是命名和目錄規則,實際上決定了系統能不能長期維護。當資料量從幾十份增加到幾百、幾千份時,最怕的不是搜尋慢,而是每個人都以為自己手上的那份才是真的。

下一篇 D11:外部文章、X、官網與 Google Drive 文件如何經過分類、查重、建關聯,最後進入可執行的知識庫。


上一篇
D9 · 公司大腦(Company Brain):知識庫要長在哪
下一篇
D11 · 外部研究進知識庫:來源保留與 metadata
系列文
用 Hermes Agent 變成企業同事的 30 天25
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言