花半小時教會 Agent 一件事,下次開新 session 它又全忘了?這篇帶你搞懂 AI Coding 的記憶住在哪裡,附一個打開 MEMORY.md 就能做的檢查!
你花了半小時跟 Agent 解釋:這個專案的 API 測試,要先在本機起 Redis。它懂了,測試全過。
隔天開新的 session,它直接跑測試,一整排紅字。
模型沒有變笨。它只是每天早上醒來,都是上班第一天。
這一年,大家都在幫 Agent 加記憶。Claude Code 會自己寫筆記,ChatGPT、Claude、Gemini 的聊天介面都有了跨對話的記憶,Claude 今年 3 月連免費使用者也開了,記憶服務的新創也拿到了錢。我比較在意的是另一件事:存一段文字很便宜,決定哪一段值得存才難。這篇從它為什麼會忘講起,再看 AI Coding 的記憶住在哪裡、怎麼管、從哪裡開始。
快速回答 Agent Memory 難在寫入:哪段經驗值得變成下一次的預設、誰批准、何時丟掉。一段經驗要會再遇到、換了 session 和人仍成立、程式碼裡讀不到,三項都符合才記,並附上來源與日期。同一個錯被糾正兩次以上,就改寫成測試或 hook(在指定時機自動執行的檢查);Claude Code 的文件也說,規則檔和自動記憶都只給模型參考。寫進記憶的是建議,寫進測試的才是規則。
參數凍結且 Context 每次清空:Agent 記憶的本質是 harness 替它做取捨
底層原因只有兩個。
第一,模型的參數在部署後是凍結的。你今天怎麼教它,都不會寫回模型裡。
第二,Context Window 是一張每次都會清空的工作桌。session 結束,桌面收乾淨;下一個 session 開始,桌上只放得到 harness(包住模型的那層程式,例如 Claude Code、Codex)替它擺上去的東西。所以 Agent 的記憶,本質上是 harness 的工作:決定哪些東西要從抽屜拿出來,放上明天的桌面。
能不能全部擺上去?不行。Chroma 2025 年測了 18 個模型,輸入越長,表現越不穩,連簡單的任務都會掉分,即使離上限還很遠。桌面堆滿,重要的那張紙反而找不到。記憶從一開始就是取捨:要記,也要挑。
記憶住在四個地方:前兩層只給模型參考,寫進測試與 hook 才是強制規則
拿 AI Coding 來看,記憶住在四個地方。把它們想成四個並列的抽屜,沒有先後順序,差別在誰寫、誰管、會不會被強制執行。
專案指令。CLAUDE.md、AGENTS.md 這類檔案,人寫、放在 repo、跟著版本控制走,改它要經過 review。AGENTS.md 由 OpenAI 在 2025 年 8 月推出,同年 12 月捐給 Linux Foundation 底下新成立的 Agentic AI Foundation;當時基金會公布的數字是,已有超過六萬個開源專案與 Agent 框架採用。它是團隊共同的記憶。
Agent 自己的筆記。Claude Code 的 auto memory 在本機預設開啟,你糾正它之後,它會自己寫一份筆記:每個 repo 一個資料夾,用一份 MEMORY.md 當索引,每次開工載入前 200 行或前 25KB,以先到者為準,超過的部分不會自動進桌面。Anthropic 2025 年 9 月在 API 推出 memory tool 時公布,記憶工具搭配清理舊工具輸出,在他們的內部測試比基準好 39%。這一層最省力,也最容易長歪,因為寫的人是 Agent。
可以執行的規則。測試、hook、CI。Claude Code 的官方文件寫得很坦白:CLAUDE.md 和 auto memory 都只是上下文,模型會參考,不是強制設定;要不管 Claude 怎麼想都擋得住某個動作,請用 hook。開頭那個 Redis 的例子,寫在筆記裡,Agent 可能照做;寫成跑測試前的檢查,它想忘也忘不掉。
寫進記憶的是建議,寫進測試的才是規則。
對使用者的記憶。如果你做的是產品,要記住每個使用者的偏好與歷史,這時才輪到 Mem0、Zep 這類記憶服務,或模型商自己內建的記憶。這一層記的是人,牽涉同意、查看與刪除,管理方式和前三層完全不同。
記憶難在寫入而非儲存:只記程式碼讀不到的經驗,讀取時先驗證路徑還在不在
存一段文字很便宜。難的是決定哪一段值得存。
我會用三個問題篩:這件事下次還會遇到嗎?換了 session、換了人還成立嗎?它能不能從程式碼直接讀出來?最後一題最常被忽略。檔案結構、函式名稱、git 歷史,Agent 自己會讀,寫進記憶只是多一份會過期的副本。值得記的,是程式碼裡讀不到的東西:為什麼這樣決定、哪裡不能碰、上次在哪裡跌倒。
舉一個假設的例子。Agent 把進行中的工作放在系統的暫存資料夾,電腦重開之後,還沒 commit 的東西全部消失。這件事值得變成一條記憶:「工作區放在固定的資料夾,進度早點 commit。」它通過了三道篩:會再發生、跨 session 成立、程式碼裡讀不到。反過來,「這個專案用 pnpm」就不必記,lockfile 一打開就知道。
寫進去之後,還有三種壞法:
- 記錯。OWASP 在 Agentic AI 的威脅分類裡,把「記憶投毒」列為第一項:不受信任的內容被寫進記憶,下一個 session 就變成被信任的事實。
- 記太多。索引一長,超過載入上限的部分直接看不到;或者把桌面塞滿,回到 Chroma 測到的那個問題。
- 記舊了。三個月前寫的「部署要跑這支腳本」,腳本早就改名了。過期的記憶比沒有記憶更危險,因為它看起來很可信。
記住很便宜,記錯很貴。所以讀取時要先驗證:記憶裡提到某個檔案、某個指令,先確認它還在,再照做。
5 分鐘自我檢測:打開 MEMORY.md 清查過期路徑,被糾正兩次就改寫成 hook
如果你用 Claude Code,又沒關掉 auto memory,它很可能已經替你記了不少東西。在 session 裡輸入 /memory,可以看到載入了哪些規則檔,也能打開 auto memory 的資料夾;檔案預設放在 ~/.claude/projects/<專案>/memory/,只存在你這台電腦上。
打開 MEMORY.md 和它連到的筆記,逐條問三個問題:
- 程式碼裡讀得到嗎? 讀得到就刪。資料夾結構、用哪個套件管理工具、某個函式在哪,Agent 自己會查。
- 它還成立嗎? 提到的檔案、指令、分支還在不在。
- 它被糾正過幾次? 同一件事被你糾正兩次以上,就別只留在筆記裡,改寫成測試或 hook。
第二題可以交給一段小程式。在專案根目錄執行,它會把記憶裡提到、但 repo 裡已經找不到的路徑列出來(MEM 換成你自己的記憶資料夾):
# List file paths mentioned in auto memory that no longer exist in this repo
MEM=~/.claude/projects/<project>/memory
grep -ohE '[A-Za-z0-9_./-]+\.(md|ts|tsx|js|py|sh|json|ya?ml|toml)' "$MEM"/*.md \
| sort -u | while read -r p; do
[ -e "$p" ] || [ -e "$MEM/$p" ] || echo "missing: $p"
done
它只比對路徑,判斷不了一條規則的道理還對不對,那一題要你自己看。但光是列出幾條指向不存在檔案的記憶,通常就夠讓人意識到:Agent 的筆記也會過期,而且沒人會主動告訴你。
實務切入順序:短指令檔起步、重複錯誤改寫成 hook,微調模型放最後
如果你今天就想讓自己的 AI Coding 流程有記憶,我會照這個順序:
- 先寫一份短的 AGENTS.md 或 CLAUDE.md。只寫程式碼裡讀不到的東西:怎麼跑測試、哪裡不能碰、重要決定的理由。Claude Code 官方的建議是每份控制在 200 行以內,越長越佔 context,也越不容易被遵守。
- 同一個錯被糾正兩次,就把它變成測試或 hook。這是槓桿最大的一步,記憶從建議升級成規則。每個真實的 bug 都該留成回歸測試,道理一樣。
- 打開 auto memory,然後定期去讀它。Agent 寫的筆記是純文字,打開來看、改、刪都可以。它值得信任的程度,取決於你多久看一次。
- 產品真的要記住使用者,才接記憶服務。接之前先想好使用者怎麼看到、怎麼帶走、怎麼刪除自己的記憶。
- 微調模型放到最後。把經驗寫進參數最難檢查、最難撤銷,只適合已經穩定多年的知識。
有一個邊界要說清楚:一次性的任務、寫完就丟的腳本,不需要任何記憶,硬加只是多一份維護成本。
破除三個常見誤解:向量資料庫不等於記憶、記憶過多會掉分、Agent 筆記不能不審
「向量資料庫就是記憶」。把公司一萬份 SOP 丟進向量資料庫,你得到一個不錯的查詢系統,回答的是「這一題該去哪裡查」。Agent 昨天被糾正的那個錯,今天會不會再犯,它不管。2025 年底那篇四十多位作者合寫的綜述《Memory in the Age of AI Agents》,就特別把 Agent Memory 和 RAG、Context Engineering 分開:前兩者處理的是這一次,只有記憶跨過了時間。
「記憶越多越好」。載入有上限,注意力也有上限。Claude Code 的索引超過 200 行就看不到後面,塞滿的桌面也會讓重要的那句被淹掉。記憶的品質看的是刪得夠不夠勤。
「Agent 自己寫的筆記,可以不用看」。它寫的是它當下的理解,可能是對的,也可能是把一次偶發的狀況寫成了通則,或把網頁上讀到的一段話當成事實存下來。記憶投毒之所以排在威脅清單的第一項,就是因為寫進去的東西,下一次會被當成可信的。
儲存檢索已成模型商免費水電,記憶市場的護城河在治理與特定領域寫入政策
記憶這門生意,2026 年變化最大的地方在模型商自己。Anthropic 在 3 月把 Claude 的聊天記憶開給免費使用者,同時推出從其他 AI 助理匯入記憶的工具,iThome 報導時下的標題是「向 OpenAI ChatGPT 用戶招手」;Google 在 3 月底也讓 Gemini 能匯入其他服務的記憶與聊天紀錄;OpenAI 在 6 月重做了 ChatGPT 的記憶,改成在背景整理過去的對話。記憶已經是聊天產品的標準配備,也成了搶使用者的籌碼:誰握著你的記憶,誰就握著你的轉換成本,所以大家都在做「搬家」工具。
記憶服務這一端,Mem0 在 2025 年 10 月宣布完成合計 2,400 萬美元的種子輪與 A 輪,API 呼叫量從當年第一季的 3,500 萬次成長到第三季的 1.86 億次;2026 年它把力氣放在接進各種 Agent 與開發平台,包括替 coding agent 做跨 repo 的共用記憶。上海的記憶張量(MemTensor)和上海交大等團隊開源的 MemOS,把記憶當成作業系統資源來排程,每一筆記憶都帶著來源與版本;2025 年底發布 2.0 版後,2026 年陸續接上了好幾家開源 Agent。
所以我對這一波的判斷偏保守。向量儲存和檢索會越來越像水電,模型商已經免費送了,很難單獨成為護城河。我比較看好兩個地方:一是治理,團隊共用的記憶誰可以寫、誰寫錯要能追溯、使用者要求刪除時刪得乾淨,這是企業導入 Agent 一定會卡住的地方;二是特定領域的寫入政策,客服的 SOP 修正、法務的判例備註、工廠的異常處理,哪些經驗該記、記多久、誰批准,每個領域都不一樣。後者最適合一個人或小團隊切入:不需要再做一個向量資料庫,你的任務是替特定行業回答:這段經驗值不值得變成明天的預設。
結論:Agent 每天都會失憶,關鍵經驗升級成測試與 hook 才能真正防錯
回到那排紅字。
把「先起 Redis」寫進筆記,Agent 多半會照做;寫成測試前的檢查,它就不會再錯。記憶的設計,說到底是在決定哪些經驗只是提醒、哪些要變成規則、哪些過一陣子就該丟掉。
Agent 每天都會失憶。你能決定的,是它醒來時桌上放著什麼。
常見問題
Claude Code 的 auto memory 存在哪裡?
在 session 裡輸入 /memory,可以看到載入了哪些規則檔,也能打開 auto memory 的資料夾。檔案預設放在 ~/.claude/projects/<專案>/memory/,只存在你這台電腦上;每個 repo 一個資料夾,用 MEMORY.md 當索引,每次開工載入前 200 行或前 25KB,以先到者為準。
向量資料庫就是 Agent 的記憶嗎?
向量資料庫是查詢系統,回答「這一題該去哪裡查」;Agent 昨天被糾正的錯今天會不會再犯,它不管。2025 年底的綜述《Memory in the Age of AI Agents》也把 Agent Memory 和 RAG(先檢索文件再回答)、Context Engineering 分開:後兩者處理這一次,記憶跨過了時間。
Agent 的記憶越多越好嗎?
載入和注意力都有上限。Claude Code 的 MEMORY.md 索引超過 200 行,後面就不會自動載入;Chroma 2025 年測了 18 個模型,輸入越長表現越不穩,連簡單任務都會掉分。記舊了也危險:過期的記憶看起來很可信。記憶的品質,看的是刪得夠不夠勤。
什麼是記憶投毒(memory poisoning)?
不受信任的內容被寫進 Agent 的記憶,下一個 session 就被當成可信的事實。OWASP 在 Agentic AI 的威脅分類裡把它列為第一項。Agent 自己寫的筆記也可能把一次偶發狀況寫成通則,或把網頁上讀到的一段話當成事實存下來,所以讀到記憶時,先確認它提到的檔案、指令還在,再照做。
延伸閱讀
- Context Engineering 是什麼?Agent 一直犯同樣的錯怎麼辦?(2026 完整懶人包)
- AGENTS.md 怎麼寫?規則寫越多,Agent 反而越貴?(2026 完整教學+範例)
- Claude Code 權限要怎麼設?一直按「允許」真的安全嗎?(2026 完整懶人包)
- Plan、Build、Verify、Ship 是什麼?AI 寫程式變快後,進度要怎麼算?(2026 完整懶人包)
參考資料
官方文件與公告
- Anthropic, How Claude remembers your project(Claude Code 文件,2026-10-16 檢視) https://code.claude.com/docs/en/memory
- Anthropic, Managing context on the Claude Developer Platform(2025-09-29) https://claude.com/blog/context-management
- Anthropic, Release notes(Claude 應用程式,記憶相關條目 2025-09 至 2026-08,2026-10-16 檢視) https://support.claude.com/en/articles/12138966-release-notes
- Anthropic, Import and export your memory from Claude(2026-10-16 檢視) https://support.claude.com/en/articles/12123587-import-and-export-your-memory-from-claude
- Google, Make the switch: Bring your AI memories and chat history to Gemini(2026-03-26) https://blog.google/innovation-and-ai/products/gemini-app/switch-to-gemini-app/
- OpenAI, Dreaming: Better memory for a more helpful ChatGPT(2026-06-04;原頁無法讀取,經 WinBuzzer 2026-06-05 報導確認) https://openai.com/index/chatgpt-memory-dreaming/
- Linux Foundation, Linux Foundation Announces the Formation of the Agentic AI Foundation(2025-12-09) https://www.linuxfoundation.org/press/linux-foundation-announces-the-formation-of-the-agentic-ai-foundation
研究與安全
- Yuyang Hu, Shichun Liu, et al., Memory in the Age of AI Agents(arXiv:2512.13564,2025-12-15) https://arxiv.org/abs/2512.13564
- Kelly Hong, Anton Troynikov, Jeff Huber, Chroma, Context Rot: How Increasing Input Tokens Impacts LLM Performance(2025-07-14) https://www.trychroma.com/research/context-rot
- OWASP GenAI Security Project, Agentic AI – Threats and Mitigations(v1.1,2025-12;T1 Memory Poisoning) https://genai.owasp.org/resource/agentic-ai-threats-and-mitigations/
- Zhiyu Li, et al., MemTensor, MemOS: A Memory OS for AI System(arXiv:2507.03724,2025-07);GitHub MemTensor/MemOS(2026-10-16 檢視) https://arxiv.org/abs/2507.03724 https://github.com/MemTensor/MemOS
產業報導
- Mem0, Mem0 raises $24M to build the memory layer for AI(2025-10-28) https://mem0.ai/series-a
- Mem0, Beyond AGENTS.md: Shared Memory For Coding Agents Across Services And Repos(2026-08-04) https://mem0.ai/blog
- iThome,林妍溱,〈Anthropic免費提供記憶匯入工具 向OpenAI ChatGPT用戶招手〉(2026-03-03) https://www.ithome.com.tw/news/174126
留言0
登入後就能留言。
登入