经过大量实验,发现 ChatGPT 的记忆系统远比预想中简单:没有向量数据库,也没有基于对话历史的检索增强生成(RAG),取而代之的是四个独立的层级:适配环境的会话元数据、长期存储的明确事实、近期对话的轻量摘要,以及当前对话的滑动窗口。

一、ChatGPT 的上下文结构

要理解记忆系统,首先需要明确 ChatGPT 处理每条消息时接收的完整上下文。其结构如下:

  • [0] 系统指令
  • [1] 开发者指令
  • [2] 会话元数据(临时)
  • [3] 用户记忆(长期事实)
  • [4] 近期对话摘要(过往聊天的标题 + 片段)
  • [5] 当前会话消息(本次聊天内容)
  • [6] 你的最新消息

前两个组件定义了模型的高层行为和安全规则,并非本文重点。真正值得关注的部分从 “会话元数据” 开始。

二、四大记忆层级详解

1. 会话元数据(Session Metadata)

这类信息仅在会话开始时注入一次,不会永久存储,也不会成为长期记忆的一部分。该模块包含:

  • 设备类型(桌面端 / 移动端)
  • 浏览器及用户代理(User Agent)
  • 大致位置 / 时区
  • 订阅等级
  • 使用模式与活跃频率
  • 近期模型使用分布
  • 屏幕尺寸、暗黑模式状态、JavaScript 启用情况等

会话元数据示例:

- 用户订阅:ChatGPT Go
- 设备:桌面浏览器
- 浏览器用户代理:macOS(Intel芯片)上的Chrome浏览器
- 大致位置:印度(可能使用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
    * 等
- 设备环境:
  - JavaScript已启用
  - 暗黑模式已启用
  - 屏幕尺寸:900×1440
  - 页面视口:812×1440
  - 设备像素比:2.0
- 当前会话时长:约1100秒

这些信息能帮助模型根据你的使用环境定制回复,但会话结束后所有数据都会失效。

2. 用户记忆(User Memory)

ChatGPT 拥有专门的工具,用于存储和删除关于用户的稳定、长期事实。这些信息会在数周、数月内不断累积,形成一个持久的 “用户画像”。

以我为例,模型存储了 33 个事实,包括:

  • 姓名、年龄
  • 职业目标
  • 背景与过往工作经历
  • 当前项目
  • 学习领域
  • 健身计划
  • 个人偏好
  • 长期兴趣

这些记忆并非模型猜测得出,仅在以下两种情况下会被明确存储:
用户明确指令:例如:“记住这个” 或 “把这个存入记忆”;
模型检测到符合 OpenAI 标准的事实(例如:姓名、职位、明确偏好),且用户通过对话隐含同意。

这些记忆会作为独立模块,注入未来的每一次提示词中。

用户记忆示例:

- 用户姓名:曼坦·古普塔(Manthan Gupta)
- 曾任职于Merkle Science和 Qoohoo(YC W23项目)
- 偏好通过视频、论文和实操结合的方式学习
- 开发过 TigerDB、CricLang、负载均衡器、FitMe等项目
- 正在研究现代信息检索系统(LDA、BM25、混合检索、稠密嵌入、FAISS、RRF、大模型重排序)
3. 近期对话摘要(Recent Conversations Summary)

这是最让我意外的部分,我本以为 ChatGPT 会对过往对话使用某种 RAG 技术,实则采用了轻量摘要的方式。

ChatGPT 会以以下格式存储近期对话摘要列表:

1. <时间戳>:<聊天标题>
|||| 用户消息片段 ||||
|||| 用户消息片段 ||||

关键发现:
仅总结用户消息,不包含助手回复;
最多存储约 15 条摘要;
仅作为用户近期兴趣的 “粗略地图”,而非详细上下文。

ChatGPT 的方案更简洁:预先生成轻量摘要并直接注入,以牺牲部分细节为代价,换取速度和效率的提升。

4. 当前会话消息(Current Session Messages)

这是当前对话的常规滑动窗口,包含本次会话中所有消息的完整历史(未摘要处理)。

虽然我未能获取 ChatGPT 确切的 token 限制,但模型确认了以下规则:

  • 限制基于 token 数量,而非消息条数;
  • 达到限制后,当前会话中较早的消息会被移除(但记忆事实和对话摘要仍保留);
  • 该模块的所有内容都会原封不动传递给模型,以维持完整的会话连贯性。

这也是模型能在单一会话中进行连贯推理的核心原因。

三、记忆系统的协同工作原理

当你向 ChatGPT 发送消息时,整个流程如下:

  1. 会话启动:注入会话元数据,让模型了解你的设备、订阅状态和使用模式;
  2. 每条消息处理:始终包含你的存储记忆事实(我案例中是 33 条),确保回复贴合你的偏好和背景;
  3. 跨会话感知:通过近期对话摘要获取用户近期兴趣,无需调取完整历史;
  4. 当前上下文维护:借助当前会话的滑动窗口,保障单一会话内的连贯性;
  5. Token 预算控制:会话持续推进时,较早的消息会被移除,但记忆事实和对话摘要保留,维持整体连贯性。

这种分层设计让 ChatGPT 既能提供个性化、上下文感知的体验,又无需承担检索数千条过往消息的计算成本。

Logo

更多推荐