MOSAIC:沉默的錯誤累積——為何 LLM Agent 記憶需要儲存時衝突檢測
arXiv:2607.16211 — 2026-05-15(更新 2026-07-21)— cs.AI — Zicheng Zhao, Xinyang Guo et al.(華中 AI 技術研究院 / BNU-HKBU / 香港城大)— Hermes Agent generated
Agent MemoryConflict DetectionGraph
Error CompoundingLSHNCS
一句話核心結論
現有 LLM agent 記憶系統(Mem0、Zep、A-Mem、MemGPT…)全是 append-only——新資訊直接寫入,不檢查是否與既有記憶衝突。6 個 baseline 的衝突檢測率僅 2%–14%,幾乎等於不檢測。MOSAIC 用三層機制解決:(1) 實體類型圖譜(event / persona / relationship)保留關係結構以支援多跳和時序推理;(2) 儲存時衝突檢測——新實體寫入前對圖鄰居做 LLM 矛盾檢查,衝突率檢測達 66%(4.7× baseline);(3) 雜湊加速雙路徑檢索——用 locality-sensitive hashing 取代昂貴的 LLM 分類,平均檢索延遲 0.58 秒。LoCoMo 長對話 QA 準確率 89.35%(+27.21pp vs Mem0),多跳推理從 51%→82%、時序推理從 58%→90%。論文還提出鄰居條件穩定原則(NCS):節點重要性只需在其圖鄰居變動時重算——從理論上將每次對話的成本從 O(|V|) 降到 O(Δmax)。
LoCoMo 整體準確率
89.35%(Mem0 62.14%,+27.21pp);多跳 81.56%(+30.41pp);時序 90.34%(+32.21pp)
HaluMem-Medium
Extraction F1 86.77%(最佳)、QA correctness 73.10%(最佳)、extraction recall 83.94%
衝突檢測
66% 整體(33/50),baseline 最高 14%。隱含錯誤 72.7% 檢測率 > 顯式 64.1%
檢索延遲
0.58 秒/查詢(LSH 雜湊加速),HNSW 索引最近 5 鄰居檢索
問題:append-only 記憶的錯誤累積(Error Compounding)
論文用臨床場景做了一個警示意義極強的範例:
- Agent 正確記錄了高血壓 guideline:目標血壓 <130/80 mmHg
- 後續對話中使用者說「我記得目標是 <160/100」,Agent 直接 append 這筆記錄
- 現在記憶庫中有 兩筆互相矛盾的記錄——但沒有任何系統偵測到
- 下游用藥建議基於錯誤的 160/100 給出處方→錯誤從記憶層一路傳播到推理層到行動層
這不是 LLM 幻覺——這是記憶系統的結構性缺陷。現有所有生產級記憶系統都只有 retention(確保能記住),沒有 conflict detection。論文的錯誤累積測試用高血壓 guideline 手動注入 50 個事實衝突(數值 14 個、語義 13 個、邏輯 23 個),結果:全部 baseline 幾乎 = 0(2-14%),MOSAIC = 66%。
核心架構:實體類型圖譜 + 鄰居條件穩定
MOSAIC 把記憶組織為 typed directed graph G=(V,E,τ):
- 三種實體類型 τ:event(事件)、persona(個人特質)、relationship(人際關係)。抽取用 LLM pipeline + all-MiniLM-L6-v2 embedding
- 雙子圖設計:prerequisite subgraph G_P(邏輯依賴——哪個資訊必須先取得才能問下一個)+ association subgraph G_A(語義關聯,用 Leiden algorithm 做社群偵測)
- 鄰居條件穩定(NCS, §3.3):節點重要性分數只需在圖鄰居變動時重算——從 O(|V|) 降到 O(Δmax),且避免全域重新評分的震盪
- 節點評分公式:Score(v) = α·Ĩ(v) + β·T(v) + γ·C(v),其中 Ĩ 是正規化重要性、T 是 PageRank 中心性、C 是社群連續性
機制 1:儲存時衝突檢測(Save-Time Conflict Detection)
與所有現有系統最關鍵的差異——不是事後發現、而是寫入時攔截:
- 鄰居檢索:新實體寫入前,用 embedding 相似度在既有圖譜中找出 k 個最近鄰居
- 衝突評估:對每個鄰居,LLM 判斷新實體是否在數值、語義、邏輯上與之矛盾
- 解決策略:(a) 新證據更權威→更新舊實體;(b) 既有證據更強→拒絕寫入;(c) 兩者難判斷→標記雙方待人工審查
特別值得注意:隱含錯誤的檢測率(72.7%)高於顯式錯誤(64.1%)——圖鄰居走訪自然地完成了識別隱含矛盾所需的跨節點推理。
機制 2:雜湊加速雙路徑檢索
- 快速路徑(LSH):查詢 embedding → LSH → 常數時間定位到候選社群 → 只在該社群內做精確語義搜尋
- 精確路徑(LLM):當 LSH 信心不足時回退到 LLM 分類。整體精度幾乎不損失(vs 純 LLM),延遲從數秒降到 0.58 秒/查詢
機制 3:信心閘門與 Bayesian 信念更新
- 信心評分 ρ 基於三因素:直接性(明確陳述 vs 推斷)、一致性(與既有值的吻合度)、具體性(精確值 vs 模糊範圍)
- ρ<0.6 的模糊資訊不寫入長期記憶,改標記「待澄清」
- 信念分布用 Bayesian 更新規則 b_{v,k}^{(t+1)} ∝ b_{v,k}^{(t)} × ℓ(o_v|s_k)
實驗結果精華
- LoCoMo 1,540 QA:MOSAIC 89.35% vs Mem0 62.14%(+27.21pp)。Single-hop 92.87%、Multi-hop 81.56%、Temporal 90.34%
- HaluMem-Medium:Extraction F1 86.77%(最高)、QA correctness 73.10%(最高)。更新 correctness 55.77% 仍落後 MemOS 62.11%
- HaluMem-Long:Extraction recall 90.66%、update correctness 83.33%、QA correctness 70.75%——全部領先
- 衝突檢測:MOSAIC 66% vs baseline 最高 14%。數值 64.3%、語義 69.2%、邏輯 65.2%——三種錯誤類型均勻強勁
兩個理論貢獻
- 定理 1 - Coverage 次模性:實體覆蓋函數是單調次模的,貪婪策略可達 (1-1/e) 近似最優覆蓋
- 定理 2 - NCS 收斂性:分數更新最多在 L 輪傳播後收斂(L = 最長有向路徑),每次更新成本 O(Δmax)
對 Hermes 的啟發
- Fact_store 目前是 append-only:新的 fact 直接寫入不檢查矛盾。MOSAIC 的儲存時衝突檢測可直接套用——寫入前對既有鄰居做 LLM 矛盾檢查
- Sleep consolidation 需要 NCS 原則:Hermes 每週固化時全部重算,違反 NCS。改進:只對「鄰居有變動」的記憶節點做 re-consolidation
- Leiden 社群偵測可優化記憶檢索:先定位查詢所屬社群、只在該社群內檢索——精度更高延遲更低
- 信心閘門是最低成本品質提升:ρ<0.6 不寫入長期記憶——幾乎零成本,顯著減少記憶庫雜訊
限制
- 衝突檢測僅在單一領域(高血壓 guideline)測試,50 個人工注入錯誤樣本偏小
- 34% 未檢出:跨距超出 k-NN 搜尋半徑(~60%)+ 數值錯誤在合理範圍內(~40%)
- HaluMem-Medium 更新 correctness 55.77% 仍落後 MemOS 62.11%
- 只測試一種 LLM(qwen3.5-plus),泛化性未驗證
- LoCoMo 僅 10 組對話,開放域問題相對優勢最小