为什么聊得越久,AI 越不靠谱
作者 Chatday Editorial Team ·
前十分钟很美好。AI 明白你想要什么,回答干脆利落,你觉得自己终于找到了一个靠谱的搭档。
然后,大概到第三十条消息,它开始走样。它忘了你一开始定下的规则。它把你早就否掉的方案又端了上来。你纠正它,它连声道歉,两个回合之后又犯同样的错。
这不是你没耐心,也不是模型今天状态不好。长对话确实会变差,市面上每个模型都这样,而且研究者已经量出了差多少。
长对话里,AI 的回答到底出了什么事
微软和 Salesforce 的研究者做了一个很好讲清楚的实验。他们挑了模型平时能轻松搞定的任务,比如写一小段代码,或者根据几份文档回答一个问题,然后用两种方式提出来。
第一种方式,整个需求写在一条完整的消息里。第二种方式,完全相同的信息被拆成好几轮一点点给出,就像真人说话那样:先是一句含糊的开场,然后补一个细节,然后改一处,然后再补一个细节。
同样的模型,同样的信息,同样的目标。变的只是给出的方式。
在超过 20 万次模拟对话、六类任务上,所有受测的顶级模型在拆开给的那一版里都明显更差。平均降幅是 39%。这项研究 2025 年 5 月发布,并在 4 月的 ICLR 2026 上作口头报告,那是该领域最重要的会议之一。
更有意思的是它怎么出错。模型并没有变笨,而是变得不稳定,这是另一种、也更烦人的问题。把同一个拆开来问的问题向同一个模型问十遍,回答质量的落差会比一次问清楚大得多。
原因不难想象。当你的第一条消息很含糊时,模型不会等你说清楚。它会悄悄用一个猜测把空白填上,认定这个猜测,然后在上面继续搭出答案。如果猜错了,后面的一切都会继承这个错误。研究者发现,模型一旦在对话早期拐错了弯,通常就回不来了,哪怕你直接纠正它也一样。
为什么记忆更大也救不了长对话
最直接的反驳是:现在的模型记忆大得吓人,有的一次能读一百万个词,五十条消息的对话根本不算什么。
这话在容量上没错,在质量上不对,而这两者之间的落差就是全部故事。想完整了解这块记忆怎么运作,我们另外写过上下文窗口到底是什么。简单说,它就是模型回答时能摊在眼前的文字量。
摊在眼前,和用得好,是两回事。Chroma 的研究团队在 2025 年 7 月测试了 18 个主流模型,在每一个里都看到同样的规律:输入越长,准确率越低,而且远在宣传的上限之前就开始下滑。一个技术上能吃下一百万个词的模型,在五万词的时候可能就已经明显变差了。
那份研究里有两个细节格外反直觉:
- 一段无关的内容就足以造成损害。 只加进一块干扰性的文字,而不是一百块,准确率就已经能测出下降。
- 整理得井井有条的文本,可能还不如打乱的一堆。 当周围材料被打乱时,模型的得分反而比材料按逻辑排列时更高。
还有一个更早、也被反复验证的发现,能解释日常中的大半烦躁。斯坦福牵头的一项 2023 年研究显示,模型最擅长找到长输入里最前面和最后面的信息,对夹在中间的则差得多。你在第八条消息里认真写下的要求,现在正埋在那堆文字的正中间,也就是最糟糕的位置。
把这两点放在一起,画面就清楚了。你的长对话不是一份 AI 会去翻的整齐档案,而是一堆不断变厚的文字,你那句要紧的话正跟四十条闲聊、走不通的岔路和早已翻篇的修改抢位置。
AI 实验室知道,也做了变通方案
这不是小圈子里的抱怨,是厂商自己写在文档里的。
Anthropic 的开发者文档介绍了一个叫 compaction 的功能:当对话变长时,自动把较早的部分压缩成摘要。给出的理由很直白,「随着对话变长,回答质量会下降」,所以旧内容会被一段简短的摘要替换掉。
这句话值得再读一遍,因为有用的东西就在里面。对付长对话的官方做法,是把它的大部分丢掉,只留一份摘要。同样的事你可以在任何一个聊天应用里手动完成,不花钱,也不用等哪个功能替你做。
对话开始跑偏时该怎么办
下面是可以直接照做的版本。把症状和背后真正发生的事对上号。
| 你注意到的现象 | 背后发生了什么 | 该怎么做 |
|---|---|---|
| 忘了你一开始定的规则 | 那条要求被埋在长对话的中间 | 在最新一条消息里重新写一遍规则,不是当提醒,而是当成正式要求 |
| 反复端出你否掉的方案 | 被否掉的版本还留在记录里,仍然算作上下文 | 开一个新对话,只描述你想要什么,绝不提你已经排除的 |
| 回答越来越笼统空泛 | 窗口里互相争抢注意力的材料太多 | 用一条消息总结当前进展,从那里继续 |
| 纠正之后还是犯同样的错 | 它很早就认定了一个错误猜测 | 放弃这条线。一次纠正很难压过它底下那一整段对话 |
| 对事实错得理直气壮 | 这是另一个问题,与对话长短无关 | 参见AI 为什么会一本正经地胡说 |
再加上五个能提前挡掉大半麻烦的习惯:
- 把整个需求放在最前面。 这项研究最扎实的结论就是:一条写完整的消息,胜过把同样的信息拆开来喂。多花三十秒,把需求一次写全。
- 别争论,直接重开。 对话跑偏时,新开一个不花你任何成本。只把有用的部分粘过去。
- 长时间用完之后,自己做一份摘要。 让 AI 把已经定下的决定简短列一遍,你核对无误后,开一个新对话,把它当第一条消息粘进去。
- 不同话题分开对话。 工作项目一条线,度假计划另一条线。混在一起等于给两边都添了干扰。
- 一个模型卡住就换一个。 另一个模型压根不知道你上一段对话谈崩了。它是干干净净地面对这个问题,而且常常会以有用的方式给出不同看法,这一点我们在为什么不同 AI 模型给的答案不一样里谈过。
最后这条是所有办法里最省事的,也是最多人略过的,因为他们只开着一个 AI 应用。
这套建议管不到的地方
几点实话实说的提醒,这个办法并不万能。
从头开始是有代价的。如果你花了一个小时教 AI 你那份通讯的语气,丢掉确实心疼,而摘要永远抓不全。这种情况下,在电脑的备忘录里存一份简短、可重复使用的说明,每开一个新对话就粘进去。有用的部分留下,杂乱的部分丢掉。
这项研究测试的是照着脚本行动的模拟用户,而不是真人那种杂乱的一来一往,真人能察觉方向不对并及时叫停。一个足够留心、在第三条消息就抓住错误的人,表现会比这些数字暗示的好。这也说明,早期的回答值得认真读,因为那时候纠正几乎不花什么代价。
还有些活儿确实需要一条长长的对话,比如啃一份大文档,摘要一压要点就没了。为长文档打造的模型,比如 Claude Opus 4.7,处理起来比多数模型好,但并不能消除这个问题。这类活儿就保留对话,每隔几条消息把核心要求重新写一遍,让它待在那堆文字的靠后位置,因为模型在那里看得最仔细。
一句话总结
长对话之所以崩,不是因为机器累了。是因为模型在早期悄悄做了一个假设,把后面的一切都盖在上面,然后又把你最要紧的那句话,埋进了一堆它并不会均匀阅读的文字中间。
明白这一点之后,该怎么做就很清楚了:一次说完;跑偏了就重开;把你那份说明放在随手能粘贴的地方;某个模型开始原地打转时,别跟它较劲,把同一个问题交给另一个。