上下文窗口
Context Window也常被叫作:上下文长度记忆长度能记多少
「聊到后面他就忘了前面说过的要求,还得我再说一遍。」
上下文窗口 Context Window
AI 一次能同时「看到」的全部内容的容量上限——超出的部分会被挤出去。
AI 没有真正的记忆。它每次回答,都是把当前能看到的全部内容(系统设定、你的历史消息、它的历史回复、贴进来的文件、工具返回的结果)一起读一遍,然后生成下一段。这个「一起读」的容量就是上下文窗口。
所以「它忘了」的真相通常是:那部分内容已经不在它眼前了。 不是记性差,是被挤出去了。你越贴长文件、越让它跑大量命令,越早发生这件事。
实用推论有三条。第一,重要约束要复述:长对话里,关键边界(不要动配色、不要改数据)值得每隔一段重申一次。第二,贴材料要节制:整个文件夹贴进去,反而会把你真正在意的那段挤到边缘。第三,长任务要分段:与其一个对话干到底,不如分几轮,每轮开头给一段简短的现状交接。
还有一个容易误解的点:窗口大不等于用得好。 内容太多时,中间部分的注意力会明显下降。给它一页最相关的材料,通常比给它五十页更准。
长什么样 真实可交互,不是截图
让它跑一堆输出很长的命令
一个对话连续干三小时
关键约束定期复述一次
长任务分几轮,每轮给交接
窗口是共享的:贴进去的东西越多,留给「理解你真正要什么」的空间就越少。
拆开看,里面有这几块
-
1
系统设定 System prompt
平台或你预设的规则,通常一直占着一块位置。
-
2
对话历史 History
你和它说过的话。越长越挤,最早的会先被挤掉。
-
3
贴入材料 Attachments
文件、报错、文档。占位最大的一项。
-
4
工具输出 Tool results
命令的返回内容。一个啰嗦的命令能吃掉大量空间。
容易搞混?这样区分
上下文窗口是这一次能看到的内容;长期记忆是把重要信息存在外部、下次再取回来。窗口再大也不是记忆——关掉对话就没了。
什么时候用得上
不是它变笨了,是早期的约束被挤掉了。重申一次关键边界。
只贴相关文件,或先让它说需要看哪几个,再贴那几个。
开新对话,给一段现状交接(目标、已完成、当前问题、约束)。比在旧对话里硬撑更准。
你可以这样跟 AI 说
直接复制下面这段,把【】里的换成你的情况。它比一句「帮我加个 X」多说清楚了:改哪里、不许动啥、做完交什么。
这是一个较长的任务,请配合几件事来对抗上下文限制: 1. 每完成一个阶段,用 5 行以内总结:当前目标、已完成、下一步、以及必须一直遵守的约束。 2. 需要看文件时,先告诉我你需要看哪几个,我贴给你,不要让我一次贴整个项目。 3. 如果你发现自己对早前的要求记不清了,直接说出来,让我重新贴给你,不要凭印象继续。 4. 命令输出很长时,只贴关键部分给我看,但不要因此丢掉报错原文。 【必须全程遵守的约束】(如果你在后面的对话里不确定这些是否还有效,直接问我) - [约束 1] - [约束 2]
第 3 条很有用:它把「悄悄凭印象编」换成了「主动说记不清」。后者你能补救,前者你要等出事才发现。
它说「做好了」,你怎么自己验
这是本站的重头戏。AI 最会的不是写代码,是说「已完成」。这一条,它通常最多做到「概念」这层:只是说清了要做什么,还没有任何东西在跑。
要亲眼看到这些,才算数
- 长对话中途抽查一次:问它「我们这次的约束有哪几条」,看它复述得对不对。
- 如果它开始违反早前的约定,先怀疑是被挤掉了——重申一次,看行为是否恢复。
- 确认它没有凭印象编造你之前给过的内容(让它引用你的原话)。
- 任务分段时,检查交接总结里包含目标、进度和约束三样。
它常这么糊弄你
- 「我记得你说过…」然后内容是错的。它可能在重构一段已经不在眼前的记忆。
- 长对话后期它开始改变行为(又开始动你说过不要动的地方),却没有任何提示。
- 「我已经完整阅读了整个项目」——贴进去不等于都在窗口里,也不等于注意力都到位。
- 为了「上下文完整」把大量无关文件贴进去,结果关键需求被挤到边缘。
这是一个协作常识,停在「概念」层。但它能解释你在长任务里遇到的大部分「它怎么突然变笨了」。
考考你 选一个你觉得对的
长对话到后期,AI 开始违反你一开始定下的「不要改配色」。最可能的原因和对策是?
行为在长对话后期漂移,最常见的原因就是早期内容被挤出了窗口。重申一次通常立刻恢复。B 把技术限制当态度问题;C 换模型也会遇到同样的窗口限制;D 成本太高,通常不必要——分段交接就够了。