简介:AI Agent在多轮对话中失效的根因并不相同。本文对比意图漂移与分片指令两类典型问题,从信息状态、错误方向、诊断参照系、评测构造与缓解手段等维度展开分析,并给出评测选型与工程实践建议,帮助读者准确定位问题根因、选择合适的改进路径。
在真实的Agent应用里,用户很少一口气把需求说完整。以客服场景为例:用户先说要退货,接着改口说换货就行,最后又决定退货但要加急处理。如果处理请求的Agent最终给出的方案里,混进了用户中途提过、又明确否认的要求,用户的第一感受就是“它没在认真听”。
对聊天机器人来说,这类问题影响的是体验;但对会真正执行操作的Agent——调用工具、写代码、查数据库、改配置——来说,被旧意图带偏的代价可能是生成了错误的代码、在数据库里改错了字段。近期公开的一项研究把这类现象命名为意图漂移(intent drift):用户的意图在多轮对话中发生了变化,但模型仍被已经过时、被用户推翻的旧意图影响,导致最终答案或操作出错。
不过,多轮对话里的失效并不只有这一种。更早的研究发现,如果把一个任务的信息拆成好几块、分批告诉模型,模型容易丢三落四,完不成任务,这就是分片指令(sharded instruction)场景。两类问题症状相似——最终输出都不符合用户预期,但根因不同,治理手段也完全不同。就像医生不能只说“你生病了”,必须区分是感冒还是过敏,才能对症下药。本文就把这两类失效模式放在同一框架下做系统对比。
定义:用户意图在多轮对话中被修改、推翻或切换后,模型仍持续受到已被推翻的旧意图影响,在最终输出或执行中误用了过时信息。
关键特征有三个:
定义:任务的完整信息被拆成多个片段、分批提供给模型,模型在跨轮聚合时丢三落四,导致最终输出覆盖不全、遗漏约束。
关键特征:
两类失效虽然根因不同,但有不少共同点,这也是它们容易被混为一谈的原因:
这是两者最本质的区别。意图漂移场景里,信息是完整的,但其中一部分已经被用户明确否认,属于“过时但听起来依然合理”的陷阱信息;分片指令场景里,信息只是分散,不存在任何一条被推翻的说法,难点在于跨轮拼装。
这个方向差异在工程上很有价值:如果线上日志里发现Agent频繁执行了用户否认过的操作,优先排查意图漂移;如果频繁被投诉“漏需求”,优先排查分片聚合。
分片指令的诊断相对直接:只要拿到完整的约束清单,逐条核对最终输出即可。
意图漂移的诊断则难得多,必须排除其他多轮常见毛病的干扰——模型出错到底是“被旧意图带偏”,还是单纯记性不好、注意力分散?要证明前者,评测设计必须满足三个条件:
近期研究提出的意图漂移评测框架,核心就是把有标准答案的任务改造成多轮对话:在对话中让用户不断提出、修改、推翻意图,同时保证陷阱信息可判分。相较之下,此前一项更接近的意图演进研究虽然测试了意图被揭示、修改、切换的情况,但只能回答“模型最终有没有跟上任务”,无法区分错误是旧意图带偏还是其他多轮通病——这是两类评测设计的关键差距。
给出一个示意性的构造流程(伪代码):
# 构造一个意图漂移测试样例(以SQL生成任务为例)base_task = "生成满足约束的SQL查询" # 有标准答案,可自动判分turn_1 = 提出"查询订单数据" # 初始意图turn_2 = 改口"顺便看退款信息" # 意图修改turn_3 = 明确推翻"不需要退款相关字段" # 旧意图作废,形成陷阱turn_4 = 补充"只看最近30天" # 新增有效约束ground_truth = 按最终意图 + 有效约束生成的标准SQLtrap_check = 最终SQL若包含退款字段 → 意图漂移命中coverage_check = 有效约束是否全部满足 → 排除分片式遗漏
注意最后一步:先做覆盖性检查排除“漏信息”,再做陷阱检查确认“用错信息”,这是把两类失效解耦的关键。
| 对比维度 | 意图漂移 | 分片指令 |
|---|---|---|
| 信息状态 | 完整,但含被推翻的旧意图 | 分散,需跨轮聚合 |
| 用户行为 | 修改、推翻、切换意图 | 分批陈述需求 |
| 典型错误 | 多做:执行了已被否认的要求 | 少做:遗漏了部分约束 |
| 诊断参照系 | 最终意图+陷阱标注+可验证性 | 完整约束清单 |
| 评测构造 | 意图演变路径+陷阱注入 | 信息分片喂入 |
| 诊断难度 | 高,需排除其他多轮通病 | 相对直接 |
| 缓解方向 | 意图对齐、否定跟踪、执行确认 | 约束聚合、清单校验、结构化记忆 |
| 风险等级 | 执行型Agent下风险更高 | 以任务完成为主的风险 |
一句话概括核心差异:分片指令是“信息没喂全”,意图漂移是“信息喂全了,但其中一部分已经作废”。前者考验跨轮聚合能力,后者考验对“当前有效意图”的锁定能力。当用户说“算了,换个方案”时,一个合格的Agent应该果断放下旧方案——而判断你的系统是否做到了这一点,需要带陷阱标注与可验证判分的评测参照系,而不是凭感觉看对话流不流畅。先把失效模式诊断清楚,再决定是做意图对齐还是做约束聚合,这才是改进Agent多轮能力的正确顺序。