<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>長期記憶 on KnightLi的博客</title>
        <link>https://www.knightli.com/zh-tw/tags/%E9%95%B7%E6%9C%9F%E8%A8%98%E6%86%B6/</link>
        <description>Recent content in 長期記憶 on KnightLi的博客</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-tw</language>
        <lastBuildDate>Fri, 01 May 2026 03:01:02 +0800</lastBuildDate><atom:link href="https://www.knightli.com/zh-tw/tags/%E9%95%B7%E6%9C%9F%E8%A8%98%E6%86%B6/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Claude-Mem：給 Claude Code 加上跨會話長期記憶</title>
        <link>https://www.knightli.com/zh-tw/2026/05/01/claude-mem-persistent-memory-for-claude-code/</link>
        <pubDate>Fri, 01 May 2026 03:01:02 +0800</pubDate>
        
        <guid>https://www.knightli.com/zh-tw/2026/05/01/claude-mem-persistent-memory-for-claude-code/</guid>
        <description>&lt;p&gt;&lt;code&gt;Claude-Mem&lt;/code&gt; 是一個給 &lt;code&gt;Claude Code&lt;/code&gt; 使用的持久化記憶系統。&lt;/p&gt;
&lt;p&gt;它想解決的問題很具體：AI 編程助手每次開新會話時，往往會忘記之前討論過的架構決策、踩過的坑、專案偏好和實作背景。&lt;br&gt;
如果一個專案做得久，每次都重新解釋上下文，非常浪費時間。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Claude-Mem&lt;/code&gt; 的思路是：把 Claude Code 的會話內容壓縮成記憶，存進本地資料庫和向量庫，之後再透過搜尋工具找回來。&lt;/p&gt;
&lt;h2 id=&#34;它解決什麼問題&#34;&gt;它解決什麼問題
&lt;/h2&gt;&lt;p&gt;Claude Code 很適合處理程式碼任務，但會話上下文畢竟有限。&lt;/p&gt;
&lt;p&gt;常見痛點包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;新會話不知道舊會話做過什麼&lt;/li&gt;
&lt;li&gt;專案裡的設計決策需要反覆解釋&lt;/li&gt;
&lt;li&gt;曾經排查過的問題容易重複踩&lt;/li&gt;
&lt;li&gt;長期任務缺少連續記憶&lt;/li&gt;
&lt;li&gt;多次對話之間很難沉澱專案知識&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;Claude-Mem&lt;/code&gt; 就是圍繞這些問題設計的。&lt;/p&gt;
&lt;p&gt;它不是簡單保存聊天記錄，而是把會話壓縮成更容易檢索的記憶片段。這樣後續需要時，可以透過語義搜尋把相關上下文找回來。&lt;/p&gt;
&lt;h2 id=&#34;工作方式&#34;&gt;工作方式
&lt;/h2&gt;&lt;p&gt;從 README 的設計看，&lt;code&gt;Claude-Mem&lt;/code&gt; 主要由幾部分組成。&lt;/p&gt;
&lt;p&gt;第一部分是 hooks。&lt;/p&gt;
&lt;p&gt;它會接入 Claude Code 的會話流程，在合適的時機捕獲會話資料。&lt;/p&gt;
&lt;p&gt;第二部分是後台 worker。&lt;/p&gt;
&lt;p&gt;worker 負責把原始會話內容處理成更短、更可檢索的記憶。&lt;/p&gt;
&lt;p&gt;第三部分是本地儲存。&lt;/p&gt;
&lt;p&gt;專案使用 &lt;code&gt;SQLite&lt;/code&gt; 保存結構化元資料，用 &lt;code&gt;Chroma&lt;/code&gt; 保存向量索引。這樣既能保留會話記錄的基本資訊，也能支援語義檢索。&lt;/p&gt;
&lt;p&gt;第四部分是 &lt;code&gt;mem-search&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;這是給 Claude Code 使用的查詢入口。需要找回舊上下文時，可以透過它搜尋相關記憶。&lt;/p&gt;
&lt;p&gt;整體流程可以理解為：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Claude Code 會話產生內容&lt;/li&gt;
&lt;li&gt;hooks 捕獲會話資料&lt;/li&gt;
&lt;li&gt;worker 非同步壓縮和整理&lt;/li&gt;
&lt;li&gt;記憶寫入 SQLite 與 Chroma&lt;/li&gt;
&lt;li&gt;後續透過 &lt;code&gt;mem-search&lt;/code&gt; 檢索&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;適合什麼場景&#34;&gt;適合什麼場景
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Claude-Mem&lt;/code&gt; 適合長期專案，而不是一次性小任務。&lt;/p&gt;
&lt;p&gt;比如：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;一個倉庫持續開發很多天&lt;/li&gt;
&lt;li&gt;程式碼結構複雜，背景說明很多&lt;/li&gt;
&lt;li&gt;需要記住專案約定、命名習慣和架構選擇&lt;/li&gt;
&lt;li&gt;經常讓 Claude Code 修 Bug、寫功能、整理文件&lt;/li&gt;
&lt;li&gt;希望 AI 能記住「之前為什麼這麼改」&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果你只是臨時讓 Claude Code 改一行程式碼，長期記憶意義不大。&lt;br&gt;
但如果你把 Claude Code 當作長期協作者，它就會變得有用。&lt;/p&gt;
&lt;h2 id=&#34;安裝和啟動&#34;&gt;安裝和啟動
&lt;/h2&gt;&lt;p&gt;README 中給出的安裝方式很直接：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install -g claude-mem
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude-mem install
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;啟動時可以使用：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude-mem start
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;查看狀態：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude-mem status
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;如果需要停止：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;claude-mem stop
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;這些命令背後的目標，是把記憶系統作為一個長期執行的本地服務接到 Claude Code 工作流裡。&lt;/p&gt;
&lt;h2 id=&#34;mem-search-怎麼用&#34;&gt;&lt;code&gt;mem-search&lt;/code&gt; 怎麼用
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;mem-search&lt;/code&gt; 是找回記憶的關鍵入口。&lt;/p&gt;
&lt;p&gt;它的用途不是替代普通搜尋，而是讓 Claude Code 能按語義查詢過去會話中的內容。&lt;/p&gt;
&lt;p&gt;比如你可以讓 Claude Code 查詢：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;某個模組之前為什麼這樣設計&lt;/li&gt;
&lt;li&gt;某個 Bug 當時怎麼排查&lt;/li&gt;
&lt;li&gt;專案裡約定的命名規則&lt;/li&gt;
&lt;li&gt;之前討論過的技術取捨&lt;/li&gt;
&lt;li&gt;某次重構的背景原因&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;這種查詢和簡單關鍵字搜尋不同。&lt;br&gt;
如果記憶壓縮和向量索引做得好，即使你不記得原話，也能找回相近語義的內容。&lt;/p&gt;
&lt;h2 id=&#34;和普通專案文件有什麼區別&#34;&gt;和普通專案文件有什麼區別
&lt;/h2&gt;&lt;p&gt;專案文件適合記錄穩定結論。&lt;/p&gt;
&lt;p&gt;比如：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;架構說明&lt;/li&gt;
&lt;li&gt;部署流程&lt;/li&gt;
&lt;li&gt;API 約定&lt;/li&gt;
&lt;li&gt;資料庫結構&lt;/li&gt;
&lt;li&gt;開發規範&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;Claude-Mem&lt;/code&gt; 更適合記錄會話過程中產生的上下文。&lt;/p&gt;
&lt;p&gt;比如：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;為什麼某個方案被放棄&lt;/li&gt;
&lt;li&gt;某個臨時問題怎麼繞過&lt;/li&gt;
&lt;li&gt;某個實作背後的討論過程&lt;/li&gt;
&lt;li&gt;還沒來得及寫進文件的專案偏好&lt;/li&gt;
&lt;li&gt;多次對話裡積累出的任務背景&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;兩者不是互相替代。&lt;br&gt;
比較好的方式是：穩定知識寫進專案文件，過程性上下文交給記憶系統輔助檢索。&lt;/p&gt;
&lt;h2 id=&#34;使用時要注意什麼&#34;&gt;使用時要注意什麼
&lt;/h2&gt;&lt;p&gt;第一，長期記憶不是越多越好。&lt;/p&gt;
&lt;p&gt;如果所有對話都無差別保存，後續檢索可能會變得嘈雜。真正有價值的是專案決策、實作背景、問題排查和長期偏好。&lt;/p&gt;
&lt;p&gt;第二，記憶不能替代程式碼和文件。&lt;/p&gt;
&lt;p&gt;AI 搜到的舊上下文只能作為參考。最終判斷仍然要看目前程式碼、測試結果和最新需求。&lt;/p&gt;
&lt;p&gt;第三，隱私和本地資料要注意。&lt;/p&gt;
&lt;p&gt;既然它會保存會話內容，就要清楚哪些專案適合接入，哪些敏感資訊不應該進入對話。&lt;/p&gt;
&lt;p&gt;第四，記憶系統需要維護。&lt;/p&gt;
&lt;p&gt;隨著專案推進，舊記憶可能過時。過時的上下文如果被誤用，反而會誤導後續任務。&lt;/p&gt;
&lt;h2 id=&#34;為什麼這類工具值得關注&#34;&gt;為什麼這類工具值得關注
&lt;/h2&gt;&lt;p&gt;AI 編程工具正在從「單次問答」走向「長期協作」。&lt;/p&gt;
&lt;p&gt;單次問答裡，模型只要回答目前問題就夠了。&lt;br&gt;
長期協作裡，它需要知道專案歷史、之前的決策、團隊偏好和已經踩過的坑。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Claude-Mem&lt;/code&gt; 這類工具的意義就在這裡：它把「記住上下文」從臨時聊天能力，變成一個可以安裝、執行、檢索的本地系統。&lt;/p&gt;
&lt;p&gt;對真實工程專案來說，這比單純讓模型上下文窗口變長更實用。&lt;br&gt;
因為很多資訊不是一次性塞進上下文就好，而是需要在合適的時候被找回來。&lt;/p&gt;
&lt;h2 id=&#34;適合誰嘗試&#34;&gt;適合誰嘗試
&lt;/h2&gt;&lt;p&gt;如果你符合下面幾種情況，可以考慮試試：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;高頻使用 Claude Code&lt;/li&gt;
&lt;li&gt;經常跨天處理同一個專案&lt;/li&gt;
&lt;li&gt;專案上下文比較複雜&lt;/li&gt;
&lt;li&gt;經常需要向 AI 重複解釋背景&lt;/li&gt;
&lt;li&gt;想把會話裡的經驗沉澱下來&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果你只是偶爾使用 Claude Code，或者專案很小，暫時不一定需要這類系統。&lt;/p&gt;
&lt;h2 id=&#34;參考&#34;&gt;參考
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/thedotmack/claude-mem&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;thedotmack/claude-mem&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;最後一句&#34;&gt;最後一句
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;Claude-Mem&lt;/code&gt; 的重點不是「保存聊天記錄」，而是讓 Claude Code 能在後續任務裡找回有用上下文。&lt;/p&gt;
&lt;p&gt;當 AI 編程從一次性任務變成長期專案協作，記憶系統會越來越重要。&lt;br&gt;
它不能替代文件和測試，但可以減少重複解釋，讓 AI 更像一個了解專案歷史的助手。&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
