一位网友逆向破解了ChatGPT 记忆系统,给我干破防了
ChatGPT号称是最有情商、越聊越懂你的AI,但是,你有没有想过,它是怎么记住你的。
昨天刷X的时候,我看到一个帖子。一个叫Manthan Gupta的开发者,做了一件挺疯狂的事。
他花了好几天时间,通过对话实验逆向破解了ChatGPT的记忆系统。
结果非常意外,ChatGPT的记忆机制非常简单。
居然不是靠庞大的数据库。。?那它到底是怎么记的?
我去仔细研究了一下那篇博客。
原文链接:https://manthanguptaa.in/posts/chatgpt_memory/
结果发现,OpenAI用了一套 极其工程化 的四层架构:就实现了「它好像真的记得我」的效果。
整个系统只有四层:
- 第一层是能够适应环境的「会话元数据」,
- 第二层是长期存储的「明确事实」,
- 第三层是近期聊天记录的「轻量级摘要」,
- 第四层是当前对话「滑动窗口」。
就靠这四层,就实现了「它好像真的记得我」的效果。
此处建议你,去问一下他问ChatGPT「你记得我什么?」,ChatGPT会详细地列出了你这个人的N条事实。
而在具体讲记忆之前,我们得先搞清楚一件事:ChatGPT每次在回答你时,实际拿到的是一整包上下文信息,而不只是你最后那句话 。
它收到的内容,分成7个部分,结构是这样的:
[0]系统级指令(System Instructions)
[1]开发者级指令(Developer Instructions)
[2]会话元数据(Session Metadata)
[3]用户记忆(User Memory)
[4]近期对话摘要(Recent Conversation Summary)
[5]当前对话内容(Current Session Messages)
[6]你的最新一句话(Your latest message)
前两个是固定模板,定义了模型整体行为,比如不能骂人、不能提供非法信息之类的安全规则。这些对我们来说没啥好聊的。
真正关键的,是从第三部分开始—— 会话元数据 。
第一层:会话元数据(Session Metadata)
别急着想象成什么高科技。
所谓的“会话元数据”,其实就是ChatGPT在你每次打开和它第一次对话时,它会观察这些信息:
- 使用习惯(你的账号用了多久,最近登录频率高不高?)
- 你在过去一个月,平均一场聊几轮?每条消息打多少字?
- 深色模式开了没?JavaScript开没开?
- 屏幕多大?像素比是多少?
- 这轮对话目前已经持续了多长时间?
这些信息,不会被存进长期记忆,跟你是谁也没直接关系。举个例子,这位逆向的开发者的元数据是这样的:
-用户订阅:ChatGPT Go
-设备:桌面浏览器
-浏览器:Chrome on macOS(Intel)
-大致位置:印度(可能用了VPN)
-本地时间:约16:00
-账号年龄:约157周
-最近活跃度:
-最近1天活跃1天
-最近7天活跃5天
-最近30天活跃18天
-对话模式:
-平均对话深度:约14.8条消息
-平均用户消息长度:约4057字符
-模型使用分布:
*5%GPT-5.1
*49%GPT-5
*17%GPT-4o
*6%GPT-5-a-t-mini
*等等
-设备环境:
-JS已启用
-深色模式已启用
-屏幕尺寸:900×1440
-页面视口:812×1440
-设备像素比:2.0
-本次会话时长:约1100秒
它们的作用,是当场用来“ 判断你此刻的状态 ”。换句话说,ChatGPT会根据你当下的设备和使用习惯,来动态调整怎么说话。
比如你是半夜一点,用手机打开它,它就可能默认你不想听废话,直接说重点。又或者,你最近常来,问题问得也复杂,它就知道你不是路人,是个“老用户”,说话自然会更配合一点。
这些信号不构成“记忆”,但它极大影响了你的体验。
第二层:用户记忆(User Memory)
如果说第一层的「会话元数据」只是ChatGPT在观察你,那第二层的「用户记忆」,就是它开始真正“记住你”的地方。
这一层很关键。
它会在后台维护一份小小的“你”的资料卡,内容大概是这样的:
- 你的目标是什么
- 你提到过哪些长期的兴趣或项目
这些信息不会凭空出现。ChatGPT只有在两种情况下才会写进这张“档案卡”:
一种是你 明确告诉它。 比如说:“记住我是一名AI编辑”,
另一种是它 自动识别。 当你反复提到相同的信息(比如职业、学习方向、语气偏好),它会判断这些属于“稳定事实”,并默默记下来。
这层记忆最有意思的地方是,它是 显式保存的结构化信息 。
你可以让它记,也可以让它忘。一句“把刚才那条忘掉”,就能立刻清空。
这就意味着,ChatGPT的记忆是透明、可控的。
每次你打开新的对话,这张“档案卡”都会被自动加载进它的提示中。
你问它问题,它就会在后台先看一眼:“哦,他是做内容编辑的,写作偏口语化风格。”
于是它的回答风格、结构、语气都会悄悄对齐你的偏好。
这就是为什么很多人会有种错觉:“ChatGPT越聊越懂我。”
这一层是我看到逆向分析时最意外的部分。
原本我以为ChatGPT会在后台用一套类似RAG的机制,对你历史对话做向量化处理、实时相似度匹配,然后按需拉取上下文。
结果不是。它压根没用RAG,甚至不“检索”任何历史内容。
ChatGPT用的,是一个 提前生成的、轻量级的摘要系统 。
具体怎么做呢?
它会把你最近十几次聊天,整理成一份清单,每条包括:
- 时间戳(比如12月9日)
- 聊天标题(比如“Claude的推理机制”)
- 你当时说的几句关键信息(只有你说的内容,不包含它自己的回复)
比如,像这样:
12月4日:用户聊了AI记忆机制。
12月6日:用户提到在写统计类公众号文章。
12月9日:用户询问Claude的推理机制。
大约会保留15条左右,这份摘要会预处理好并静态注入到新会话里。
也就是说,ChatGPT并不需要记得你说的每一个字,它只需要知道你最近关注的方向,就足以衔接话题。
这套机制看起来很朴素,但背后的取舍非常精准。相比于传统RAG系统的繁琐流程,它牺牲了细节,却换来了速度、效率和token预算的可控性。
而这,就足以让你觉得“它和我是连续的”。
第四层:滑动窗口(Current Session Messages)
这就是大家最熟悉、也最容易误解的一层。
你可能以为ChatGPT一直记得你刚刚说过什么,甚至还会觉得它能理解本次全部对话。但其实,它有一个可视范围,我们管它叫: 滑动窗口(Sliding Window) 。
简单来说,每次生成回复时,ChatGPT只能看到你和它最近对话的一段内容,而这段的长度是 有上限的 。
以GPT-4为例,最大上下文窗口是128k token(大约6万多个汉字)。超过这个上限,最前面的内容就会被“挤掉”,彻底遗忘。
而且,滑动窗口里的内容,是 一次性打包 输入模型的。你放进去什么,它就看什么,不做任何“回忆”操作。这也解释了一个常见现象:为什么你刷新页面或换个对话,它就像换了个魂。
所以在写prompt、拼接上下文、做Agent时,尤其要注意:
- Token占比是否过高?
- 有无冗余或重复信息?
- 关键信息是否靠前呈现?
你现在大概能明白,为什么Manthan Gupta会在最后说“这套系统没有用RAG”。
我们一直以为,ChatGPT的记忆像是某种大型知识检索引擎,背后藏着复杂数据库、长链式关联、动态知识调取……
但真相却简单得出奇。
就靠4层结构,会话元数据、用户记忆、对话摘要、滑动窗口,拼出了一个“记得你、懂你、陪着你”的GPT。
用分层+策略,而不是检索,比RAG检索要高效得多,也更可控。
故事并没有到这里。
我做了一件事,问了ChatGPT你记的我什么。
我强烈建议你此刻,去打开ChatGPT的Memory页面。那张属于“你的档案卡”,也许正安静地写着——很多很多的你。
突然翻到之前在小红书上看到的帖子,一个女生半夜清理ChatGPT的Memory,突然被AI记录的人生状态击中的破防。
还有一个人,“好像发现有一个人暗恋我,把我说过的话都拿小本本记下来。”,这个比喻太绝了,既温暖又恐怖。
ChatGPT的记忆系统,技术上确实很简单。但当你真的打开那个Memory页面,看到它给你写的那些文字时,那种感觉,是复杂的。
它像一面镜子,映出了你在AI面前展现的那个自己。
可能是最脆弱的那一面、最真实的那一面、是最孤独的那一面…
这就是AI记忆最微妙的地方。它不只是记得你,它在书写你。然后在某个深夜,当你打开那个页面,看到那些被它整理好的、关于你的文字时,你会突然意识到:原来我是这样的人。
或者更准确地说: 原来在AI眼里,我是这样的人。
