Claude Code 是如何"記住"一切的?

深入解析 AI Agent 的記憶系統(tǒng)設(shè)計

你有沒有想過這個問題:當(dāng)你和 Claude Code 聊了一個小時后,它是怎么記得你之前的需求?當(dāng)你第二天打開同一個項目時,它為什么還能"認(rèn)識"你?

這不是簡單的"存下來"就能搞定的事。這背后是一套精妙的記憶系統(tǒng)設(shè)計。

今天我們就來拆解 Claude Code 的 Memory 架構(gòu),順便聊聊記憶系統(tǒng)的本質(zhì)設(shè)計。


1. 記憶到底是什么?

很多人覺得,記憶嘛,不就是"存數(shù)據(jù)"嗎?

如果把歷史對話都存下來,每次原封不動傳給 AI,很快就會遇到兩個問題:

  1. Token 不夠用 —— 對話一長,Context 就爆了
  2. 費用爆炸 —— 每次都傳全部歷史,錢包遭不住

所以光存沒用,得看能不能影響 AI 的決策。

換個說法:歷史要能改變 AI 的行為,才算有記憶。

舉個例子:你上次告訴 Claude Code "不要在測試?yán)?mock 數(shù)據(jù)庫",下次它就不再 mock 了。這才是記憶。

按這個思路,一個記憶系統(tǒng)需要三個東西:

賬本 —— 記錄存了什么、什么時候存的,不能糊里糊涂

索引 —— 光有賬本查起來太慢,得能快速找到相關(guān)內(nèi)容

策略 —— 決定什么時候該記住、什么時候該忘記。這點最容易被忽略,但最關(guān)鍵

沒有賬本就是一筆糊涂賬;沒有索引存了也查不到;沒有策略,系統(tǒng)就會亂套。

記憶系統(tǒng)三要素

2. 為什么需要兩個"大腦"?

能不能把所有能力都塞進(jìn)一個模型?理論上可以——通過反復(fù)訓(xùn)練,讓模型權(quán)重"學(xué)會"記憶。

但這條路有幾個問題:

通用能力會退化。不斷用"記住用戶偏好"這類任務(wù)來微調(diào)模型,模型的其他能力可能會被稀釋。就像讓一個人同時學(xué)十種技能,結(jié)果每種都學(xué)不精。

無法審計和回滾。一旦能力"固化"到權(quán)重里,出了問題沒法排查。

無法實時更新。用戶偏好會變、項目會變,但重新訓(xùn)練模型的成本太高。

所以可行的方案是:把記憶能力從模型里抽出來,單獨做一個系統(tǒng)。

這就是 System 1 + System 2 的架構(gòu):

  • System 1 是 LLM 本身,負(fù)責(zé)推理、生成回復(fù)、調(diào)用工具,需要快速響應(yīng)
  • System 2 是記憶系統(tǒng),負(fù)責(zé)在后臺決定:要不要檢索記憶?該記住什么?

簡單說:System 1 負(fù)責(zé)"回答問題",System 2 負(fù)責(zé)"準(zhǔn)備回答問題需要的背景"。

為什么這個拆分是合理的?

關(guān)鍵原因是:記憶能力和通用推理能力是獨立的。

怎么證明?可以看三點:

結(jié)構(gòu)上——整個系統(tǒng)可以寫成 f(M(C), C) 的形式,C 是通用推理能力,M 是記憶系統(tǒng),它們是獨立的模塊。

優(yōu)化上——可以在不改變推理模型的情況下,單獨改進(jìn)記憶策略;反過來也可以只優(yōu)化模型,不動記憶系統(tǒng)。

經(jīng)驗上——同一個基礎(chǔ)模型,換不同的記憶系統(tǒng),長程任務(wù)表現(xiàn)差異很大;同一套記憶系統(tǒng),套在不同的模型上,也能工作。

分開有什么好處?

既然獨立,就可以犧牲一點理論上限,換取大量工程好處:

  • 不影響 System 1 的性能 —— 記憶操作是后臺進(jìn)行的
  • 記憶可以插拔 —— 換個項目、換個用戶,記憶策略可以靈活切換
  • 可以審計和回滾 —— 所有的記憶操作都被記錄下來
  • 可以 A/B 測試 —— 不同的記憶策略可以對比效果
System 1 vs System 2 架構(gòu)

3. 非參數(shù)化路線有什么挑戰(zhàn)?

把記憶放到外部系統(tǒng),會面臨三個問題:

注入帶寬有限 再多的記憶,一次只能往上下文里塞有限的內(nèi)容。Token 限制擺在那。

檢索不精準(zhǔn) 索引是近似的,查到的可能不相關(guān),沒查到的可能正好需要。檢索噪聲會誤導(dǎo) AI 推理。

