AI产品设计

多轮对话的上下文设计要注意什么?

91学AI·2026/8/14·9 阅读

上下文不是免费的,先算清成本账

多轮对话里每发一条新消息,历史记录都要重新进模型算一遍。假设一轮对话平均 500 token,聊到 30 轮就是一万五的上下文,按主流 API 的价格,长会话的成本可能是单轮场景的十倍以上,首 token 延迟也会明显变长。所以第一个设计决策就是:上下文窗口开多大、超出之后怎么办。常见三选一——硬截断(只留最近 N 轮)、摘要压缩(把早期对话浓缩成一段摘要继续带)、检索式召回(历史向量化,按需取相关片段)。硬截断最简单但会「聊着聊着忘了开头」,摘要压缩是通用聊天产品的主流做法,豆包、Kimi 的长对话基本是这个思路;检索式成本高,适合企业知识库这类需要精确引用历史细节的场景。还有个隐形成本别忘了:系统提示词、工具定义这些固定部分每轮也要跟着重算一遍,产品里堆了十几个工具的时候,光工具描述就几千 token,聊十轮等于白送几万 token。所以工具数量和系统提示词长度也是要抠的预算。

指代消解和话题切换,多轮的两个经典坑

用户说「把它翻译成英文」「再详细一点」,这个「它」指什么、要不要带上文,是产品要替用户兜底的。工程上通常有一步查询改写:把当前问题结合历史改写成独立完整的查询再往下走,这一步对检索类场景(RAG)尤其关键,不改写的话「那退款政策呢」根本检索不到东西。

指代还有拿不准的时候。历史里出现了两个候选对象,用户说「对比一下它俩」,强行猜一个往下答,猜错了就是一整轮浪费。更好的设计是歧义大的时候主动澄清:「你是指 A 和 B 吗?」一轮短确认的代价,远小于答非所问后用户重写一遍的代价。Claude 在这点上做得比较明显——不确定时会反问而不是硬答,短期看对话变长了,长期看任务完成率更高。

更麻烦的是话题切换。用户前二十轮在聊旅游攻略,第二十一轮突然问「帮我写封辞职信」,如果全量上下文继续带着,旅游信息就是纯噪声,会稀释回答质量还白花钱。设计上要有话题边界检测——发现新问题与近期历史的语义相关度掉到阈值以下,就开新上下文,旧的归档备用。让用户手动「开新会话」是兜底,不能是主要手段,因为大多数用户根本想不起来按。

上下文污染:错误会被记住

很多人没意识到:多轮对话里模型一旦说错,这个错误会留在上下文里,后面的回答会顺着错的继续编,越错越自信。用户纠正了之后,道歉和错误答案还都待在历史里。产品上能做的:用户「重新生成」之后,被替换掉的那个答案应该从上下文里删掉或标记弃用,别让新旧两个矛盾版本同时进上下文;对事实性错误,给「从这一轮重新开始」的一键操作比让用户在污染的上下文里硬聊强。

跨会话记忆是把双刃剑

ChatGPT 的 Memory、豆包的记忆功能都在做跨会话的长期记忆:记住你的职业、偏好,下次聊不用重说。价值是真实的——个性化体验明显变好;但设计时要守住三条:用户能查看它记住了什么、能逐条删、能一键全清。这既是隐私合规要求(个人信息可删除权),也是信任建设——「被 AI 偷偷记住」的感觉比「被记住」本身可怕得多。ChatGPT 后来给记忆加了显式管理页,还加了「临时聊天」(不带记忆、不留记录),就是踩过舆论坑之后的补的设计。

给用户看得见的上下文控制

最后一条原则:上下文状态要对用户透明。Claude 在上下文快满时会提示「对话过长,建议开新对话」,这比默默截断、然后回答质量莫名其妙下降好得多。好的上下文设计是让用户大致知道「它现在记得哪些、忘了哪些」,并且忘的时候可以干预。看不见的控制等于没有控制,用户只会觉得「这 AI 记性时好时坏,不靠谱」。

评论 (0)

暂无评论,快来抢沙发吧!

91学AI

© 2026 91学AI · 按岗位学 AI 与大数据. All rights reserved.