用户中途改需求,八个前沿模型正确率从六成掉到两成

When Users Change Their Minds: Measuring and Repairing Intent Drift in LLM Agents

Yanjie Zhang, Bowen Cao, Zixin Chen, Yushi Sun

cs.CL, cs.AI

2026-09-26

用户中途改需求,八模型正确率从 0.60 掉到 0.22;显式维护当前意图把均分从 0.367 提到 0.467,仍不及单轮 0.778。

这篇在解决什么

多轮 agent 里常见这种事故:用户先提需求,几轮后改掉一个参数、又撤回一条限制,最后说「按现在这样执行」,交付物里还带着作废的约束。论文把这种失败命名为 intent drift(意图漂移):被推翻的旧意图仍在影响最终答案或工具调用。

已有评测各证明了问题的一半。分片指令类设定说明信息逐轮披露时模型会丢任务;演化意图评测加了参数修改与任务切换,但都只看最终有没有跟上任务,分不清失败来自旧意图还是别的多轮错误。单独测它需要已知的最终意图,加上「用错必然改变评分」的陈旧信息,IntentFlux 照这个规格造。

方法

基准侧,任务表示成原子目标集合,用户模拟器按 ADD、DELETE、REPLACE 的编辑序列把初始意图演化到最终意图 G,评分一律用源任务的原生 grader(SQL 执行、代码测试、工具调用的 AST 检查),判分标准不随对话改变。陈旧信息有两种注法:

难度由构造预算控制,每目标最多 1、3、5 个 variant 与 decoy 对应 easy、medium、hard,对话平均轮数从 13.2 涨到 37.1。收尾只发中性的「给出最终答案」,不复述最终意图,逼 agent 自己从对话里恢复当前需求。源任务覆盖代码、数学、SQL、表到文本、摘要、工具调用七个家族(LiveCodeBench、GSM8K、HumanEval、Spider、ToTTo、SummHay、BFCL),交互轨另用 VitaBench。人工标注加下游审计,95% 的案例能还原标注的最终意图。

修复侧的起点是一个观察:历史压缩救不了漂移。摘要后的上下文里,旧值和它的替代者常常都在,判断哪个有效仍是生成器的活;被删意图派生的结论看起来局部自洽,也容易被摘要保留。StateForge 把「保留什么信息」升级成「什么信息仍有效」:每轮用户消息后,tracker 把意图编辑折叠进显式的活跃状态,意图项被删换时,由它派生的结论一并作废;更新的状态插在缓存历史与当前输入之间,历史可缓存,活跃信息离生成最近。harness 免训练,其上两条迁移:OPD(on-policy distillation)训小 tracker,thinking distillation 把状态折叠内化进独立 agent。

结果

627 任务校准池(gemini-3.5-flash 为被测模型)上,mean score 从 easy 的 0.476 降到 hard 的 0.384,相对降 19.3%。固定 125 题的 General-Test 上,八个模型的满分率(CAR):

模型clean CARhard CARhard IDG [95% CI]
Claude Opus 4.70.5920.1840.408 [0.304, 0.512]
GPT-5.40.6080.2240.384 [0.304, 0.472]
Qwen3.6 Plus0.6400.1920.448 [0.360, 0.536]
GLM 5.20.5760.2320.344 [0.264, 0.432]

八个模型在三个难度档的 clean 与 drift 差距全部为正,均值大约从 0.60 掉到 0.22。掉分主因不是对话变长:轮数匹配、不改意图的对照拿 0.734,接近单轮直给的 0.778,漂移条件只剩 0.469。

条件(Qwen3.5-122B)mean score
单轮直给最终意图0.778
轮数匹配、不改意图0.734
多轮漂移0.469
Deep Agents 滚动摘要0.354
OpenHarness 两阶段压缩0.392
裸多轮执行(medium)0.367
StateForge0.467
注入真值最终状态0.549

Deep Agents 低于裸执行,OpenHarness 也只略高,两个现成历史管理 harness 都远够不到干净条件。StateForge 到 0.467,高出裸执行 0.100(95% CI [0.030, 0.171]);注入真值最终状态是 0.549,离 0.778 还差 0.229,状态估计误差只解释缺口的一部分。

任务族差异大:LiveCodeBench 从 easy 到 hard 掉 0.309,GSM8K 掉 0.184,SummHay 几乎不动,BFCL 反升 0.048。VitaBench 交互轨(100 题)上,收尾不复述最终意图时 rubric 分 0.594,比 clean 的 0.697 低 0.103;默认收尾会复述最终意图,差距被完全掩盖,benchmark 可能在无意中把要测的状态喂给了模型。迁移侧:9B tracker 与 122B 参考无显著差(0.399 vs 0.428);一轮 OPD 把 2B tracker 从 0.266 拉到 0.445,同协议的 122B tracker 是 0.428;thinking distillation 把独立 35B agent 的漂移均分从 0.296 提到 0.461,clean 从 0.745 微降到 0.718。

为什么重要

对做评测的人,这补上了聚合多轮分掩盖的维度:把陈旧信息做成 grader-consequential,才能把「旧意图还在起作用」从一般性的多轮退化里剥出来,decoy 的保留标准是最值得抄的设计。对做工程的人,结论直接可用:历史压缩修不了意图漂移,显式维护一份当前活跃需求才对症;tracker 不需要 base agent 规模,9B 够用、2B 可训,可以做成挂在现有 agent 前面的便宜模块。定位也要诚实:0.467 对 0.778,StateForge 是部分修复,缺口的大头还在。

局限与存疑

术语

原文与代码

相关论文

全部论文解读