跳转到主要内容

多轮对话会话状态坍缩问题

阅读需 2 分钟Tian PanTian Pan

你的单次请求错误率看起来很正常。延迟在 SLO 范围内。LLM 裁判对输出的评分是 87%。接着,一位用户提交了支持工单:“我把账号告诉了机器人三次,它却一直重复问我。”另一位用户说:“它先是同意退款,两轮对话后又否认该政策的存在。”

单轮失败是显而易见的。请求进来,模型出现幻觉或拒绝回答,你的评估 (eval) 捕捉到了它,然后你修复提示词。反馈循环很紧密。多轮失败则完全不同:会话开始时表现良好,随后逐轮恶化,而你的监控从未报警,因为每个单独的回复在技术上都是连贯的。问题出在整个会话上——而几乎没有团队为此建立观测机制。

对主要前沿模型(Claude 3.7 Sonnet、GPT-4.1、Gemini 2.5 Pro)的研究显示,从单轮转向多轮对话时,平均性能会下降 39%。这个数字掩盖了真相:只有大约 16% 的下降是由于能力损失。另外 23 个百分点则是一场可靠性危机——随着对话长度增加,模型在同一任务上的最佳表现与最差表现之间的差距翻了一番。你得到的不仅是质量更差的输出,还有极不稳定的输出。

为什么多轮对话会话会退化

这种退化并非偶然。从业者在生产环境中会遇到四种重复出现的失败模式。

过早承诺 (Premature commitment) 发生在模型锁定早期上下文并将其作为推理锚点时。用户在第一轮说“我正在做一个 Python 项目”,接着花了三轮讨论无关内容,然后寻求代码帮助。即便用户的后续问题明显是关于 Shell 脚本的,模型仍会编写 Python。早期的信息片段变成了一个先验条件,所有其他信息都会经过它的过滤。

复合错误 (Compounding errors) 由最初的偏差级联而成。如果在第二轮出现了 2% 的偏差,而模型是基于错误假设而非重新审视它们,那么到第十轮时失败率将达到 40%。模型不会自发纠正方向;一旦走错路,本应反驳错误的额外信息会被整合到错误周围,而不是替换它。

中间轮次丢失 (Loss-of-middle-turns) 是 Transformer 注意力机制运作方式的一种结构性产物。注意力权重具有首因效应和近因效应——最先说的和最后说的会获得不成比例的权重。用户在第四轮给出的关键澄清(用于优化第一到三轮的需求)会悄无声息地被埋没在注意力噪声层中。经验表明,与将相关信息放在边缘位置相比,将其放在长上下文的中间位置会使模型准确率下降 30% 以上。

假设膨胀 (Assumption inflation) 发生在较长的回复中。模型在会话中途引入了听起来合理但虚假的前提,这些假设会作为未来轮次的上下文持续存在。会话逐渐从用户的实际目标偏离,转向一个关于对话内容的幻觉版本。

底层机制就是研究人员所说的上下文腐烂 (context rot)。一个拥有 200K token 上下文窗口的模型在 50K token 时就可能表现出显著退化——远在达到极限之前。Softmax 归一化意味着你添加的每一个新 token 都会提高噪声基底。更多的上下文并不会增加信号强度,反而会稀释对关键信息的注意力。在 100K token 时,每层大约有 100 亿次成对的注意力比较。每一条相关信息分配到的注意力预算比例都会变小。

哪些失败是悄无声息的

那些不会触发常规监控的具体失败:

  • 用户在第二轮提供了账号,聊天机器人却再次索要。单轮质量评分看起来没问题;如果没有会话级别的追踪,上下文检索失败是不可见的。
  • 第一轮建立的约束(例如“仅推荐 500 美元以下的选项”)随着对话范围的转移,在第八轮被隐式覆盖。没有任何一个单独的回复违反了指令——而是整个会话逐渐抛弃了它。
  • 代词消解 (Pronoun resolution) 在轮次间失效。模型在第五轮引入了一个新实体;到第八轮,它与用户真正指代的实体发生了混淆。大约 70% 的真实对话包含跨轮次的指代关系,即便每一轮单独解析正确,模型也难以处理好这些关系。
  • 角色或人设偏移 (Role or persona drift):系统提示词建立了一个正式的、受政策约束的助手。到第十二轮时,模型说话变得随意,并做出了违背原始人设的承诺。每条回复看起来都正常,但轨迹已经偏离。

生产环境中的智能体 (Agents) 受影响尤为严重。研究显示,编码智能体在第一轮会花 60% 的时间检索上下文,积累的无关文件会在整个任务过程中留在窗口内。在任务执行到 35 分钟时,所有受测智能体的成功率都会下降。当任务持续时间增加一倍时,失败率大约会增加到原来的四倍。

如何针对会话健康进行埋点

单次请求指标(Per-request metrics)无法捕捉到这一点。你需要会话级埋点,按会话 ID(Session ID)对 span 进行分组,并跨轮次(turns)跟踪状态。

**对话完成率(Conversation completeness rate)**衡量会话是否满足了用户的原始意图,而不是看每一轮是否都得到了回答。基准问题是:你是否能说出用户在第一轮时最初想要什么,以及该会话最终是否交付了该结果?

会员专享

余下内容仅对会员开放。

会员可读完整内容 —— 每一个公开发布的观点背后,那些框架、决策与推理的全貌。

  • 完整文章,包含未公开存档的部分
  • 可落地的工作框架,附带权衡与决策依据
  • 新文章抢先看,先于公开发布

随时取消 · 一次订阅,畅读全部

参考资料

保持联系,关注我获取更多内容

阅读需 9 分钟

发布顺序问题:为什么同时部署模型与基础设施变更会破坏可观测性

在同一次发布中同时扩大上下文窗口、升级模型版本和更改批处理大小,会将调试问题变成无法解决的调试难题。以下是保持 AI 系统可读性的顺序化纪律。

insider
ai-engineering
阅读需 9 分钟

FinOps 鸿沟:为什么没有人批准你那 4 万美元的 AI 账单

模型支出通过你的变更管理流程从未审查的代码路径进入生产环境。本文将探讨为什么 Token 成本在审批中是不可见的,以及弥补这一鸿沟的归因、成本分摊(Showback)和支出闸门(Spend-gate)等原语。

insider
finops
阅读需 10 分钟

被反向代理剥离的 SSE Keep-Alive,以及你支付了两次费用的 Prompt

LLM 流式响应看起来像是从模型到用户的通畅管道 —— 直到一次 35 秒的工具调用导致反向代理断开连接,你的客户端针对无状态 API 重试整个 Prompt,最终用户的账单为同一个响应支付了两次费用。

insider
ai-engineering
阅读需 9 分钟

评估天花板:当你的黄金测试用例失去区分度时

一旦每个候选模型在相同的测试用例上都获得了 95+ 的分数,你的评估套件就不再具备任何衡量价值 —— 是尺子不再适用,而不是被测平台的问题。

insider
ai-engineering
阅读需 10 分钟

流式推理中的海勒姆定律:节奏、停顿和中间 Token 是未成文的契约

当更换模型虽然保留了结构化输出 schema,但改变了 Token 节奏、停顿模式和中间表述时,你实际上发布了一个破坏性变更,违反了一个你从未正式定义的契约。

insider
ai-engineering