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

相关推荐
浔川python社4 分钟前
【维护期间重要提醒】请勿使用浔川 AI 翻译 v6.0 翻译违规内容
人工智能
CS创新实验室23 分钟前
AI 与编程
人工智能·编程·编程语言
min18112345638 分钟前
深度伪造内容的检测与溯源技术
大数据·网络·人工智能
_codemonster39 分钟前
高斯卷积的可加性定理
人工智能·计算机视觉
数据智研1 小时前
【数据分享】(2005–2016年)基于水资源承载力的华北地区降水与地下水要素数据
大数据·人工智能·信息可视化·数据分析
likuolei1 小时前
Spring AI框架完整指南
人工智能·python·spring
梵得儿SHI1 小时前
(第四篇)Spring AI 核心技术攻坚:多轮对话与记忆机制,打造有上下文的 AI
java·人工智能·spring·springai生态·上下文丢失问题·三类记忆·智能客服实战案
二哈喇子!2 小时前
PyTorch生态与昇腾平台适配:环境搭建与详细安装指南
人工智能·pytorch·python
lingzhilab2 小时前
零知ESP32-S3 部署AI小智 2.1,继电器和音量控制以及页面展示音量
人工智能
两万五千个小时2 小时前
AI Agent 框架演进
人工智能