← 算法与AI总览 首页 / 算法与AI / AI 基础入门 / 第9课 · 记忆
AI 基础入门 · 第9课

记忆:为什么大模型"聊到后面就忘了前面"

接上一课:上下文窗口只是本次对话的工作台,关掉就清零。那为什么有的 AI 能记住你上次说的名字?答案是——模型本身根本没有记忆,所谓记忆全是工程师外挂上去的。这一课把"记忆"拆成三层,再讲清四种外挂方案,以及你最该关心的隐私边界。

① 小白第一课怎么学(4 步走,约 50 分钟)

这一课解释"AI 为什么能/不能记住你",是理解各种"AI 助手个性化"产品的底层钥匙。

1先破除误解(10 分钟)
读②③:模型无状态,记忆全是外挂。
2分清三层记忆(15 分钟)
读④:参数 / 会话 / 长期,别混。
3看四种工程方案(15 分钟)
读⑤:拼接 / 向量 / 摘要 / 数据库。
4刷题自测(10 分钟)
做⑦⑩,错题回⑥看易错点。
本课小目标学完你要能:① 说清"模型为什么记不住你昨天聊过什么";② 区分参数记忆、会话记忆、长期记忆三层;③ 说出四种外挂记忆方案各自的优缺点;④ 意识到记忆功能背后的隐私问题。

② 一图看懂:四种记忆方案对比

模型本身:无状态、无记忆 靠四种外挂"装"出记忆 方案一:对话历史全拼接 • 把以前所有对话原样塞进输入 • 简单直接,但越聊越费 token • 聊久了必然撞上上下文上限 适合:短对话 方案二:向量记忆库 • 过往对话变向量存数据库 • 下次按语义检索相关片段喂回 • 不占满整个窗口,省钱 适合:长周期、跨会话 方案三:记忆摘要 • 把长对话总结成几句话 • 摘要代替原文塞进上下文 • 省 token,但细节会丢 适合:聊了很久的长会话 方案四:外部数据库(函数调用) • 直接存用户画像/偏好 • 模型用工具调用去读 • 结构化、可控、可删除 适合:记住"你是谁"
读法:中心是真相——模型本身记不住任何事。四种外挂方案各有取舍:拼原状最简单最贵;向量库能跨会话;摘要省 token 但丢细节;数据库最适合存结构化的用户偏好。真实产品往往是几种混着用。

③ 本质直觉:模型每次都是"第一次见面"

关键事实:大模型是无状态的(Stateless)。你每发一条消息,它都像第一天上班、第一次见你——它不知道你昨天聊过什么,不知道你叫什么,甚至不知道你们之前还说过话。

那它为什么好像记得?因为你的 App 在背后做了一件事:每次发请求时,把之前的对话历史一起打包塞进这次的上下文窗口(上一课讲的工作台)。模型这一次"看见"了历史,所以答得像记得一样。但这不是它记住了,是你每次都把小抄重新递给它一遍。

推论一:你新开一个对话窗口,它立刻变回"第一次见你"。因为没人给它递小抄了。

推论二:关掉 App、清掉历史,那些对话就真的没了——除非开发者另外存到了别的数据库里。

一句话:模型的"大脑"(参数)是固定的、训练好就冻结的;它的"记性"全靠外面每次递给它的那张纸。

每次请求 = 一张全新的白纸 模型本身不带任何"上次"的记忆 App 把历史小抄递进来 上下文窗口 = 本次的临时工作台 它"看起来"记得,其实在照小抄 小抄一撤(新对话/清历史)→ 立刻忘
为什么这一点特别重要一旦你接受"模型无状态、记忆全靠外挂",后面所有产品现象都顺了:为什么换个 App 它就不认识你了、为什么开新会话要重说一遍、为什么"记住我的偏好"要专门开通权限——全是因为这些记忆存在模型外面的数据库里。

④ 完整体系:三层记忆,别搞混

层级存在哪特点关掉对话还在吗
① 参数记忆模型权重里训练时学进去的知识,冻结不变,如"北京是中国首都"一直在(但不会新增)
② 会话记忆本次上下文窗口当前对话历史,临时塞进输入,聊久了会被截断关了就没
③ 长期记忆外部数据库跨会话记住"你是谁、你偏好什么",工程外挂在(除非你删)

三种工程外挂方案怎么选

方案做法优点缺点
历史拼接以前对话全塞进输入最简单、信息全费 token、聊久撞窗口上限
向量记忆对话变向量存库,按语义检索相关片段跨会话、省 token可能检错、不保证全记得
记忆摘要长对话总结成几句话再塞进去大幅省 token摘要会丢细节
外部数据库存用户画像,用函数调用读取结构化、可控、可删要自己建表、自己写逻辑
别把三层记成一层模型"知道圆周率约等于 3.14"是参数记忆;它"记得你刚说你儿子上二年级"是会话记忆;它"跨月还记得你对花生过敏"是长期记忆。三者来源完全不同,别混为一谈。

