我逆向工程了 ChatGPT 的記憶系統(tǒng),發(fā)現(xiàn)了這些核心機(jī)制!! 原創(chuàng)
大家好,我是玄姐。
當(dāng)我詢問 ChatGPT 關(guān)于我的記憶時(shí),它列出了 33 個(gè)事實(shí),從我的名字、職業(yè)目標(biāo)到當(dāng)前的健身計(jì)劃應(yīng)有盡有。但它究竟是如何存儲和檢索這些信息的?為何整個(gè)過程會如此無縫自然?

經(jīng)過大量實(shí)驗(yàn),我發(fā)現(xiàn) ChatGPT 的記憶系統(tǒng)遠(yuǎn)比預(yù)想中簡單:沒有向量數(shù)據(jù)庫,也沒有基于對話歷史的檢索增強(qiáng)生成(RAG),取而代之的是四個(gè)獨(dú)立的層級:適配環(huán)境的會話元數(shù)據(jù)、長期存儲的明確事實(shí)、近期對話的輕量摘要,以及當(dāng)前對話的滑動(dòng)窗口。
本文將詳細(xì)拆解每個(gè)層級的工作原理,以及這種設(shè)計(jì)為何可能優(yōu)于傳統(tǒng)檢索系統(tǒng)。所有結(jié)論均來自對 ChatGPT 對話行為的逆向工程,OpenAI 并未公開這些實(shí)現(xiàn)細(xì)節(jié)。
一、ChatGPT 的上下文結(jié)構(gòu)
要理解記憶系統(tǒng),首先需要明確 ChatGPT 處理每條消息時(shí)接收的完整上下文。其結(jié)構(gòu)如下:[0] 系統(tǒng)指令 [1] 開發(fā)者指令 [2] 會話元數(shù)據(jù)(臨時(shí))[3] 用戶記憶(長期事實(shí))[4] 近期對話摘要(過往聊天的標(biāo)題 + 片段)[5] 當(dāng)前會話消息(本次聊天內(nèi)容)[6] 你的最新消息

