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

相关推荐
纤纡.18 小时前
PyTorch 入门精讲:从框架选择到 MNIST 手写数字识别实战
人工智能·pytorch·python
大大大反派18 小时前
CANN 生态中的自动化部署引擎:深入 `mindx-sdk` 项目构建端到端 AI 应用
运维·人工智能·自动化
程序猿追18 小时前
深度解读 AIR (AI Runtime):揭秘 CANN 极致算力编排与调度的核心引擎
人工智能
2601_9495936518 小时前
深入解析CANN-acl应用层接口:构建高效的AI应用开发框架
数据库·人工智能
●VON18 小时前
CANN安全与隐私:从模型加固到数据合规的全栈防护实战
人工智能·安全
刘大大Leo19 小时前
GPT-5.3-Codex 炸了:第一个「自己造自己」的 AI 编程模型,到底意味着什么?
人工智能·gpt
小镇敲码人19 小时前
剖析CANN框架中Samples仓库:从示例到实战的AI开发指南
c++·人工智能·python·华为·acl·cann
摘星编程19 小时前
CANN ops-nn Pooling算子解读:CNN模型下采样与特征提取的核心
人工智能·神经网络·cnn
程序员清洒19 小时前
CANN模型安全:从对抗防御到隐私保护的全栈安全实战
人工智能·深度学习·安全
island131419 小时前
CANN ops-nn 算子库深度解析:神经网络计算引擎的底层架构、硬件映射与融合优化机制
人工智能·神经网络·架构