所有原生大模型本身,完全没有持久记忆。
诸如GPT、DeepSeek 、豆包底层模型,推理完成后不会保存任何对话信息。
我们使用AI产品所感受到的「记忆」,不是模型自带功能,是上层应用程序额外实现的业务逻辑。
任何软件的交互模式,归根结底都是输入和输出,Agent对话框也不会例外。
使用豆包、千问等Agent的对话,实际上是由一个个对话窗口组成,它在业务层面,保留了用户使用AI产生的历史数据,形成记忆。
对话窗口
每一个对话窗口 ,等于一条业务侧的会话记录 ID,AI平台后端会把你当前对话的所有消息持久化存储:
- 用户历史消息,存放最近 N 轮原始对话,完整原文,不做摘要,直接进 Prompt。
- AI 历史回复
- 记忆模块提取的用户信息(如果开启记忆)
继续提问时,应用把窗口内全部历史 + 当前问题拼装成 Prompt,一并提交给大模型;
大模型做完推理返回回答,模型本身不会留存任何东西,全部状态仍然保存在这个窗口里。
长时间对话交互,总token量会越用越多,总token量可能会超过模型一次性推理的上限(比如豆包模型256K tokens、DeepSeek‑V4‑Flash 1M tokens)。如果总tokens量超过了上限,就需要对历史记录做压缩处理,把早期的多轮会话内容,提炼摘要。多次迭代压缩(多次会话滚动压缩):误差会层层累积,越往后幻觉概率越高,输出的内容越来越偏离核心。
为了优化这个问题,所以引入了记忆分层架构(借鉴人脑):短期记忆(即窗口)、长期记忆、元记忆,解决超长会话问题。
上下文窗口上限
模型有最大 token 上限,窗口聊天内容累积太多,旧内容会被截断丢弃。
现象:
-
聊很久之后,AI 会忘记很早之前说过的内容,不是 bug,是上下文的压缩处理。
-
一次性录入很长的文本,页面直接提示超过了 xxx 字符上限,这是前端提前预判了超过模型上下文上限的拦截,避免后续超限问题。
窗口隔离
不同窗口之间完全隔离。
A 窗口聊的内容,B 窗口默认一无所知;除非开启跨会话记忆功能,由业务层把提取的信息注入新窗口。
删除窗口
删除窗口,就是服务端删除该会话的全部历史消息记录。
底层模型权重不受任何影响。
短期记忆存储
推荐使用 Redis,读写毫秒级适合高并发,读取完整 messages,方便做 token 统计、截断逻辑。
存储结构:Hash 或者 List,key = session_id
数据:完整 messages 数组 (JSON),同时额外存当前总 token 计数。
过期策略:设置 TTL,例如 24h‑72h,闲置自动淘汰。
长期记忆
短期记忆受限于模型上下文窗口,只能服务当前会话;存在容量上限、窗口隔离、冗余噪声、无法精细化管理记忆的缺陷。为了解决跨会话持久记住关键信息,降低 token 开销,才有了上层业务实现的长期记忆。
记忆采集
作用:不要把整段聊天全部存库,提炼关键事实,过滤闲聊、临时上下文。
两种实现方式:
- LLM 提取:把一轮 / 多轮对话丢给模型,prompt 指令:提取用户关键信息:偏好、事实、过往经历、任务背景,输出结构化 json。
- 规则 + 函数:特定字段直接提取(用户设置、表单数据)。
过滤策略:
- 临时问题、一次性问答、重复内容不存入长期记忆;
- 敏感信息按业务策略过滤。
记忆储存
这是工程落地的核心,选型决定了系统的性能上限。常见存储方案对比如下:
| 存储类型 | 代表产品 | 适用场景 | 关键能力 |
|---|---|---|---|
| 向量数据库 | Milvus, Qdrant | 语义相似性检索 | 近似最近邻(ANN)搜索,混合检索 |
| 关系数据库 | PostgreSQL, MySQL | 结构化事实 | 精确查询,事务支持,ACID保证 |
| 分层存储 | MemGPT | 管理海量对话历史 | 将旧记忆压缩并归档至廉价存储层 |
| 对象存储 | OSS | 用户上传图片、文件 | 存储附件 |
长期记忆的结构化元数据:采用MySQL,存储记忆 id、user_id、记忆文本、标签、创建时间、用户手动删除标记。
跨会话长期记忆功能,采用Milvus
-
将提炼出来的用户记忆片段生成向量存入向量库;
-
用户新提问时,做语义相似度召回,拿到相关历史记忆片段;
存储组合
- 主存储:关系数据库(会话、消息、记忆元数据)
- 向量库:只为【跨会话长期记忆】服务
- Redis:热点缓存、临时状态
- 对象存储:图片、文件、冷会话归档
元记忆
普通记忆存事实内容;而元记忆是记忆的记忆,描述记忆本身的元信息,记录记忆从哪里来、可信度、重要程度、时间、来源会话、置信分等元属性。
普通记忆:“用户喜欢看诺兰的电影”
元记忆:这条记忆来自 2026‑05‑02对话,是用户亲口说的,置信度 10 分,重要度 5 分
核心作用
-
记忆召回排序
检索记忆的时候,不只靠向量相似度;结合元记忆:
重要性、置信度、时间
综合打分。
同样语义匹配,置信度低、不重要的记忆排后面,减少噪声。
- 记忆维护(合并、冲突检测、遗忘)
- 当新记忆和旧记忆冲突:依靠元记忆的置信度、来源,判断采信哪一条;用户手动输入的记忆置信度高于 AI 自动提取。
- 自动遗忘:长期不重要、低重要分的记忆,逐步衰减淘汰。
- 记忆合并:多条同源重复记忆,可以根据元信息做合并。
-
溯源、可解释
AI 给出回答之后,可以追溯:这条记忆来自哪一次聊天、用户原本说的原话是什么。
用户查看记忆面板,也可以展示来源时间。
-
安全风控
低置信度的记忆,在 prompt 里降低权重,避免 AI 脑补虚假记忆。置信度过低直接丢弃,不注入 Prompt。
总结
AI 整套会话短期记忆、长期记忆、元记忆架构,是工程上对人类大脑记忆机制的模仿,但只是软件层面的模拟,并不是真正生物学记忆。
AI 如何借鉴人类
-
借鉴「短期→长期转化」:
人类不会把每一句对话全部永久记住,只会提炼关键事实、深刻经历存入长期记忆。
AI 同样不存储全部聊天原文,通过大模型提取关键事实,存入长期记忆库,过滤闲聊噪声。
-
借鉴「遗忘机制」:
人脑会淡化不重要的记忆。
AI 通过元记忆的重要性分数、置信度,淘汰低价值记忆,控制记忆总量,避免无限膨胀。
-
借鉴「记忆校验」:
人会判断一段记忆是否可信。
AI 依靠元记忆:来源、置信分、原始证据,处理记忆冲突,降低幻觉、错误记忆。
但人类记忆是生物神经元自发形成,AI是外部存储。
人类会主观感受、复盘记忆;AI 只是读取文本片段拼入 Prompt。
人类记忆会模糊、篡改;AI 记忆如果不做更新,存储的内容是原样静态数据。
所以,AI会像电影里演的那样,有自己的情感吗?答案一定是没有的,但可以做共情式对话、记住你的问题、安慰、陪伴、理解你的处境。