灵策全能AI助手

上下文窗口:AI 的「短期记忆」有多长

为什么聊久了 AI 会「忘事」,长文档该怎么喂给它。

你和 AI 一起改了一下午的活动方案。一开始你就说过「总预算 5 万元」,可聊到第三十轮,它给出的新方案加起来已经 8 万了。你提醒它,它连声道歉、马上改好;再聊几轮,又超了。

AI 是不是「健忘」?某种程度上是的。这一节我们来认识大模型的「短期记忆」——上下文窗口,弄清它为什么会忘事,以及长文档、长对话该怎么处理。

上下文窗口是什么

上一节讲过,模型按 Token 读写文字。上下文窗口(Context Window)指的是:模型在一次生成回答时,最多能「看到」多少 Token 的内容。

关键在于,模型本身并不会像人一样把聊过的事存进脑子里。每次你发一条新消息,产品都会把「系统设定 + 之前的聊天记录 + 你的新问题」打包,从头到尾交给模型读一遍,模型再接着往下写。这个打包内容的容量上限,就是上下文窗口。

打个比方:上下文窗口就像一张办公桌。模型只能处理摆在桌面上的材料,桌子之外的东西它一概看不见。桌子再大也有边,材料堆满了,旧的就得被挪走,或者被压缩成一张便签。

桌面上通常摆着这些东西:

占用窗口的内容说明
系统设定产品在后台给模型的角色和规则说明,你一般看不到
对话历史你和 AI 之前每一轮的问答
附件与资料上传的文档、图片,联网搜索抓回的网页
工具返回的结果比如查询、计算、读取文件得到的内容
当前的问题你这一次发的消息
模型的回答它正在写的内容,推理模型还包括思考过程

注意最后一项:回答也要占位置。如果资料已经把窗口塞得差不多满了,留给回答的空间就很小,可能写到一半就被截断。

不同模型的窗口大小差别很大,从几千到上百万 Token 不等,而且一直在变化。具体数字以你所用产品的说明为准。

窗口为什么不能无限大

既然窗口越大装得越多,为什么不干脆做成无限大?因为窗口里的每个 Token 都要参与计算,模型还要处理每个 Token 和其他 Token 之间的关系。在常见的架构里,内容越长,计算量往往增长得比长度本身还快。窗口越长,回答就越慢、越费算力;再加上每一轮都要把整个对话重读一遍,长对话的成本会越滚越大。

所以窗口大小是能力、速度和成本之间的权衡。而且就算装得下,也不代表每个字都能被同等重视——这正是下面要讲的。

为什么聊久了 AI 会「忘事」

常见原因有四个。

第一,超出了窗口。 对话太长装不下,产品只能做取舍:有的直接丢掉最早的几轮;有的把旧对话自动压缩成一段摘要;有的会提示你开启新对话。无论哪种,开头那句「预算 5 万」都可能被丢掉,或者在摘要里被简化没了。

第二,没超出,但「看漏了」。 窗口装得下,不等于每个字都被同等重视。有研究发现,很多模型对开头和结尾的信息利用得比较好,夹在长内容中间的信息更容易被忽略。就像你快速翻一份很厚的材料,开头结尾印象深,中间某一页的小字条款很容易略过。

第三,信息互相打架。 你前面说「正式一点」,后面又说「活泼点」;一会儿说预算 5 万,一会儿又说「效果最重要,钱不是问题」。模型不知道以哪句为准,可能就挑了离得最近的那句。

第四,无关内容太多。 一个会话里既聊周报又聊旅游又聊代码,桌面上堆满了不相关的材料,真正重要的约束被「淹没」了。

上下文、训练知识和「记忆功能」不是一回事

这几个概念很容易混在一起,用一张表区分:

训练中学到的知识上下文窗口产品的「记忆」功能
好比多年读书积累的常识办公桌上摊开的材料贴在显示器边上的便签
从哪来训练阶段读过的海量文本本次对话里的内容产品从以往对话中摘出的要点
能否随时更新不能,要等新版本模型能,你发什么它就看到什么能,通常可以查看和删除
持续多久固定在模型里只在当前对话中有效跨对话保留

一些 AI 产品提供的「记忆」功能,本质上是把你过去透露的偏好整理成笔记,在新对话开始时悄悄放进上下文窗口。它依然要占桌面空间,并不是模型真的「记住」了你。

长文档该怎么喂给 AI

面对一份几十页的报告或合同,一股脑全贴进去、问一句「帮我总结」,效果往往一般。更好的做法是:

  1. 先看结构,再挑重点。 先让 AI 列出目录和每章大意,你再决定深入哪几章。
  2. 分段处理,最后汇总。 资料太长就分成几段,每段单独提炼要点,最后把各段要点合起来做总结。
  3. 只给相关部分。 你只关心「付款条款」,就别把整份合同贴进去。
  4. 关键要求放在显眼处。 重要约束写在提示词开头,问完问题后在结尾再强调一次。
  5. 要求标注出处。 让它注明每个结论来自第几章、哪一段,方便你回头核对。

分段处理可以这样说:

下面是一份报告的第 2 部分(共 4 部分)。
这一轮只做一件事:提炼这一部分的要点,不超过 5 条,
每条后面用括号注明对应的小标题。
先不要做整体总结,等我把 4 部分都发完再汇总。

如果资料多到连分段都吃力,比如一整个部门的文档库,就该用知识库(RAG)的方式:先检索出相关段落,再交给模型回答。后面的「RAG 与智能体」系列会专门讲。

长对话的管理技巧

场景错误示范正确示范
换任务一个会话从早聊到晚,什么都问一个主题一个对话
关键约束只在第一轮说一次预算在关键节点把重要约束再重复一遍
改需求新旧要求混在一起明确说「以下要求替代之前的 X」
对话太长硬着头皮继续聊让 AI 写一份交接摘要,带到新对话里

最后一招特别实用。当你感觉 AI 开始「犯迷糊」,就让它先整理一份摘要:

我们准备换一个新对话继续。请把目前为止的内容整理成一份交接摘要:
1. 项目背景(一两句)
2. 已经确定的要求和约束(逐条列出,包括所有数字)
3. 已经完成的部分
4. 还没解决的问题
只写已经确定的结论,不要加入新的建议。

检查一遍摘要有没有遗漏,再把它贴到新对话的开头,相当于把办公桌清理干净,只留下最重要的材料。

本节要点

  • 上下文窗口是模型一次能「看到」的 Token 上限,系统设定、历史对话、附件和回答都要占位置。
  • 模型本身不记得聊过什么,每轮都把整个对话重新读一遍;超出窗口的内容会被丢弃或压缩。
  • 即使没超出窗口,长内容中间的信息也容易被忽略,前后矛盾和无关信息会进一步干扰判断。
  • 长文档要先看结构、分段处理、只给相关部分,并要求标注出处。
  • 对话太长时,让 AI 写交接摘要,带着摘要开新对话,比硬聊下去更可靠。

「大模型核心概念」其他课程

灵策全能AI助手