生成式 AI 三十讲第 10 讲 / 共 30 讲从一问一答到会聊天

多轮对话的真相:它怎样记住前文

应用会为每轮重新组装所需历史,理解这一点就能看清长对话的延迟、用量和遗忘。

第一轮你说:「这个项目叫松灯,预算表里的金额都含税。」十轮以后,你只问「松灯还能再减多少」,AI 仍知道你在说哪个项目。它看起来记住了你,实际更常见的情况是:聊天程序把前面的消息保存下来,在新一轮请求时重新交给模型。

模型没有像人一样在两次请求之间坐着回想。连续感来自产品保存和整理的对话记录。

先给答案

多轮聊天通常由应用保存历史,并在每轮为模型重新组装所需上下文。模型只根据本次拿到的内容回答;历史被删掉、摘要错了或超出窗口,它就会「忘记」。因此长对话会增加输入、延迟和出错机会。

## 第二轮请求里究竟装了什么?

多轮对话是用户与助手围绕一段历史连续交流。也就是说,当前问题的含义依赖前面说过什么。你先说「把标题改短」,下一轮只写「再温和一点」,模型必须同时看到原题、上一版标题和这句新要求,才知道要改什么。

传统聊天接口接收的是一列消息,常见角色包括系统、用户和助手。第二轮调用时,应用把第一轮用户消息、第一轮助手回答、第二轮用户消息依次放进列表。模型处理这份列表,生成下一条助手消息。第三轮再加入新的问答,如此继续。

第二轮对话请求由系统说明、第一轮用户问题、第一轮助手回答和第二轮用户问题共同组成,再整体交给模型读取
多轮对话的连续感来自应用在新请求中重新提供系统说明和此前问答。

从模型这一侧看,每次生成都是一次新的计算。上一次回答结束后,模型参数不会因为你的项目代号而改变,也不会为每位用户留一块私人记忆。所谓「它记得」,更准确地说是「本次输入里仍有那条信息」。

现代平台也可能提供会话对象、响应引用或服务端存储,让开发者不用手工提交整份消息列表。但平台仍要在生成前取回并整理相关历史,放进模型可用的上下文;这是接口替应用代管状态,不是模型忽然有了跨请求的个人记忆。保存多久、是否用于训练、用户能否删除,是产品数据政策问题,要单独确认。

为什么聊天越久,越慢也越容易跑偏?

历史消息属于输入。第一轮只有一个 100 字问题;聊过十轮后,本轮可能还带着前面十组问答。即使你只输入「继续」,系统也要处理那一长串旧内容。输入增加会占用上下文窗口。也就是说,留给新资料和新回答的空间减少,同时处理时间和调用用量通常也会上升。

历史并非总是原样保留。接近容量上限后,产品可能丢弃最早消息、保留最近几轮,或把旧内容压成摘要。假设原话是「预算不超过 20 万,但安全检查费用另算」,摘要写成「预算上限 20 万」,后面做报价比较时就可能把安全检查错误地算进上限。

还有一种常见问题叫上下文污染。也就是说,历史里的错误或过时信息会继续影响后面的回答。第三轮模型误把交付日写成周四,你没有纠正;第八轮让它整理时间表时,那条错误回答仍在历史里,于是模型把自己的旧错误当作现成材料再次使用。对话越长,错误和过时要求越容易积在一起。

所以,开新对话有时比反复说「忘掉前面的要求」更干净。后一句仍然与旧要求同处一个上下文,模型需要判断谁覆盖谁;新会话则从输入层面移除了旧记录。当然,开启新对话后也要重新提供仍然有效的项目背景。

「聊天记录」和「长期记忆」不是一回事

聊天记录是某个会话里的消息。长期记忆则是应用从过去对话提取信息,存到会话之外,以后再取回使用。例如你曾说「报告默认用简体中文」,下个月新开对话,产品仍采用这个偏好,这才属于额外的记忆功能。

这种功能不是模型天然拥有的。应用要决定记什么、存在哪里、什么时候取回、怎样删除。若把一句临时要求「这次给法国客户写英文」错误保存成长期偏好,以后每份报告都可能变成英文。记忆越积极,隐私和过时信息的问题越突出。

企业助手还会把用户身份、客户编号或项目摘要存入数据库,需要时检索后加入当前请求。这种设计可以跨会话工作,也能设置权限和期限;代价是系统多了存储、检索和审计环节。下一讲会专门拆解这些工程做法。

理解这一点后,许多现象就不神秘了。删除聊天记录不一定等于删除平台另存的偏好;模型说出旧信息也不一定证明它在训练时见过,可能是应用刚刚取回;同一模型接在不同聊天产品后面,记忆表现也会完全不同。

自己试一下

在现有对话输入:「请记住临时代号‘灰鲸 314’,只回复收到。」接着问:「代号是什么?」它通常能回答。然后新建一个不继承历史的对话,再问同一句。

我们在 2026 年 8 月用 Cursor 当前会话模型试过:同一会话能复述代号;新对话没有那段历史,因此要求补充背景。若你使用的产品开启了跨会话记忆,新对话也可能答出,这恰好说明产品另有存储功能。测试后删除这条临时信息。

再做一步:回到原对话,要求模型把此前代号改成「白栎 208」,观察后续是否使用最新值。这能检查历史冲突时的处理。你试的时候结果可能不同,重点是看它的行为模式。

常见误解

误解一:AI 记住了,就说明模型偷偷拿去训练了。 当前会话能复述,通常只说明历史仍在输入里;是否用于训练是另一条数据流程,应看产品政策。

误解二:每种聊天产品都把全部历史原样重发。 有的手工传消息,有的由平台保存并引用,还有的会截断或摘要。共同点是模型只能使用本次被提供的上下文。

三句话总结

  1. 多轮连续感来自应用保存并重新提供历史,不是模型跨请求自行回忆。
  2. 历史越长,输入越多,也越容易发生截断、摘要失真和旧错误累积。
  3. 跨会话记忆需要额外存储与检索,必须同时设计权限、期限和删除。

如果你要做决定

请供应商画清聊天历史与长期记忆的数据流:存什么、存多久、谁能读、怎样删除、超限后如何处理。再用项目改名、权限变更和旧信息过期三个案例做验收。