策略設(shè)計很難 什么時候該記、什么時候該查、查到后該怎么用——這些策略如果設(shè)計得不好,記憶反而幫倒忙。寫多了污染環(huán)境,寫少了學(xué)不到。

很多系統(tǒng)的失敗不是因為存得不夠多,而是策略太蠢。


4. Claude Code 怎么實現(xiàn)的?

六層記憶架構(gòu)

Claude Code 的記憶系統(tǒng)分成了六個層級:

層級 名字 作用
6 Agent Memory 子代理的專屬記憶
5 Auto Memory AI 自己管理的長期記憶
4 Local Memory 項目私有配置
3 Project Memory 項目級指令(比如 CLAUDE.md)
2 User Memory 用戶全局偏好
1 Managed Memory 管理員策略

優(yōu)先級:項目配置 > 用戶配置 > 全局配置。

六層記憶架構(gòu)

Auto Memory 的工作方式

這是 Claude Code 最核心的記憶系統(tǒng)。它的特點是:AI 自己能從對話中提取值得記住的信息。

寫入有兩條路:

一是用戶明確要求記住。你說"Claude,記住我喜歡用 tabs 縮進(jìn)",AI 直接寫文件。

二是AI 主動提取。每輪對話結(jié)束后,后臺會跑一個子代理,分析這一輪對話有沒有值得跨會話保留的信息。比如你提到"這個項目的認(rèn)證模塊要重寫",AI 就會默默記下來。

寫入的內(nèi)容分成四類:

  • user —— 用戶是誰、偏好什么
  • feedback —— 用戶給過的指導(dǎo)(比如"測試不要 mock 數(shù)據(jù)庫")
  • project —— 項目背景(代碼里看不出來的信息)
  • reference —— 外部參考(比如 "bug 在 Linear 的 INGEST 項目里")

讀取是主動召回的機制:

每次你發(fā)消息,AI 都會主動去記憶庫看看有沒有相關(guān)的。

流程是:掃描記憶目錄(最多 200 個文件)→ 排除之前展示過的 → 讓小模型打分選出最相關(guān)的 5 個 → 讀取內(nèi)容注入上下文 → 加上時間提示。

記憶會過期

Claude Code 會根據(jù)記憶的"年齡"給出不同待遇:

  • 1-2天內(nèi) —— 正常使用
  • 超過2天 —— 顯示提醒:"這段記憶可能是舊的了"
  • 超過30天 —— 標(biāo)記為 stale,謹(jǐn)慎使用
記憶時間衰減

上下文滿了怎么辦?

對話一長,上下文就會滿。Claude Code 的解決方案是壓縮

當(dāng) Token 使用到 92% 時,會觸發(fā)壓縮:調(diào)用 AI 把對話歷史濃縮成結(jié)構(gòu)化摘要,檢查質(zhì)量,通過則替換原歷史。整個過程會顯示進(jìn)度給你看。

三級預(yù)警

Claude Code 不會等到 92% 才告訴你:

使用率 提示
60% "記憶使用量較高"
80% "建議手動整理,或者開新對話"
92% "正在整理記憶..."

5. 時間在記憶系統(tǒng)里有多重要?

舊信息可能已經(jīng)過時了。

比如你三個月前告訴 AI "我在負(fù)責(zé) X 項目",但現(xiàn)在你早就不負(fù)責(zé)了。如果 AI 不知道這條信息已經(jīng)過期,它就會用舊信息做錯誤的決策。

所以"時間"不是附加字段,而是架構(gòu)層面的設(shè)計。

Claude Code 的做法是:檢索時默認(rèn)只看"當(dāng)前有效"的信息;給記憶打時間戳,區(qū)分"曾經(jīng)為真"和"現(xiàn)在為真";舊信息不會直接刪除,而是標(biāo)記為過期。


6. 從"知道什么"到"會做什么"

前面的記憶都是"知識"——"這是什么"、"之前怎么樣"。

但有時候更重要的是"怎么做"。

比如 AI 學(xué)會了"怎么排查 Redis 連接問題"——不是一條知識點,而是一套可復(fù)用的解決流程。這種記憶叫程序性記憶。

Claude Code 通過把成功經(jīng)驗固化成技能(Skill) 來實現(xiàn)這一點。一個技能就是一段可執(zhí)行的"套路",下次遇到類似問題直接復(fù)用。


7. 記憶怎么"喂"給 AI?

外部記憶怎么接入 AI 的腦子?

最簡單的方式是拼接到 prompt 里。但這種方式有代價:每次都要把文字轉(zhuǎn)成 token,AI 再重新理解一遍。

前沿研究在嘗試跳過文本中間層,直接把記憶壓縮成 AI 更容易理解的"潛層表示",直接注入到注意力計算里。目前還在探索階段。


8. 總結(jié)

真正智能的記憶,不在于記住多少,而在于管理得有多精細(xì)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容