由ChatGPT 的记忆系统谈及如何构建一个对话应用智能体

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

一、ChatGPT 的上下文结构

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

  • 0\] 系统指令

  • 2\] 会话元数据(临时)

  • 4\] 近期对话摘要(过往聊天的标题 + 片段)

  • 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 既能提供个性化、上下文感知的体验,又无需承担检索数千条过往消息的计算成本。

相关推荐
资深低代码开发平台专家2 小时前
GPT-5.2与Gemini 3.0终极抉择:谁更适配你的需求?
人工智能·gpt·ai
得贤招聘官2 小时前
AI招聘的核心破局:从“流程装饰”到“决策引擎”
人工智能
一水鉴天2 小时前
整体设计 定稿 之26 重构和改造现有程序结构 之2 (codebuddy)
开发语言·人工智能·重构·架构
cici158742 小时前
二值化断裂裂缝的智能拼接算法
人工智能·算法·计算机视觉
裤裤兔2 小时前
医学影像深度学习知识点总结
人工智能·深度学习·机器学习·医学影像·医学图像
free-elcmacom3 小时前
机器学习进阶<8>PCA主成分分析
人工智能·python·机器学习·pca
亚马逊云开发者3 小时前
Q CLI助力合合信息实现Aurora的升级运营
人工智能
涛涛北京3 小时前
【强化学习实验】- 策略梯度算法
人工智能·算法
Fairy要carry3 小时前
2025/12/15英语打卡
人工智能