上下文窗口:为什么大模型会一本正经地胡说八道?
很多人把 AI 产生幻觉归结为“模型没学好”,但实际上,很多离谱的错误其实是由于上下文窗口(Context Window)满了导致的。简单来说,这就是模型的“短期记忆力”或“办公桌面”,能放多少东西全看 token 限制。
对于开发者来说,单纯追求大窗口没用,得学会管理上下文。如果你在做 AI Agent 或复杂工作流,建议在关键节点手动重复核心约束,或者用 RAG 精确检索,而不是指望模型能像人类一样完美记住所有细节。
下一篇
闭源厂商想通过政策筑墙,但模型能力正在迅速商品化 →
一旦对话太长,早期的指令就像掉下桌子的纸片一样,模型根本看不见。这时候它为了维持对话,会启动“脑补”模式,这就是典型的幻觉。
我总结了几种最常见的翻车场景:
- 指令丢失型: 你在对话开始就强调“只能用 Python 3.9,不能用第三方库”,结果聊了 50 轮后,它突然给你甩了一个
requests库的代码。这不是它不听话,而是之前的约束已经滚出上下文窗口了。 - “中间丢失”现象(Lost in the Middle): 这是一个很反直觉的点。即便模型号称支持 1M token,但它对开头和结尾的信息记得最牢,夹在中间的内容最容易被忽略。如果你喂它一份 50 页的合同,问第 27 页的细节,它可能会自信地给你编一个听起来很合理的答案。
- 总结截断型: 有些 AI 工具在检测到文本过长时,会偷偷把历史记录总结成一句话。比如把之前的复杂函数定义简化为“用户定义了一个辅助函数”,当你要求重构时,它只能靠猜参数名,结果自然是满屏 Bug。
- 多文档混淆: 往大窗口里塞 10 份相似的文档(比如不同版本的 API 文档),模型很容易把 A 的字段和 B 的逻辑缝合在一起,造出一个现实中根本不存在的“混合版”接口。
对于开发者来说,单纯追求大窗口没用,得学会管理上下文。如果你在做 AI Agent 或复杂工作流,建议在关键节点手动重复核心约束,或者用 RAG 精确检索,而不是指望模型能像人类一样完美记住所有细节。