腾讯提出Oracle-OPD:斩断多轮历史诱偏,小模型工具准确率达87%
When History Lies: Evaluating and Improving Tool Use under Misleading Multi-Turn Histories

在多轮交互中构建自主智能体(Agent)时,开发者普遍面临一个看似矛盾的困境:随着交互轮数增加,模型往往不是因为“缺乏上下文”而犯错,反而是被上下文里看似言之成理的陈旧信息给带偏了。用户在几轮之前随口更改的航班号、某个已被弃用的 API 参数命名习惯、甚至工具报错后残留的失败记录,都会潜移默化地成为大语言模型的行为先验。这种现象在实际落地中屡见不鲜:模型明明具备正确调用工具的能力,但在面对复杂的历史轨迹时,却不由自主地沿用了过时乃至错误的调用惯例。
ArXiv URL:https://arxiv.org/abs/2608.06057v1
腾讯团队在近期的研究中正式揭示并系统定义了这一瓶颈——历史诱发的策略劫持(History-Induced Policy Hijacking)。研究显示,仅需在多轮交互中插入语义合理但已经失效的干扰历史,参数量为 1.7B 的轻量级模型便有高达 $32.14\%$ 的原本正确决策直接翻转。
为了攻克这一隐蔽而普遍的系统性缺陷,该团队推出了成对诊断基准 ContextPollute-Bench,并提出了基于可靠状态特权知识迁移的在线策略蒸馏方法 Oracle-OPD(Oracle-guided On-Policy Distillation)。在仅有 1.7B 参数的紧凑模型上,Oracle-OPD 将平衡工具使用准确率(BTA)从标准微调(Gold-SFT)的 $66.3\%$ 大幅拉升至 $87.0\%$;如果借助 8B 参数的教师模型进行指导,1.7B 模型的准确率可进一步攀升至 $91.9\%$。这一方案不仅让小型模型在受污染的多轮交互中保持高度清醒,更为高鲁棒性智能体的训练提供了极具工程价值的落地范式。
历史诱发的策略劫持:当有效语法遇上失效上下文
在典型的 Agent 执行循环中,模型需要根据系统策略、可用工具清单、多轮对话与工具调用轨迹,以及用户当前的最新请求,共同推断出当前任务所处的状态。这种依赖历史推断状态的机制,暗含了一个致命假设:交互历史中的信息具有权威性。
然而在真实的生产环境中,交互历史往往充斥着各种妥协与废弃信息。例如,用户在第一轮尝试查询订单时拼错了一个字段,工具返回了报错;随后用户在第二轮纠正了提问,期望更新真实的预订记录。在这一刻,先前的错误调用记录依然完整地躺在提示词上下文中,其 JSON 结构依然合法,语义上也与机票预订息息相关,但它对于当下的最新请求来说,已经失去了状态约束力。
实验表明,大模型在遇到这类情境时表现出极强的模仿惯性。即便当前系统工具的 Schema 明确规定参数名称为 payment_id,只要前文历史中曾出现过一次使用 paymentId 的失败调用,模型就会倾向于抛弃 Schema,转而照抄历史中的旧参数格式。这种现象不仅局限于参数名漂移,还广泛存在于实体引用的错误混淆、过时工具的强行调用、以及在原本应当直接文本回复时依然盲目触发工具等多种形态。
这种失败模式此前之所以被学界与工程界忽视,是因为主流工具基准测试大多关注端到端的调用成功率,或关注模型在受到直接指令注入攻击(Prompt Injection)时的防御能力。由于测试集中的多轮历史通常是干净、理想化的闭环轨迹,开发者无法剥离出究竟是模型本身缺乏工具使用能力,还是其固有的正确策略被非权威历史生生拽向了错误分支。
ContextPollute-Bench:严密的三重视角对照体系
为了将这一隐蔽瓶颈彻底量化,研究团队构建了名为 ContextPollute-Bench 的配对评测基准。其核心思路在于控制变量:在每一个决策节点上,为模型严格同步构建三种视角,同时保持系统策略、可用工具集、当前最新用户请求以及标准动作(Gold Next Action)在三重视角下完全一致。
这三重视角分别是:未经修改的纯净原始轨迹(Original View)、插入了非权威误导痕迹的受污染轨迹(Polluted View),以及只保留当前决策所必须的关键意图、槽位与事实证据的特权状态视图(Oracle State View)。值得注意的是,Oracle State 在设计上极度克制,它仅摘要提炼决定性的事实,严格抹去了具体的工具函数名称,防止向模型直接泄露答案。
基于这一严密框架,基准设计了 11 种保持标准动作不变的干预算子(Gold-Preserving Interventions),全面覆盖调用(Call)决策与回复(Answer)决策:
在工具调用维度,干预算子细化到了决策状态转移、实体绑定以及接口执行细节。比如通过插入无关任务的虚假成功返回,诱导模型误以为前置依赖已满足;或者引入针对同类其他实体的历史交互,观察模型是否会将目标 ID 掉包;甚至故意保留历史上调用失效的废弃参数格式,测试模型是否会背弃当前工具规范。在回复决策维度,干预则集中于在用户需要澄清、仅需基于已有证据回答、或任务超出能力范围时,插入貌似可用的历史工具片段,测试模型能否克制住调用冲动。
评测指标也进行了针对性的重构。针对工具调用样本,设定了要求函数名与全部参数完全一致的完整调用召回率(TCR);针对无需调用工具的普通文本回复样本,设定了衡量盲目滥用工具倾向的过度调用率(OCR);最终以两者的综合平均作为核心衡量指标——平衡工具使用准确率(BTA):
\[\mathrm{BTA} = \frac{1}{2}\mathrm{TCR} + \frac{1}{2}(1 - \mathrm{OCR})\]这一评测体系直接戳破了模型的“策略幻觉”:在基准模型 Qwen3-1.7B 上,当上下文由纯净历史替换为受污染历史时,模型在原有正确样本上出现了 $32.14\%$ 的翻转率。即便是参数量大得多的 32B 模型,在 Oracle State 与 Polluted 视图之间依然存在清晰可见的性能鸿沟。这证实了历史可靠性并非某一特定轻量模型的偶发缺陷,而是当前 Transformer 架构处理长上下文时普遍存在的认知盲区。
Oracle-OPD 的破局逻辑:让全知教师纠偏陷在泥潭中的学生
如果简单地采用提示词工程,在 Prompt 中加入“请忽略历史上失败或无关的工具记录”这类通用警告,实验表明其带来的准确率改善微乎其微,BTA 仅从 $47.20\%$ 象征性地上升至 $48.49\%$。模型需要的是对状态权威性的细粒度辨别能力,而非泛泛的免责声明。
而如果采用常规的有监督微调(Gold-SFT),模型往往会走向另一个极端。由于受污染的历史充斥着大量似是而非的噪点,SFT 强行要求模型在脏历史输入下拟合唯一的标准输出序列,极易导致策略的整体失衡:模型要么由于过度恐惧误调用而在各类场景下全面“躺平”拒绝调用工具,要么在调用时依然难以抵御参数污染。
为此,研究团队设计了 Oracle-guided On-Policy Distillation(Oracle-OPD) 框架。其核心思想在于:在训练阶段引入具有“特权认知”的教师模型,但部署时完全抛弃特权依赖,让学生模型独自上岗。
Oracle-OPD 由三大关键支柱构成:
第一是可靠状态条件化(Reliable-State Conditioning)。在离线训练阶段,为教师模型提供绝对可靠、高度凝练的 Oracle State 视图。此时教师模型不会受到任何冗余或错误历史的干扰,其表征的是不受污染的纯正执行策略。
第二是分布级软监督(Distributional Policy Transfer)。传统序列蒸馏仅强制学生拟合教师采样出的某一条硬标签 Token 序列,丢弃了大量决策维度的不确定性信息。Oracle-OPD 采用 Token 级别的反向 KL 散度(Reverse-KL Divergence),保留了教师在“是回复还是调用”、“选择哪个工具分支”、“不同参数值分布”上的相对概率倾斜,使策略知识更加完整地渗透进学生模型:
\[\mathcal{L}_{\mathrm{OPD}} = \mathbb{E}_{(x_p, x_o),\, y}\left[\frac{1}{|y|}\sum_{t=1}^{|y|}D_{\mathrm{KL}}\left(q_t^S \,\|\, q_t^T\right)\right]\]其中 $q_t^S$ 与 $q_t^T$ 分别是学生在污染输入 $x_p$ 和教师在特权输入 $x_o$ 条件下对前缀 $y_{<t}$ 的预测分布。
第三是学生在轨状态覆盖(Student-State Coverage / On-Policy)。这是该方法区别于传统离线蒸馏的核心精髓。面对受污染的历史,学生在自主推理(Rollout)时极易迈出偏离正轨的第一步。如果仅用标准参考答案(Gold Prefix)或教师自己生成的前缀来计算损失,学生就永远学不会“当自己已经被脏历史带坑里时该如何自救”。Oracle-OPD 强制教师模型在学生自主探索生成的前缀序列上来给学生打分和纠偏,确保监督信号完美覆盖学生在脏环境下真正容易陷入的状态空间。
在部署推理时,系统完全剥离教师模型和 Oracle 视图,仅需学生模型独自接收普通的完整交互历史,无需任何额外的特权输入或计算开销。
实验见证疗效:从 1.7B 到 8B 的策略平衡与规模缩放
实验在 Qwen3-1.7B 与 Qwen3-8B 两个规格的模型上全面展开。在 ContextPollute-Bench 的同分布测试集(Test-Indist)上,Oracle-OPD 展现出了断层式的优势。
未经微调的 1.7B 基座模型 BTA 仅有 $47.20\%$,而常规的混合 Gold-SFT 虽然将过度调用率压得极低($1-\mathrm{OCR}$ 达到 $98.34\%$),但其完整调用召回率 TCR 却断崖式下跌至 $34.22\%$,最终 BTA 仅为 $66.28\%$。SFT 显然把模型教成了一个不敢做事的“保守派”。
相比之下,Oracle-OPD 展现出了极佳的策略平衡性:在维持高达 $91.32\%$ 的完整调用召回率的同时,将非调用场景的克制召回率稳定在 $82.73\%$,综合 BTA 飙升至 $87.03\%$。相比传统的离策略蒸馏(Off-policy OD,BTA 为 $85.0\%$)和硬标签序列蒸馏(Oracle-SeqKD,BTA 为 $82.29\%$),On-Policy 软标签机制的有效性得到了严谨验证。
这种策略差异在“工具使用策略平面”中体现得尤为透彻。横坐标代表调用的彻底性(TCR),纵坐标代表不该调用时的克制力($1-\mathrm{OCR}$)。如果只用纯调用数据做微调,模型会飞速滑向右下角的“狂躁调用区”(TCR 达 $87.62\%$,但克制率仅 $29.42\%$);如果混合普通回复做微调,模型又会逃窜到左上角的“消极防御区”。唯独 Oracle-OPD 成功扎根在右上角的高效高稳平衡区。
更引人注目的是模型的跨规模蒸馏潜力。当保持 1.7B 学生模型大小不变、仅将指导其训练的教师模型替换为 8B 规格时,学生模型的 BTA 进一步跃升至 $91.93\%$。这表明在特权状态的加持下,大参数模型的权威决策能力可以无损压缩进体积极小的小模型中。如果进一步把学生也换成 8B 模型,其平衡准确率更是能够突破至 $93.01\%$。
不仅如此,在完全未参与训练的 6 种保留新工具(OOD-600)评估中,1.7B 的 Oracle-OPD 模型依然斩获了 $74.33\%$ 的完整调用准确率,相比基座模型大幅提升,证明该方法赋予模型的是底层的上下文抗噪甄别能力,而非特定 API 的记忆死背。
泛化与迁移:不只防污染,更是底层决策能力的蜕变
一项优秀的策略对齐方案,绝不能以牺牲原有通用能力或在正常环境中发生性能退化为代价。研究团队通过一系列多维度的外溢测试,证实了该策略迁移的稳健性。
首先是对干净历史的反哺。当把经过污染历史训练的 Oracle-OPD 模型直接放回完全没有污染的原始历史(Original View)中运行时,其表现没有丝毫打折,在 1.7B 和 8B 规模下均保持与污染测试集完全一致的高水准(1.7B 达到 $84.50\%$ BTA,8B 达到 $92.60\%$ BTA),甚至未见 API 的调用表现也完全持平。这表明模型习得的不是某种特定的“打补丁去噪脚本”,而是建立起了深层的主次信息仲裁机制:不论前文有没有噪声,它都只听从具有当前权威约束力的状态。
其次是跨生成源的稳健性。测试集中的误导轨迹如果换一种生成机制,是否依然有效?研究者使用 Claude-Opus-4.7 完全独立地重写并生成了评估用的污染历史与特权状态,而评估的模型全程仅在 DeepSeek-V4-Flash 生成的数据上训练过。在完全没有接触过 Claude 生成风格的情况下,1.7B 模型的 Oracle-OPD 在受污染测试集上依然斩获了 $81.4\%$ 的 BTA,大幅领先于其他对照方法。
更进一步,该能力成功破圈外溢到了多项通用的行业基准测试中:
在覆盖宽泛工具调用能力的权威基准 BFCL v4 上,经过 8B 教师蒸馏的 1.7B 学生取得了 $80.45$ 的宏准确率,相较于未微调基座模型的 $79.58$ 不降反升,证实其基础 API 遵循能力毫发无损。
在专门考察调用时机判断的基准 When2Call 上,该模型在所有支持的类别中均取得了最佳 F1 成绩,宏 F1 从 $0.2701$ 显著拉升至 $0.3294$,同时将面对“无法解答”样本时的幻觉调用率从 $50.00\%$ 骤降至 $34.11\%$。
甚至在完全脱离 Agent 工具调用范畴的开放域多跳问答基准 HotpotQA-Distractor 上,该模型在包含 10 个混淆段落的强干扰环境下,零样本(Zero-Shot)取得了 $0.5015$ 的 F1 分数,不仅超出次优训练模型近 3 个绝对百分点,更是刷新了所有同量级模型中最小的“纯净-干扰性能衰减差”(仅衰减 $0.1596$)。这充分印证:经由特权状态引导的在轨学习,本质上重构了模型从长程复杂文本中剥离权威证据与干扰噪点的全局注意力分配能力。
结语与工程启示
当大语言模型从单轮的指令跟随者演变为长周期、多步骤的自主 Agent,交互历史就不再只是供其参考的被动知识库,而是直接决定其下一次行动的动态状态机。历史记录的“真实感”往往成为蒙蔽模型的最大陷阱。
腾讯团队的这项研究不仅精准抓住了“历史诱发策略劫持”这一长程交互的软肋,更用严密的数据和框架为行业给出了解决方案。ContextPollute-Bench 建立了对虚假上下文诱偏的度量标尺,而 Oracle-OPD 则证明了特权信息蒸馏在强化小模型交互鲁棒性上的巨大价值:在离线训练阶段赋予教师“全知上帝视角”,在学生犯错的动态前缀上以软概率持续纠偏,最终在推理部署阶段收获一个轻量、敏锐且心无旁骛的坚固智能体。这种将系统鲁棒性化入底层参数表征而非寄希望于冗长 Prompt 的思路,无疑为工业级 Agent 的稳定落地指明了一条清晰而扎实的演进路径。