上下文窗口:为什么 AI 聊着聊着就「忘了」
前半场配合默契,后半场答非所问——AI「忘了」不是态度问题,而是上下文窗口装不下了。这篇用一张工作台的类比,讲清窗口是什么、为什么大窗口也会漏掉中间的内容,以及三个立刻能用的对话习惯。
核心结论
上下文窗口是模型在一次对话里能同时处理的内容上限,像一张大小固定的工作台:内容超出后,最早的部分会被截断或压缩,而模型没有台面之外的记忆,于是表现为「聊着聊着忘了」。窗口变大不等于都能记牢,超长内容的中间部分容易被忽略。重要约束应放在开头并适时重申,长资料交给检索处理。

和 AI 一起过一份长合同,你在开头交代过:「所有日期都按签署日重新核对。」四十分钟后,它交回的修改稿里,这条要求消失得干干净净。你的第一反应也许是它变笨了,或者不上心。都不是——它只是「拿不下」你开头说的话了。
这就是上下文窗口(context window)在起作用。理解了它,你对 AI「记性」的预期会完全换一套。
窗口是一张工作台,不是一间档案室
上下文窗口,是模型在一次对话里能同时「拿在手里」的内容上限:你发的每句话、它答的每一段、你贴的每份资料,全都摊在这张台面上。台面的面积是固定的,按 token 计量(token 是什么,见大模型的 Token 到底是什么?为什么按它收费),不同模型的台面大小不同。台面没满时一切正常;摆满之后,新东西要上来,旧东西就得下去。值得留意的是,台面上不只有你看得见的对话:系统提示词、工具查询返回的结果,也都占着面积。
关键在这里:模型没有台面之外的记忆。它不是一个记性差的人,而是一个只有台面、没有抽屉的工作者。人忘了事,还能翻笔记想起来;被挤下台面的内容,对模型来说是真正的不存在——它连「我好像忘了点什么」的感觉都没有。
为什么聊着聊着就「忘了」
对话超出窗口后,系统一般有两种处理:把最早的内容直接截掉,或者把旧内容压缩成一份粗略的摘要。无论哪种,细节都在流失,而最先流失的,往往正是你在开头交代的要求、定义和背景。于是出现那个经典现象:前半场配合默契,后半场答非所问。不是它变了,是台面上的东西换了一批。
另一个容易混淆的现象也源于此:开一个新会话,它对上一场对话一无所知——因为台面已经清空重摆。有些产品能跨会话「记住」你的偏好,那是产品在模型之外替你记了笔记,开场时再放回台面,并不是模型自己长了记性。
台面越做越大,问题解决了吗
近几年,模型的窗口从「几页纸」扩到了「几本书」,这当然有用:很多过去装不下的任务,现在装得下了。但两个新问题跟着来。一是装得下不等于看得住:内容特别长时,模型对中间部分的注意力,明显弱于开头和结尾,长资料的中段最容易被悄悄漏掉——像一张堆满的台面,边上的东西看得见,压在正中间的反而容易被忽略。二是成本:台面上的每一块都在计费,而且每轮对话都重算一遍,台面越满,每一轮越贵。所以「窗口翻了几倍」是个好消息,但它既没有取消整理内容的必要,也没有让长对话变成免费午餐。
三个立刻能用的习惯
把台面这个画面记住,用法就顺理成章:
- 重要的要求放在对话开头讲清;长对话进行到一半,值得把关键约束重申一遍,别默认它还记得。
- 长资料不要整本硬塞。让系统按需检索、每次只递相关的几段,又省又准——这正是检索增强生成(RAG)的思路。
- 任务式的长对话,定期主动「收台面」:先让它输出一份阶段小结,再带着小结开一个新会话,轻装上阵。
这三个习惯的共同点,是把台面当成稀缺资源来管理:让最关键的内容始终留在台面上,让不必要的内容根本不上台。
选型时,别被窗口数字带着走
窗口大小如今是模型宣传里最显眼的数字之一,但对企业选型来说,它是入场券,不是评分表。真正该问的是:我们的场景里,单次任务实际需要多大的台面?超长内容的中段,它接得住吗?同样的效果,谁的台面用得更省?一个靠检索把单次输入控制在小体量的方案,常常比一个依赖超大窗口硬塞的方案又便宜又稳定。换句话说,窗口决定的是「能不能装下」,决定不了「用不用得好」——后者取决于你怎么组织进台面的内容。对决策者来说,窗口数字就像发动机排量——值得看一眼,但没有人只凭排量买车。