⑤ 四种外挂方案,逐个讲透

方案一:对话历史拼接(最朴素)
把以前你一句我一句的记录,原封不动拼在这次提问前面。
这是最容易想到、也是所有聊天机器人默认的做法。问题是:每轮都要把全部历史重读一遍,越聊越贵、越聊越慢,最后撞上上下文窗口被截断。适合短对话,不适合长期陪伴。
方案二:向量记忆(Embedding 检索)
把过往每段对话转成一串数字(向量)存进数据库。
下次你提问时,先把你的问题也转成向量,去库里找语义最相近的几段旧对话,只把这几段喂进上下文。它像一个"按意思翻笔记"的检索系统,不把整本笔记都带上。省 token,还能跨会话,是现在长期记忆的主流做法。
方案三:记忆摘要(Summarization)
聊得太长时,让模型先把前面的对话压缩成几句话。
比如"用户有个二年级儿子、对狗害怕、在南京",用这三句话代替几千字原文。优点是极省 token;缺点是摘要必然丢细节——你上周具体说的那句话,可能被概括没了。常和方案二搭配用。
方案四:外部数据库 + 函数调用
把"你是谁"存在一张用户表里,模型要用时通过工具去查。
比如表里记着"昵称、偏好简洁回答、过敏史"。模型这次回答前,先调用 getUserProfile(你的id) 把这行数据读出来,再据此回答。这种最结构化、最可控,也最容易做到"一键删除记忆"。
隐私边界:存了什么、谁能看、怎么删记忆越聪明,意味着它存的你的数据越多。你要主动关心三件事:①它到底存了哪些对话/偏好;②这些数据谁能访问、存在哪;③有没有"清空记忆/注销删除"的入口。记住——能被记住的,理论上也能被导出、被泄露。

⑥ 高频错误诊断(4 条)

错误 1:以为模型"聊久了会自己记住我"模型权重是冻结的,你跟它聊一万句也不会改它。所谓记住,全是 App 把历史塞进上下文或存进了外部库。
错误 2:把参数记忆和长期记忆混为一谈"它知道圆周率"是参数记忆(训练学的);"它记得我过敏"是长期记忆(外挂数据库)。前者改不了、后者能删。
错误 3:以为向量记忆能完整回忆向量检索是"找语义相近的片段",不保证找全、也可能找错。它不是录像机,更像"凭印象翻到几页相关笔记"。
错误 4:忽视记忆带来的隐私风险你以为只是在聊天,其实你说过的住址、病情、家庭关系可能被长期存储、用于个性化甚至被泄露。开通"记忆功能"前,先想清楚哪些话不该说。

⑦ 考点真题演练(4 题)

考点分布

考法出题形式应对
无状态本质问模型为什么新开对话就忘无状态,靠上下文喂历史
三层记忆区分问"知道圆周率"属于哪层参数记忆
向量记忆原理问跨会话记忆怎么做Embedding 检索相关片段
隐私边界问记忆功能要注意什么存了什么/谁能看/怎么删

真题基础1. 为什么大模型"新开一个对话就不认识你了"?

真题中档2. 模型"知道北京是中国首都",这种知识属于哪一层记忆?

真题中档3. 用"向量记忆"实现跨会话记住你,核心做法是?

真题拔高4. 关于 AI 记忆的隐私,下面哪种做法最稳妥?

⑧ 必背知识点卡

核心真相:模型无状态,每次都是第一次见你 记忆全是外挂
参数记忆:训练进权重的知识,冻结不变 如常识
会话记忆:当前对话历史,塞在上下文里 关了就没
长期记忆:外部数据库,跨会话记住你是谁 工程外挂
四方案:全拼接 / 向量检索 / 记忆摘要 / 外部数据库 各有取舍
向量记忆:Embedding 存库,按语义找相关片段 省 token 跨会话
隐私三问:存了什么 / 谁能看 / 怎么删 开通前想清楚

⑨ 应用输出:跟家人解释"为什么它这次又忘了你"

实战场景:家人抱怨"昨天才跟它说过我过敏,今天又问我,是不是白聊了?"
① 先安抚:不是它不上心,是它大脑本来就不带记忆,每次都是重新开始。
② 打比方:它像一个每次上班都失忆的临时工,你昨天说的话全靠一张纸记着,今天换了工位就没那张纸了。
③ 给办法:想让它长期记住,要用带"记忆/用户画像"的功能,把过敏这种关键信息存进它的外部档案;重要的事自己也重复一遍。
④ 提个醒:它能记住你,也就存了你的隐私,敏感信息想清楚再让它记。
口述全链路"模型本身无状态、不记忆;它知道常识是参数记忆;它记得你刚说的话是会话记忆(塞在上下文里);它跨天记得你是外挂的长期记忆(向量库或用户表)。方案有全拼接、向量检索、摘要、外部数据库四种,越聪明的记忆存的隐私越多,要注意删除入口。"

