乐于分享
好东西不私藏

每次跟AI对话都像在培训新员工,直到我搞懂上下文窗口:从此AI不再卡顿

每次跟AI对话都像在培训新员工,直到我搞懂上下文窗口:从此AI不再卡顿

事情是这样的。

昨天一个朋友气冲冲地给我发消息,说AI动不动就卡住,本来好好在帮他分析东西,聊着聊着突然像断片了一样,开始胡说八道。

他在用一个叫 Qclaw 的工具,底层接的是 GLM 模型。说到底就是AI,跟你用 ChatGPT、DeepSeek、Claude 没什么区别。

我让他把对话记录截给我看了一眼。

好家伙。

一个对话里面,他一口气发了几十张图片过来,各种截图、文档,然后跟AI说「帮我分析一下这些东西」。

然后聊着聊着AI就开始犯浑。

我一看就知道怎么回事了。他的上下文窗口已经被图片给撑爆了。

这事不是我朋友一个人的问题。我见过太多人犯同样的错,总觉得给AI的信息越多越好,恨不得把硬盘里所有相关的东西一股脑丢进去。

但你得知道一件事。

AI的记忆,是有物理限制的。

一张桌子有多大

你可以把AI的大脑想象成一个办公桌。

这张桌子有固定大小。GPT-4o 大概能放9.6万字,DeepSeek 最新的模型能放75万字左右,Claude 最新版能放15万字(开启长上下文可达75万字),Gemini 能放75万字。GLM 最新的是15万字左右,也有专门的长文本版本能到75万字。

不管桌子多大,终归是有限的。

关键是很多人不知道一件事:AI 每次生成回复的时候,虽然底层有缓存机制不用从头重算,但它确实要跟前面所有的对话历史做一次注意力计算。简单说,就是扫描一遍全部历史,判断哪些跟当前问题相关。

对话越长,要扫描的内容越多。而且不管怎么优化,上下文窗口的总容量是固定的,你塞的东西越多,留给AI思考和回答的空间就越少。

这就像你桌上堆满了文件,每来一个新任务,你都得扫一眼桌上所有文件,确认哪些跟当前任务有关。文件越多,就越容易看漏关键信息。

我朋友的情况就是,桌子已经堆满了,他还在往上面放东西。AI不是不想帮你,是真的放不下了。

你在花冤枉钱

你可以这样理解,给 AI 说话,让 AI 做事,需要花费「token」这个东西。

简单说一下,token就是你花钱的单位。所有的AI服务商,OpenAI、Anthropic、Google、智谱,都是按token收费的。你输入的内容要算token,AI输出的内容也要算token。

一个汉字大概等于1.5到2个token,一张图片就更不用说了,动辄几千上万个token。

更狠的是,token消耗是累加的。你在第1轮对话时输入了500个token,到第10轮时,服务商会把前9轮的全部内容加上第10轮的新输入一起计算费用,输入token可能已经累积到两万多个。聊到第30轮,一个简单的问题可能触发十几万token的输入。

越聊越贵,贵得你还浑然不觉。

所以上下文窗口用满,不光是AI会变笨的问题,还是钱的问题。

聊久了AI真的会变傻

除了容量被撑满之外,还有一个很多人不知道的问题。

2023年斯坦福大学发了一篇论文,叫「Lost in the Middle」,翻译过来就是「迷失在中间」。他们测试了GPT-4、Claude这些主流模型,发现了一个规律,AI对放在上下文开头和结尾的信息记得最清楚,但对中间的信息特别容易忽略。

你长篇大论中间塞进去的关键信息,AI大概率根本没看到。

这跟人的注意力机制其实挺像的。你让一个人一口气读完一篇两万字的文章,他能记住开头和结尾,中间大概率是模糊的。

所以一次性塞太多东西给AI,不光是容量问题,还有注意力问题。

那到底该怎么做呢,我自己用了这么久AI,总结了六个我觉得特别实用的技巧,下面一个一个聊。


技巧一,编辑而不是追问

这是最简单也最容易被忽略的一个。

很多人习惯在AI回答完了之后直接在对话框里说「不对,你改一下」「不是这个意思,我重新说一遍」。

但你有没有想过,每一次追问,你的对话历史就更长了一截,token消耗是累加的。追问10次,上下文就多了10轮的内容。

正确做法其实特别简单,直接点编辑按钮,修改你原来的那条消息,让AI重新生成就行了。旧消息被替换掉了,token消耗不会累加。

