與一個已上線生產環境一年的純 RAG 系統坐下來,試著問它四個問題。「你為什麼這麼說?」模型針對客戶的合約續約日期給出了自信的回答,但回溯到源頭條款的痕跡並不存在。「重新驗證這個主張——來源變了。」合約上週進行了修訂。從中推導出的每個事實都變得可疑。你無法找到它們,因為它們不知道自己來自哪份文件。「在這兩個互相矛盾的事實之間做決定。」一個說 Alex 在 Google 工作,另一個說在 Stripe。兩者都沒有信心分數或來源時間戳。寫入的時間與證據的新舊程度毫無關係。「歸因這個幻覺。」模型說會議是在週四。週四根本沒有會議。你無法判斷是 LLM 虛構了日期,還是記憶中的錯誤數據誤導了它。
這四個失敗源於同一個原因。它們各自都缺少一個欄位:一個來源識別碼、一個捕獲時間戳、一個信心分數、一個回覆引用日誌。每個欄位在寫入時只花費幾個位元組。沒有它們的代價是無限的:每個主張都無法審計,每個矛盾都無法解決,每個幻覺都無法追溯。
橫跨 19 個系統,這個模式是一致的。最強大的實作對待溯源的方式,就像法院對待證據一樣——每個主張都帶著完整的監管鏈到來,否則它根本不會出現。最弱的系統則完全沒有,並且每當生產環境出問題時,都要為此付出代碼。這篇文章將探討語料庫中浮現的六個溯源層級、區分它們的三個實作成熟度層級,以及從一開始就正確構建它的實際成本。
六個層級,一個紀律
逐一審視 19 個系統,可以清楚區分出六個不同的溯源層級。它們並非層級結構,而是彼此正交的。一個系統可以擁有來源溯源,但沒有因果溯源。它可以有版本控制,但沒有信心評分。最強大的實作涵蓋全部六個。最弱的則一個也沒有。
識別 回答「到底是哪個事實?」這個問題。OpenContext 在攝入時為每一塊上下文鑄造 UUID,並將其作為 Agent 可以直接在回覆中使用的引用方案公開。這個識別碼能夠在重新命名、移動和重組後存活,因為它綁定的是內容,而非路徑。mem9 在每一行上都攜帶一個穩定的記憶體 ID,加上一個帶有 If-Match 並發保護的明確版本計數器。沒有識別溯源,當事情出錯時,你甚至無法命名你所談論的對象。
來源 回答「它從哪裡來?」這個問題。Hindsight 在每個觀察上記錄來源類型和識別碼,因此系統可以回答哪個對話或文件產生了某個特定事實。mem9 在每一行上都攜帶來源、Agent ID 和 Session ID。Supermemory 將文件 ID 與記憶一起存儲。沒有來源溯源,當來源發生變化時,你就無法串聯更新,因為你不知道哪些事實依賴於它。
因果 回答「哪個 Agent 步驟使用了這個?」這個問題。Hindsight 在一個帶有完整檢索上下文的觀察層中捕獲每個被檢索並使用的事實——哪個檢索器將其浮現出來、它達到了什麼排名、以及 Agent 是否實際消費了它。Moraine 將每個追蹤步驟視為自己的溯源記錄,使 Agent 的整個執行過程可以作為一系列可尋址來源的事件來恢復。沒有因果溯源,你無法區分「系統檢索了這個事實」和「Agent 使用了這個事實來產生那個回覆」。
捕獲信心 回答「我們寫下它時有多確定?」這個問題。Graphify 在其知識圖譜中為每條邊標記三級捕獲信心:CONFIRMED 用於確定性提取,LIKELY 用於高信心的 LLM 推理,AMBIGUOUS 用於不確定的主張。AMBIGUOUS 邊緣會作為「知識缺口」浮現出來供人工審查,而不是被默默地當作事實。Hindsight 在每個觀察上都攜帶一個信心分數,該分數會透過其新鮮度生命週期隨時間衰減——新鮮的觀察被信任,陳舊的則被降權或淘汰。mem9 首先在影子模式下運行近似重複檢測,記錄分數但不採取行動,直到工程師根據真實數據校準閾值。沒有捕獲信心,不確定的事實和確定的事實會以相同的權重被檢索,Agent 無法區分一個可靠的說法和一個有根據的猜測。
版本化 回答「我們之前相信什麼?」這個問題。Supermemory 將記憶視為一個帶有類型化邊緣(更新、擴展、衍生)的版本化 DAG,為每個信念賦予提交歷史。mem9 將寫入路徑拆分:原地變更用於人工編輯,追加並歸檔用於 LLM 驅動的重寫(新內容在語義上替換舊內容)。Tolaria 讓 Git 完全承擔版本歷史,將單行差異視為面向用戶的一級產物。沒有版本化溯源,你無法回退到系統在週二相信的內容,因為舊的信念被刪除而非歸檔。
相互關聯 回答「還有哪些其他事實共享這個起源?」這個問題。llm-wiki 在其四信號相關性圖譜中,將來源重疊的權重置於直接鏈接之上——來自同一份原始文件的兩個頁面被認為比具有直接 wiki 鏈接的兩個頁面關係更密切,因為 LLM 在交叉鏈接上不可靠,但來源的前置資料是機械維護的。EdgeQuake 在整個語料庫中累積實體和關係上的來源 ID,因此來自不同來源的同一實體的反覆提及會加強其溯源權重。second-brain 將來源作為其詞彙索引複合鍵的一部分,允許單個文檔由多個管道獨立索引。沒有相互關聯溯源,你無法回答「顯示此系統中來自同一對話的所有內容」或「我們從那份文件中還學到了什麼?」
這六個層級是正交的,但它們相互加強。沒有識別層級,來源溯源是無用的(你需要先命名事實,然後才能追溯它)。沒有信心層級,版本化會更弱(你知道編輯的譜系,但不知道系統對任何編輯有多確定)。相互關聯查詢依賴於來源首先存在。承載所有六個層級的系統,其記憶不會默默腐敗。
三個實作成熟度層級
根據溯源存在的層級以及它在讀取時能做些什麼,語料庫可分為三個層級。
第 1 層是無溯源 RAG,大多數團隊的起點。平坦的向量儲存,包含內容和嵌入向量。沒有來源欄位、信心分數或版本歷史。當檢索到一個事實時,你得到的是文字和一個相似度分數。你無法追溯它來自哪裡、系統對它有多確定、或者它是否已被取代。所有從這裡起步的系統最終都隨著時間推移轉向了第 2 層。
第 2 層在行層級上攜帶溯源。來源 ID、信心、版本——全部作為欄位與事實並存。mem9 位於此處,在每一行上都有來源、Agent ID、Session ID 和版本。Supermemory 的版本化 DAG 是第 2 層結構。Graphify 的三級邊信心是第 2 層紀律。溯源可用於查詢,但它不會自動修飾檢索結果。你需要編寫使用它的查詢。
第 3 層在用於讀取的結果上修飾溯源上下文,呼叫者無需請求。Hindsight 是這裡的參考——每個檢索到的事實都附帶其來源類型、信心分數、新鮮度狀態和每個檢索器的排名。消費結果的 Agent 將溯源視為事實的一部分,而不是一個單獨的查找。mem9 的來源會話修飾位於第 2 層和第 3 層之間,在第 2 層模式上嫁接讀取時上下文。
遷移是單向的。沒有系統從第 3 層開始並決定移除溯源紀律。這些欄位一旦存在,就會證明其價值。如果你今天正在設計一個記憶系統,問題不是「我需要溯源嗎?」,而是「我想從哪個層級開始?要知道,我選擇的層級之上的每一個層級,事後達到都比現在內建更難。」
警示案例:已計算但被丟棄
Understand-Anything 說明了當信心的基礎存在,但記錄它的欄位卻不存在時會發生什麼。該系統區分確定性邊緣(由專案掃描器從原始碼檔案解析出來的)和推斷邊緣(由 LLM 在語義分析期間猜測出來的)。這個資訊是真實且有意義的——一個結構性的導入邊緣應該比非代碼的推斷具有更高的信心。但兩者都以權重 0.7 存儲,在圖譜中完全相同。信心信號在寫入時被計算,然後在持久化之前被丟棄。
添加一個信心欄位將是一個小變更,但會帶來巨大的資訊品質回報。系統已經知道哪些邊緣是可靠的,哪些是猜測。它只是沒有在關鍵的地方——在稍後會被檢索的行上——記錄這個區別,而這時 Agent 需要區分它們。這個模式在語料庫中的多個系統中出現:資訊在寫入時可用,捕獲成本低,然後因為沒有人添加那個欄位而丟失。
正確構建它的實際成本
溯源需要花費位元組。一個來源 ID、一個信心分數、一個版本計數器——每個都在每行中增加幾個欄位。在規模化時這很重要,但它遠不及生產環境中出錯時你無法追溯系統為何給出錯誤答案的代價來得大。
計算成本比預期的要低。信心評分通常需要在寫入時額外進行一次 LLM 調用(或對結構性事實使用確定性啟發式方法),這會攤銷到後續的每次讀取中。來源追蹤除了記錄一個已經存在的識別碼外,幾乎沒有成本。版本化只需要每寫入一次增加一個欄位或一次追加操作,而不是完整的快照。Hindsight 的觀察層增加了與檢索並使用的事實數量成比例的存儲空間,但只記錄 Agent 實際消費的內容,而不是它看到的所有內容。
運營成本才是真正的問題。第 3 層的修飾意味著每次檢索時有更多數據流動,這會略微增加上下文視窗的使用量和回應延遲。實現這一功能的系統通過保持修飾簡潔來處理——一個來源類型枚舉、一個信心浮點數、一個新鮮度狀態——而不是在線嵌入完整的溯源樹。Agent 獲得了足夠的資訊來進行區分,而不會被元數據淹沒。
最強大實作的共同點
整個語料庫中的典範值得重申,因為沒有兩個解決方案是在處理問題的同一層面:
OpenContext 鑄造能夠在任何文件系統重組後存活的 UUID,並將其作為 Agent 可以直接使用的引用方案公開。mem9 在每一行上攜帶來源、Agent ID、Session ID,在每次更新時攜帶版本,並使用由明確預算控制的來源會話上下文來修飾搜尋結果。Supermemory 將記憶視為一個帶有類型化邊緣的版本化 DAG,為每個信念賦予提交歷史。Hindsight 在一個帶有完整來源溯源、演化歷史和每個檢索器排名的觀察層中,捕獲每個被檢索並使用的事實。Graphify 為每條邊標記三級捕獲信心,將不確定的邊緣浮現出來供人工審查,而不是將其視為事實。
統一的觀察結果很簡單:溯源不是元數據,它是事實的一部分。以這種方式對待它的系統,其記憶不會默默腐敗,其矛盾可以被裁決,其幻覺可以被追溯,其信念歷史可以在沒有預先預測到需求的情況下,回退到過去的任何時間點。
而那些沒有這樣做的系統,其用戶最終會學到,他們一直信任的記憶從一開始就是一座孤島。
溯源是你在寫入時能買到的最便宜的保險。這項紀律要求你在發現自己需要它之前就買下它。
覺得這篇文章有用嗎?請分享,這樣其他人也可能會受益 :)
下一篇將探討混合檢索和 RRF,這種模式讓你結合向量和關鍵字信號,而不會讓其中一個淹沒另一個——當溯源告訴你一個事實是可靠的,但僅靠相關性會將其埋沒時,這一點至關重要。那篇文章即將推出。