前兩個(gè)組件定義了模型的高層行為和安全規(guī)則,并非本文重點(diǎn)。真正值得關(guān)注的部分從 “會話元數(shù)據(jù)” 開始。
二、四大記憶層級詳解
1. 會話元數(shù)據(jù)(Session Metadata)
這類信息僅在會話開始時(shí)注入一次,不會永久存儲,也不會成為長期記憶的一部分。該模塊包含:
- 設(shè)備類型(桌面端 / 移動(dòng)端)
- 瀏覽器及用戶代理(User Agent)
- 大致位置 / 時(shí)區(qū)
- 訂閱等級
- 使用模式與活躍頻率
- 近期模型使用分布
- 屏幕尺寸、暗黑模式狀態(tài)、JavaScript 啟用情況等
會話元數(shù)據(jù)示例:
會話元數(shù)據(jù):
- 用戶訂閱:ChatGPT Go
- 設(shè)備:桌面瀏覽器
- 瀏覽器用戶代理:macOS(Intel芯片)上的Chrome瀏覽器
- 大致位置:印度(可能使用VPN)
- 當(dāng)?shù)貢r(shí)間:約16:00
- 賬戶時(shí)長:約157周
- 近期活躍度:
- 過去1天內(nèi)活躍1天
- 過去7天內(nèi)活躍5天
- 過去30天內(nèi)活躍18天
- 對話模式:
- 平均對話深度:約14.8條消息
- 平均用戶消息長度:約4057字符
- 模型使用分布:
* 5% gpt-5.1
* 49% gpt-5
* 17% gpt-4o
* 6% gpt-5-a-t-mini
* 等
- 設(shè)備環(huán)境:
- JavaScript已啟用
- 暗黑模式已啟用
- 屏幕尺寸:900×1440
- 頁面視口:812×1440
- 設(shè)備像素比:2.0
- 當(dāng)前會話時(shí)長:約1100秒
這些信息能幫助模型根據(jù)你的使用環(huán)境定制回復(fù),但會話結(jié)束后所有數(shù)據(jù)都會失效。
2. 用戶記憶(User Memory)
ChatGPT 擁有專門的工具,用于存儲和刪除關(guān)于用戶的穩(wěn)定、長期事實(shí)。這些信息會在數(shù)周、數(shù)月內(nèi)不斷累積,形成一個(gè)持久的 “用戶畫像”。
以我為例,模型存儲了 33 個(gè)事實(shí),包括:
- 姓名、年齡
- 職業(yè)目標(biāo)
- 背景與過往工作經(jīng)歷
- 當(dāng)前項(xiàng)目
- 學(xué)習(xí)領(lǐng)域
- 健身計(jì)劃
- 個(gè)人偏好
- 長期興趣
這些記憶并非模型猜測得出,僅在以下兩種情況下會被明確存儲:
- 用戶明確指令:例如:“記住這個(gè)” 或 “把這個(gè)存入記憶”;
- 模型檢測到符合 OpenAI 標(biāo)準(zhǔn)的事實(shí)(例如:姓名、職位、明確偏好),且用戶通過對話隱含同意。
這些記憶會作為獨(dú)立模塊,注入未來的每一次提示詞中。若需添加或刪除內(nèi)容,直接告知模型即可:
- “把這個(gè)存入記憶……”
- “從記憶中刪除這個(gè)……”
用戶記憶示例:
- 用戶姓名:曼坦·古普塔(Manthan Gupta)
- 曾任職于Merkle Science和 Qoohoo(YC W23項(xiàng)目)
- 偏好通過視頻、論文和實(shí)操結(jié)合的方式學(xué)習(xí)
- 開發(fā)過 TigerDB、CricLang、負(fù)載均衡器、FitMe等項(xiàng)目
- 正在研究現(xiàn)代信息檢索系統(tǒng)(LDA、BM25、混合檢索、稠密嵌入、FAISS、RRF、大模型重排序)3. 近期對話摘要(Recent Conversations Summary)
這是最讓我意外的部分,我本以為 ChatGPT 會對過往對話使用某種 RAG 技術(shù),實(shí)則采用了輕量摘要的方式。
ChatGPT 會以以下格式存儲近期對話摘要列表:
1. <時(shí)間戳>:<聊天標(biāo)題>
|||| 用戶消息片段 ||||
|||| 用戶消息片段 ||||
關(guān)鍵發(fā)現(xiàn):
- 僅總結(jié)用戶消息,不包含助手回復(fù);
- 最多存儲約 15 條摘要;
- 僅作為用戶近期興趣的 “粗略地圖”,而非詳細(xì)上下文。
該模塊能讓 ChatGPT 在不同會話間保持連貫性,且無需調(diào)取完整對話記錄。相比之下,傳統(tǒng) RAG 系統(tǒng)需要:
- 對每條過往消息進(jìn)行嵌入處理;
- 對每個(gè)查詢執(zhí)行相似度搜索;
- 調(diào)取完整消息上下文;
- 導(dǎo)致更高的延遲和 token 成本。
ChatGPT 的方案更簡潔:預(yù)先生成輕量摘要并直接注入,以犧牲部分細(xì)節(jié)為代價(jià),換取速度和效率的提升。
4. 當(dāng)前會話消息(Current Session Messages)
這是當(dāng)前對話的常規(guī)滑動(dòng)窗口,包含本次會話中所有消息的完整歷史(未摘要處理)。
雖然我未能獲取 ChatGPT 確切的 token 限制,但模型確認(rèn)了以下規(guī)則:
- 限制基于 token 數(shù)量,而非消息條數(shù);
- 達(dá)到限制后,當(dāng)前會話中較早的消息會被移除(但記憶事實(shí)和對話摘要仍保留);
- 該模塊的所有內(nèi)容都會原封不動(dòng)傳遞給模型,以維持完整的會話連貫性。
這也是模型能在單一會話中進(jìn)行連貫推理的核心原因。
三、記憶系統(tǒng)的協(xié)同工作原理
當(dāng)你向 ChatGPT 發(fā)送消息時(shí),整個(gè)流程如下:
- 會話啟動(dòng):注入會話元數(shù)據(jù),讓模型了解你的設(shè)備、訂閱狀態(tài)和使用模式;
- 每條消息處理:始終包含你的存儲記憶事實(shí)(我案例中是 33 條),確保回復(fù)貼合你的偏好和背景;
- 跨會話感知:通過近期對話摘要獲取用戶近期興趣,無需調(diào)取完整歷史;
- 當(dāng)前上下文維護(hù):借助當(dāng)前會話的滑動(dòng)窗口,保障單一會話內(nèi)的連貫性;
- Token 預(yù)算控制:會話持續(xù)推進(jìn)時(shí),較早的消息會被移除,但記憶事實(shí)和對話摘要保留,維持整體連貫性。
這種分層設(shè)計(jì)讓 ChatGPT 既能提供個(gè)性化、上下文感知的體驗(yàn),又無需承擔(dān)檢索數(shù)千條過往消息的計(jì)算成本。
四、結(jié)論
ChatGPT 的記憶系統(tǒng)是一套平衡了個(gè)性化、性能和 token 效率的多層架構(gòu)。通過結(jié)合臨時(shí)會話元數(shù)據(jù)、明確長期事實(shí)、輕量對話摘要和當(dāng)前會話滑動(dòng)窗口,它實(shí)現(xiàn)了一項(xiàng)了不起的成果:既具備 “懂你” 的個(gè)性化體驗(yàn),又?jǐn)[脫了傳統(tǒng) RAG 系統(tǒng)的計(jì)算開銷。
核心洞察在于:并非所有內(nèi)容都需要以 “傳統(tǒng)記憶” 的形式存在,會話元數(shù)據(jù)實(shí)時(shí)適配環(huán)境,明確事實(shí)跨會話持久化,對話摘要提供無細(xì)節(jié)負(fù)擔(dān)的連貫性,當(dāng)前會話保障即時(shí)推理流暢。這些動(dòng)態(tài)組件會隨會話推進(jìn)和用戶偏好演變不斷更新,最終營造出 “系統(tǒng)真正了解你” 的錯(cuò)覺。
對用戶而言,這意味著 ChatGPT 會隨時(shí)間變得越來越個(gè)性化,且無需手動(dòng)管理知識庫;對開發(fā)者而言,這是一個(gè)務(wù)實(shí)的工程啟示:有時(shí)更簡潔、經(jīng)過精心篩選的方案,反而優(yōu)于復(fù)雜的檢索系統(tǒng),尤其是在你能掌控整個(gè)技術(shù)鏈路時(shí)。
這種設(shè)計(jì)的取舍十分明確:ChatGPT 為了速度和效率,犧牲了部分歷史細(xì)節(jié)的深度。但對大多數(shù)對話場景而言,這正是最合理的平衡,系統(tǒng)記住了真正重要的內(nèi)容(你的偏好、目標(biāo)、近期興趣),同時(shí)保持快速響應(yīng)。
參考原文:
??https://manthanguptaa.in/posts/chatgpt_memory/??
好了,這就是我今天想分享的內(nèi)容。
本文轉(zhuǎn)載自??玄姐聊AGI?? 作者:玄姐

















