問題:克勞德·科德什麼都忘了

每次啟動新的 Claude Code 會話時,所有資料都會被清除。你的程式設計風格偏好、專案架構決策、昨天的除錯會話——全部都會消失。

你最終會重複自己的話:“我們使用的是 Supabase,而不是 Firebase。邊緣函數位於supabase/functions/下。請勿使用虛擬資料。”

claude-mem透過跨會話加入持久性記憶體解決了這個問題。它在發布後 48 小時內就獲得了 4.6 萬個 GitHub star。我安裝了它,並首先建造了一個輕量級的 DIY 替代方案,以下是我的發現。

claude-mem是什麼?

GitHub:https://github.com/thedotmack/claude-mem

這款插件賦予 Claude Code 長期記憶功能。它會自動記錄您在會話期間的操作,並將相關的上下文資訊融入未來的對話中。

建築學

  • 5 個生命週期鉤子:會話開始 / 使用者提示提交 / 工具使用後 / 停止 / 會話結束

  • SQLite + Chroma :混合搜尋(關鍵字 + 向量相似度)

  • Bun HTTP Worker :localhost:37777 上的後台服務

  • MCP 工具:三層漸進式揭露(搜尋 → 時間軸 → 取得觀察結果)

  • Web UI :視覺化記憶體瀏覽器

安裝

npx claude-mem install
npx claude-mem start  # Requires Bun

我先搭建的DIY替代方案

在發現 claude-mem 之前,我只使用兩個 PowerShell 腳本和 Claude Code 的原生 hooks API 建立了一個最小的記憶體系統。

PostToolUse 鉤子(auto-capture.ps1)

每次使用BashWrite工具後觸發。將 git 提交和新檔案建立記錄到每日 markdown 檔案:

memory/auto-capture/2026-04-13.md
- 09:15 [abc1234] feat: Add user authentication
- 09:32 [Write] auth_middleware.dart
- 10:01 [def5678] fix: Token refresh logic

會話啟動鉤子(session-resume.ps1)

讀取最近三天的錄製內容,並在新會話開始時將其作為上下文資訊匯入。人工智慧可以立即了解你一直在做什麼。

在 settings.json 中進行註冊

{
  "hooks": {
    "PostToolUse": [{
      "matcher": "Bash|Write",
      "hooks": [{
        "type": "command",
        "command": "powershell -File auto-capture.ps1"
      }]
    }],
    "SessionStart": [{
      "hooks": [{
        "type": "command",
        "command": "powershell -File session-resume.ps1"
      }]
    }]
  }
}

直接對比

| 特色 | claude-mem | DIY掛鉤 |

|---------|-----------|-----------|

| 安裝 | npx install (1 個指令) | 2 個腳本,手動安裝 |

| 自動擷取 | 所有工具使用情況 | Git 提交 + 僅寫入 |

| 搜尋 | 向量相似度 + 關鍵字 | grep(文字搜尋) |

| Web 使用者介面 | localhost:37777 | 無 |

| 依賴項 | Bun + SQLite + (Chroma) | 無 |

| 代幣成本 | LLM 壓縮(Gemini = 免費) | 零 |

| 支援 Git | 資料庫檔案(已在 .gitignore 中忽略) | Markdown 文件(可共享) |

| 多實例 | 會話範圍隔離 | 用於協調的文件共用 |

同時執行

好訊息是:它們可以完美共存。 claude-mem 註冊為插件,而 DIY hooks 則直接在 settings.json 中註冊。兩者在相同的事件上觸發,不會發生衝突。

當克勞德-梅姆閃耀時

  • 智慧壓縮:使用 LLM(Gemini/Claude)將工具輸出匯總成緊湊的觀測資料。

  • 語義搜尋:「我上週對授權系統做了什麼?」 真的有效。

  • 網路儀表板:已擷取內容的直覺概覽

DIY掛鉤大放異彩

  • 零依賴:無需伺服器、資料庫或執行環境。

  • 團隊共享:Markdown 檔案可以提交到 Git 並在不同實例之間共用。

  • 完全掌控:您可以完全決定要拍攝哪些內容以及如何拍攝。

  • 真正免費:完全無需任何 API 呼叫。

成本最佳化技巧

claude-mem 預設使用 Claude API 進行壓縮,這會消耗您的令牌。切換到 Gemini(免費)即可避免此問題:

// ~/.claude-mem/settings.json
{
  "CLAUDE_MEM_PROVIDER": "gemini",
  "CLAUDE_MEM_GEMINI_API_KEY": "your-free-key-from-aistudio.google.com"
}

我們的三層記憶體架構

在我們的專案(Flutter Web + Supabase,3 個並行的 Claude Code 實例)中,我們採用了分層方法:

| 圖層 | 工具 | 用途 |

|-------|------|---------|

| L1:會話內 | claude-mem(SQLite) | 自動記錄所有工具使用情況,語意搜尋 |

| L2:會話間 | DIY鉤子(Markdown) | Git提交歷史,跨實例共享 |

| L3:跨專案 | NotebookLM 主腦 | 深度研究,長期架構知識 |

判決

claude-mem 兌現了其承諾,將 Claude Code 從「一次性工具」轉變為「不斷發展的合作夥伴」。向量搜尋和 Web 使用者介面是真正實用的功能,很難用簡單的腳本來實現。

然而,對於想要零依賴、零代幣成本和 git 友善記憶體共享的團隊來說,DIY hook 方法是一個不錯的起點。

我的建議:先使用 DIY hooks 來最大限度地減少記憶體佔用,然後在需要語義搜尋和自動壓縮時再加入 claude-mem。


使用Claude Code建置 | 專案:https://my-web-app-b67f4.web.app/

ClaudeCode #AI #buildinpublic


原文出處:https://dev.to/kanta13jp1/adding-persistent-memory-to-claude-code-with-claude-mem-plus-a-diy-lightweight-alternative-4gha


精選技術文章翻譯,幫助開發者持續吸收新知。

共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。
🏆 本月排行榜
🥇
站長阿川
📝4   💬4   ❤️2
342
🥈
我愛JS
📝1   💬4   ❤️2
114
🥉
Gigi
2
評分標準:發文×10 + 留言×3 + 獲讚×5 + 點讚×1 + 瀏覽數÷10
本數據每小時更新一次
📢 贊助商廣告 · 我要刊登