社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  chatgpt

一位网友逆向破解了 ChatGPT 记忆系统,给我干破防了

夕小瑶科技说 • 8 月前 • 196 次点击  

ChatGPT 号称是最有情商、越聊越懂你的 AI,但是,你有没有想过,它是怎么记住你的。

昨天刷 X 的时候,我看到一个帖子。一个叫 Manthan Gupta 的开发者,做了一件挺疯狂的事。

他花了好几天时间,通过对话实验逆向破解了 ChatGPT 的记忆系统。

结果非常意外,ChatGPT 的记忆机制非常简单。

没有向量数据库,没有对历史对话做 RAG 检索,甚至连复杂的 embedding 召回都没用

居然不是靠庞大的数据库。。?那它到底是怎么记的?

我去仔细研究了一下那篇博客。

原文链接: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 在你每次打开和它第一次对话时,它会观察这些信息:

  • 设备类型(你是用手机、平板,还是电脑?)
  • 浏览器和操作系统(开的是什么浏览器?Chrome、Safari,还是别的?)
  • 大致地理位置/时区(你的大致地理位置(比如在哪个国家)、本地时间是多少?)
  • 订阅等级(Plus/Pro/Team)
  • 使用习惯(你的账号用了多久,最近登录频率高不高?)
  • 你在过去一个月,平均一场聊几轮?每条消息打多少字?
  • 深色模式开了没?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 越聊越懂我。”

第三层:近期对话摘要(Recent Conversation Summary)

这一层是我看到逆向分析时最意外的部分。

原本我以为 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 眼里,我是这样的人。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/190547