大部分主流AI工具都支持编辑历史消息。

就这么简单一个操作,能省掉海量的token。

技巧二,定期开新对话

这是很多开发者总结出来的经验,我用了之后觉得真的很舒服。

每聊10到15轮左右,让AI总结一下当前的要点和进度,然后复制这份总结,开一个新对话继续。

为什么要这样做呢,因为长对话是昂贵的负债,新对话是高效的资产。

旧的对话历史就像你桌子上已经处理完但还没收拾的文件,留着只会占空间。与其让AI带着一堆历史包袱往前走,不如定期收拾一下桌子。

你可以直接跟AI说「请把我们目前讨论的关键点总结成一份简短的备忘录,不超过500字」,然后复制这份总结开新对话。

有研究发现,10轮对话的上下文如果压缩成200个token的摘要,可以省掉90%以上的token消耗。

技巧三,别把整份文件丢给AI

这也是我朋友犯的错。他一口气发了十几张图片过来。

如果你的材料很长或者图片很多,不要一股脑全丢进去。告诉AI你的核心需求,然后只给它最相关的部分。

比如你要AI帮你分析一份报告,别把50页全部丢进去。先说「我要分析这份报告第三章关于市场数据的部分」,然后只粘贴那几段相关的内容。

或者用AI的知识库功能,把文件上传上去,让它按需检索相关的部分,而不是一次性加载全部内容。

把文件当参考资料库,不要当一次性阅读材料。

技巧四,指令放前面,资料放后面

这个是有正经研究支撑的。

Anthropic和AWS联合发过一份提示词工程最佳实践,里面明确建议了prompt的结构,任务描述和指令放在最前面,背景资料和数据放在中间,当前的具体请求放在最后。

因为前面说的Lost in the Middle效应,AI对开头和结尾的信息最敏感,中间的信息容易被忽略。

所以你的指令和要求放前面,参考资料和背景信息放后面,最后再重复一遍你的核心问题。

举个例子,先说「帮我分析以下内容中的三个关键风险点」,然后放资料,末尾再问一句「基于上面的资料,三个关键风险点分别是什么?」

两头都点了题,AI就不容易遗漏。

技巧五,善用系统提示和记忆功能

如果你有一些需要AI长期记住的信息,比如你的职业、你的偏好、你常用的格式要求,不要每次对话都重新说一遍。

大部分AI工具都有类似的功能。ChatGPT有Custom Instructions,Claude有Memory,DeepSeek有系统提示词。在设置里写好你的核心信息,AI在后续对话中会自动调用。

这些功能干的事就一件,帮AI省上下文,让你不用每次都从零开始介绍自己。

但要注意,有些AI的记忆功能会自动积累它认为重要的信息,有些可能已经过时了。建议隔一段时间检查一下,把没用的删掉。

跟清理手机缓存是一个道理。

技巧六,关键信息主动锚定

这个技巧特别适合长对话场景。

当你在一段比较长的对话中突然需要AI关注一个新信息时,用明确的标记把它突出起来。

比如直接说「【重要】从现在开始,所有代码输出使用TypeScript,不要用JavaScript」。

别指望AI能在50条消息的上下文里精准找到你第3条消息里随口提的一句要求。它没有你想象的那么「记性好」。


AI不是你想的那样

说真的,除了上面这些使用技巧,我觉得还有一个认知层面的事需要聊一下。

AI不是搜索引擎,也不是万能的记忆库。

很多人把AI当成Google用,什么问题都直接问,不给上下文,不给约束条件,然后抱怨回答不好。

有人走另一个极端,把AI当成什么都能记住的神,说过的每一句话它都应该牢牢记住。

这俩都不对。

AI更像是一个能力很强但记性不太好的新同事。你给他清晰的任务、对路的参考资料、明确的输出要求,他就能交出漂亮的活。

但你让他同时处理五个完全不同领域的任务,还指望他记得三天前你随口提的一个需求,那就是你的问题了。

管理AI的上下文,就是在管理这个新同事的工作台。桌子上放什么、不放什么,怎么定期整理,怎么在需要时精准调取,这些才是真正决定你AI使用效率的东西。

我那个朋友后来把对话清掉,重新开了一个会话,只发了三张最关键的图片给AI,描述清楚了自己要分析什么。

AI秒回了,分析得头头是道。

他发消息跟我说「原来这玩意不是我不行,是我用法不对」。

我觉得他说到点子上了。