⑩ 分层练习 16 题(基础 6 + 中档 5 + 拔高 5)

▍基础 6 题

基础1大模型本身有没有"记忆"?
没有。它是无状态的,每次对话都像第一次见你,所谓记忆全是工程外挂。
基础2"它知道水在 100℃ 沸腾"属于哪层记忆?
属于参数记忆——训练时学进权重的知识,冻结不变。
基础3"它记得你刚说的话"靠的是什么?
靠会话记忆:把当前对话历史塞进上下文窗口,这次才看得到。
基础4新开一个对话窗口,模型还记得你是谁吗?
不记得。新窗口没有历史小抄,它又变回第一次见你,除非有外部长期记忆。
基础5跨会话"记住你是谁"靠存在哪里?
靠外部数据库(长期记忆外挂),不在模型权重里。
基础6最简单的"记忆"实现方式是?
对话历史全拼接:把以前所有对话原样塞进每次输入。

▍中档 5 题

中档7为什么"历史全拼接"越聊越贵?
因为每轮都要把全部历史重新读一遍,输入 token 随对话线性增长,费用和延迟都上升,还会撞上下文上限。
中档8向量记忆(Embedding)是怎么工作的?
把过往对话转成向量存库;新问题也转向量,去库里找语义最相近的几段,只把这几段喂进上下文。按意思检索,不整本带。
中档9记忆摘要方案的优点和缺点?
优点:把长对话压成几句话,极省 token。缺点:摘要必然丢细节,具体原话可能被概括没了。
中档10为什么说"外部数据库 + 函数调用"最容易做隐私删除?
因为用户偏好是结构化存在表里的,不像混在对话历史里难清理。删一行记录即可,可控、可审计。
中档11参数记忆能通过"多聊"让它学会新知识吗?
不能。权重冻结,聊天不会改它。要让它"知道新东西",要么外挂 RAG/长期记忆,要么重新训练/微调。

▍拔高 5 题

拔高12向量记忆为什么"可能记错"或"漏记"?
它靠语义相似度检索,不是逐字比对。相关但不完全对得上的片段可能被选进来,真正关键但措辞不同的片段可能没被召回。它像凭印象翻笔记,不是录像机。
拔高13真实产品通常只用一种记忆方案吗?
不是,常组合用:近期对话用拼接(保真),早期对话用摘要(省 token),跨会话偏好存数据库(可控),相关资料走向量检索(RAG)。各取所长。
拔高14"模型记住了我的病"这件事,隐私风险在哪?
这些敏感数据存在服务商的库里,可能被用于训练、被内部访问、被泄露或被监管调取。你以为在私下聊天,其实数据被长期留存,应优先用可删除、可关闭记忆的产品。
拔高15记忆摘要为什么常常和向量记忆一起用?
摘要负责把"整段长对话"压成要点放进上下文(省空间),向量库负责从"海量历史"里捞出相关片段(找得准)。一个管压缩,一个管检索,互补。
拔高16有人说"换个更大窗口的模型就不用做记忆系统了",对吗?
不对。大窗口只解决"单次能装多少",解决不了"跨会话记住你是谁",也不省钱(塞得越多越贵)。长期记忆是独立的工程系统,不能靠堆窗口替代。

⑪ 记忆口诀 + 7 天复习计划

三句口诀 ① 模型无状态,每次第一次;记忆全外挂,别信它长心。
② 三层要分清:参数是常识、会话是小抄、长期是档案。
③ 四方案:全拼最贵、向量跨会、摘要省字、库表可控;记隐私三问——存啥、谁看、咋删。
天任务自检
第 1 天读②③,理解"无状态"本质说清新开对话为何忘
第 2 天读④三层记忆表,背知识点卡分清三层记忆
第 3 天读⑤四方案,做基础 1-6基础全对
第 4 天做中档 7-11比较四方案取舍
第 5 天做⑦真题 + 拔高 12-16讲清隐私边界
第 6-7 天合上书口述"记忆是怎么外挂出来的"不看资料全说对

📌 知识链路

前置知识(先学) · 第6课 · KV Cache:KV 缓存是内存开销大头之一。
· 第7课 · 量化:量化就是为了省显存。
本节位置 算清楚一台机器到底跑得起多大的模型:权重占多少、KV Cache 占多少、操作系统再占多少。
下一步(学完去) · 第20课 · llama.cpp 实战:拿这张内存账表去挑模型、定参数。
← 第8课 · 上下文 算法与AI总览