Mem0 Intro Part 1 — 全景架構 — 為什麼 Agent 需要一個記憶層而不是更長的上下文
大多數人給 Agent 加記憶的方式,是把對話歷史一路 append 進 prompt,等到爆 context 了再加一個摘要函式。 真正的答案是:記憶不是「更長的上下文」,它是一個獨立的儲存與檢索問題——你需要決定什麼值得記、記成什麼形狀、怎麼在下一次對話中只取回相關的那幾條。 把歷史全塞進去只需要一行 messages.append()。記憶層需要一整套子系統。 這個系列拆解的是後者。 前言:這個系列要做什麼 Mem0 (Apache-2.0,2023-06 開源)是目前最多人用的開源 AI Agent 記憶層:GitHub 上約 6.5 萬顆星、7.6 千 fork,官方定位是「drop-in memory infrastructure for AI agents and apps」。 它值得逐層讀完,理由不是星星數,而是:它把「Agent 記憶」這個很虛的詞,收斂成了兩個非常具體的工程問題——什麼進來、什麼出去。 而且它的答案在 2026 年做過一次大幅度的自我否定(v2 → v3),把原本論文裡的兩階段 ADD/UPDATE/DELETE 管線整個換掉。讀懂那次改動為什麼發生,比讀懂任何單一功能都有價值。 這個系列分成五篇: Part 主題 對應原始碼 Part 1(本篇) 全景架構、兩條路徑、作用域模型、部署形態 mem0/memory/main.py、mem0/configs/base.py Part 2 寫入路徑:ADD-only 萃取管線的八個階段 Memory._add_to_vector_store()、configs/prompts.py Part 3 讀取路徑:語意 + BM25 + 實體的多訊號融合 Memory._search_vector_store()、mem0/utils/scoring.py Part 4 儲存層與後端選型:三個 store、25 種向量庫、自架 server mem0/vector_stores/、mem0/memory/storage.py、server/ Part 5 生產部署:OSS vs Platform、進階能力、評測與踩坑 docs/、evaluation/ 本篇的目標很單純:讀完之後,你能在腦中畫出 Mem0 的方塊圖,說得出一句「我喜歡靠走道的位置」是怎麼變成一筆可被檢索的記憶,並且知道 user_id / agent_id / run_id 這三個參數各自該放什麼。