很多人第一次用 AI 聊天都会撞上这个困惑:上一句刚说过「我在做装修行业的方案」,下一句问它「我刚才说我是做什么的」,它却答得驴唇不对马嘴。这不是它记性差,而是多轮对话这套机制本来就这么工作的。搞清楚它怎么「记」、能记多久、什么时候会忘,你就能把对话用得顺手很多。
多轮对话,到底「多」在哪里
单轮对话就是问一句答一句,前后两次请求彼此独立,互不影响。多轮对话不一样:每次你发一句话,客户端会把之前所有的对话记录连同这句新话一起打包,重新发给模型。
也就是说,模型本身并没有记忆。是你在每一轮里把聊天记录重新递给了它,它才「看起来」记得你说过什么。第 5 轮的时候,模型收到的其实是第 1 到第 5 轮的全部内容。
记住一句话就够了:模型不记事,是你每次把聊天记录重新递给它了。
为什么不记得上一句
最常见的原因有两个。一是上下文超长被截断:每个模型都有上下文长度上限,聊得越久累积的内容越多,超过上限之后,最早的那部分会被丢掉——你开头交代的设定,往往就是最先消失的。
二是刷新页面或者新开会话。窗口一关,历史记录就散了,下次打开是一个全新的空白上下文,模型自然什么都不记得,让它接着上次的话题聊是不现实的。
还有一种容易忽略的情况:换了模型或换了客户端。不同会话之间的历史是互不相通的,你在手机上说过的内容,电脑上的那个窗口里,AI 是完全看不到的。
上下文窗口和「记忆」的关系
可以把上下文窗口理解成一张工作台面,台面大小是固定的。历史消息、你这次的新问题、以及它即将生成的回答,全都要摆在这张台面上,超出手掌范围就放不下了。
台面被占满时,多数产品的做法是从最早的消息开始往外清。所以长会话常出现「越聊越傻」的现象:前面定好的角色、格式、约束,聊着聊着就全丢了。
想让关键信息活得久一点,可以在聊到中途时主动复述一遍,或者干脆开个新会话,把必要的背景一次性写在开头——这样它始终待在台面最靠前的位置,最晚被清掉。
把多轮对话用好的三个习惯
第一,重要背景放在第一条消息里。角色设定、任务目标、输出格式这些一次说清,别指望它几十轮之后还记得你随口提过的那半句话。
第二,话题一换就新开会话。一个会话只办一件事,混着聊最容易串味,也最容易被后面的内容挤掉前面的设定。
第三,长会话定期「对对表」。聊到十几轮之后,顺手确认一句「我们刚才确定的三个要点分别是什么」,让它复述一遍,发现跑偏还来得及拽回来。
常见问题
多轮对话会额外收费吗?
会,而且费用是累加的。每一轮都要把之前的历史重新发一遍,轮次越多,输入量越大。一个聊了几十轮的会话,单次请求携带的输入内容可能是第一轮的十几倍,所以长会话不仅更慢,也更贵。
为什么同一个问题,新开会话反而答得更好?
因为干净。旧会话里可能积着跑偏的设定、被截断的上下文、前后矛盾的要求,这些都会变成干扰项。新会话带着完整清晰的需求从零开始,模型通常更聚焦,回答质量也更稳。
有没有办法让 AI 真正「记住」我?
有,但那是另一套机制:把资料存进外部知识库,每次提问时检索相关片段一并发过去,也就是常说的 RAG。它解决的是跨会话的长期记忆,和单次会话里的多轮上下文不是一回事,两者可以配合使用。