← 博客

AI 为什么会忘记你说过的话?

发布于 2026-07-04 · 更新于 2026-07-04

AI 聊天机器人会忘事,是因为它本身没有记忆。每次你发送消息,模型都从头把整段对话重读一遍,但只读入一个固定上限之内的量,这个上限称为上下文窗口。一旦对话超过这个上限,最早的部分就会被丢弃,模型也就无法再看到它们。

这一个事实几乎可以解释每一个「它怎么忘了」的瞬间。在你两条消息之间,模型不保留任何东西。看似记忆的行为,实际上只是模型在读取一份每一轮都重新递交给它的对话记录。

上下文窗口:模型的工作记忆

理解上下文窗口最有用的方式,是把它视为工作记忆——即你心算时脑中一次能容纳的那部分信息。

模型对你当前对话「知道」的一切都必须放入这个窗口:你的消息、它自己的回复、任何系统指令,以及你粘贴进来的任何文档。它不是一块能永久存储的硬盘,而更像一张容量固定的工作台面。台面占满,就必须移走一些内容以腾出空间。

这就是为什么模型能完整讨论一封 500 字的邮件,却在一场冗长发散的对话里开始跟丢线索。邮件在台面上放得下,三个小时的对话放不下。

现代模型的窗口很大,但仍然有限。举例来说,根据 Anthropic 的模型文档,Anthropic 当前的 Claude 模型视具体型号提供 20 万或 100 万 token 的上下文窗口。100 万 token 的窗口相当可观——按 Anthropic 自己的估算约合 55.5 万个词——但一场长时间的工作,粘贴了文件、来回讨论,仍可能逼近它。

什么是 token

在这个话题里你会反复看到「token」这个词,因此值得简要说明。

token 是一小块文本,通常比一个词略小。常见的短词往往就是一个 token,而更长或更生僻的词会被拆成若干块。空格和标点也计入其中。

给一个大致的量级:OpenAI 的文档给出一条经验法则:对英文文本,一个 token 约为四个字符,约合 0.75 个词,见 OpenAI 的开发者文档。因此 1000 个 token 大约是 750 个词。

这与你有何关系?因为上下文窗口按 token 计算,而非按消息数计算。模型不统计「用户说了几件事」,它统计 token 总量。一段塞满长篇粘贴文章的对话,会比一堆一行短问句更快填满窗口,即便两者消息数相同。

对话过长时会发生什么

当一段对话超出上下文窗口,系统必须决定保留什么。有两种常见策略,你正在使用的应用可能采用其中任意一种。

第一种是截断(truncation):直接丢弃最早的消息,让靠近当前的内容仍能容纳。如果你在一场超长对话的最开头告诉了 AI 你的名字,那句自我介绍可能已经移出台面。模型并非拒绝记它,而是那段文字已不在它面前。

第二种是摘要(summarization):有些应用不直接删除旧消息,而是将它们压缩成一段更短的摘要,把这段摘要留在窗口里。这保住了大意,却丢失了细节。一段摘要可能留下「用户在计划去日本旅行」,却丢掉你早先仔细写明的确切日期、酒店名和预算。

无论哪种,从你的角度看效果相同:长对话里靠前的细节变淡或消失,靠后的细节仍然清晰。

为什么全新的对话从空白开始

开启一段新对话,相当于把工作台面彻底清空。窗口重置为空。模型不会把上一段聊天里的任何内容带过来,因为在它看来,从未存储过任何东西。每段对话都是独立的。

这让那些期待 AI 像朋友一样「记得我」的人感到意外。但除非产品有一个专门的、独立的记忆功能(下文详述),否则对今天的对话而言,昨天的聊天已经消失。模型并非选择在一夜之间忘掉你,而是根本没有一个存放「你」的地方。

「中间迷失」效应

这里有一个更微妙的现象:为什么 AI 常常能准确记住你在一段长对话最开头说的话,也能完整复述你最新的一条消息,却会在中间的某个细节上卡壳?

这不是错觉。研究者在 2023 年一篇题为《中间迷失:语言模型如何使用长上下文》(Lost in the Middle: How Language Models Use Long Contexts)的论文中记录了它,作者是 Nelson F. Liu 及其同事。他们测试模型如何使用长输入,发现当相关信息位于上下文的最开头或最末尾时表现通常最好,而当模型必须从长上下文的中间获取信息时,表现会明显下降。

换言之:即便某个细节技术上仍在窗口内,模型也最关注两端。开头和结尾突出,中间容易被忽略。因此埋在长对话中间的一个事实可能明明在场、却被忽略,这在体验上很像忘事。

这也是为什么在一段长对话接近结束时重述一个重要的点,往往能立刻见效。你把那个事实从容易被忽略的中间,挪到了受关注的边缘。

三种不同的「知道」

一旦你把 AI 所依赖的三样东西分开来看,许多混乱便得以理清。它们并非同一事物,失效的方式也各不相同。

训练知识是模型在被构建的过程中学到的东西,在你出现之前就已内建。这正是模型为何懂通识、会写作。它广博但冻结:不包含你具体的对话,且有一个截止日期,因此它自身不会知道近期发生的事。

上下文是眼下就在窗口里的这段实时对话,也就是本文讨论的这件事。它对你专属、当下有效,但临时。窗口填满或对话结束,它就消失。

持久记忆是一些应用在此之上额外添加的独立功能。它把关于你的一些选定事实(比如你的名字或偏好)保存在对话之外,并在未来对话中将它们重新插入上下文。这是三者中唯一能让 AI 跨会话「记得」你的机制,且只有在具体产品提供它时才存在。

人们说「AI 忘了」时,通常是遇到了上下文的上限,却以为自己在与持久记忆打交道。

在上限之内工作的实用技巧

你无法扩大窗口,但可以更好地与它配合。

  • 关键事实重要时就重述一遍。 如果早先某个细节对你想要的答案很重要,就在你当前的消息里重复它。这会把它拉入活跃窗口、移到受关注的边缘,同时绕开截断和中间迷失效应。

  • 自行为长对话做摘要。 对话变长时,让 AI 把目前为止重要的决定和事实总结一下,然后从那段摘要接续。你是在有意识、且准确地完成自动摘要粗略执行的那件事。

  • 切换新话题就开启新对话。 一个塞满无关旧讨论的凌乱窗口,会挤占并干扰你的新问题。干净的对话往往给出更利落的答案。

  • 重要内容前置。 把你的关键指令和约束放在一条长消息的最前面,不要埋在大段文字的中间。

  • 精简粘贴的材料。 因为文档很快消耗 token,只粘贴你真正需要的段落,不要整份文件贴入。台面上空间越多,掉落的内容越少。

  • 有记忆功能就使用。 如果你的工具提供持久记忆设置,开启它就能让它把少数几条事实带过多段对话。查看它存了什么,因为那是通往真正跨会话召回的唯一途径。

一旦你把 AI 视为一个在读取固定大小对话记录的系统,而非一个会记事的心智,它的忘事就不再神秘。这不是你提示词的缺陷,也不是 AI 排斥你的迹象。这是一个台面有限的系统的可预测行为,而摸清那张台面的形状,正是把它用好的关键。