為什麼 AI 需要持久化記憶?
在使用 AI 助手進行複雜、大型的專案開發時,我們常常需要分多次 Session 進行討論。在傳統的 AI 協作中,AI 的記憶是一次性的:
- 跨會話遺忘 (Cross-session Amnesia):一旦你關閉當前 Chat 視窗或重啟 CLI 服務,AI 之前對你程式碼邏輯的理解、你剛交代過的命名規範、甚至是專案獨特的架構約束,都會在一瞬間灰飛煙滅。在下一次對話中,你必須重新「餵」給 AI 現有背景,這會耗費大量心力與時間。
- 上下文臃腫 (Context Bloat):為了讓 AI 記住前因後果,開發者不得不把過往的對話歷史、指令紀錄反覆貼給 AI,這會導致 AI 的 Context Window 迅速被垃圾資訊填滿,不僅收費增加,還會降低 AI 回答的精準度。
Claude-Mem 是一套專為解決此痛點而開發的 Claude Code 持久化記憶與觀察層。它能自動在本地端記錄對話軌跡、提煉出關鍵設計決策,並將其轉化為持久化的記憶單元(Memory Entries),使 AI 具備跨越 Session 的長期記憶能力。
Claude-Mem 的工作原理
Claude-Mem 作為本地運作的 MCP 伺服器,其運作流程可以簡化為三個步驟:觀察 -> 提取 -> 注入。
┌──────────────────┐ 自動捕捉 ┌──────────────────┐
│ Claude Session ├──────────────────▶│ Claude-Mem MCP │
└──────────────────┘ └────────┬─────────┘
│ 語意提取與壓縮
▼
┌──────────────────┐ 記憶注入 ┌──────────────────┐
│ New Session │◀──────────────────┤ 本地 SQLite DB │
└──────────────────┘ └──────────────────┘
- 自動捕捉 (Observation Capture):
在 Claude Code 執行命令或讀寫檔案時,Claude-Mem 會在背景默默監聽 AI 的操作軌跡(例如呼叫了什麼編譯命令、遇到了什麼錯誤、修改了哪個檔案)。 - 語意提取與壓縮 (Semantic Extraction & Compression):
當 Session 結束或對話達到一定長度時,Claude-Mem 會自動調用輕量級的本地 LLM 或是透過背景機制,將凌亂的日誌壓縮成「語意記憶節點」(例如:「專案採用 C# 4.8 且嚴禁使用運行時動態生成控制項」)。 - 按需上下文注入 (Context Injection):
當你開啟一個新的對話 Session,Claude Code 會自動調用claude-mem的 MCP 工具,將與當前路徑或主題相關的歷史「記憶片段」自動作為 System Prompt 的一部分注入進去。AI 就能立刻延續上一輪的思路,完全不需要你手動提醒。
語意壓縮與記憶分層機制
如果把所有的對話日誌都永久保留,硬碟空間和 Token 很快就會爆炸。為了解決這一問題,Claude-Mem 實作了精巧的記憶分層與壓縮機制:
- 第一層:臨時觀察 (Ephemeral Observations):
記錄最近幾次工具呼叫的 Raw Log,當對話結束後自動過濾掉雜訊。 - 第二層:短期記憶 (Short-term Summaries):
將當前變更計畫(Change)的每日進展、遇到的編譯錯誤與修復路徑,壓縮成 200 字以內的段落。 - 第三層:長期黃金記憶 (Golden Long-term Memories):
僅保留架構決策、編碼規範與環境配置等最關鍵的事實。這些事實會被儲存在本地 SQLite 資料庫中,永不過期。
透過這種分層,Claude-Mem 能將上百萬字元的原始對話歷史,壓縮成僅需數百個 Token 的高純度知識,既保證了 AI 能長久記住重要事情,又完全不會導致 Context Window 膨脹。