规范漂移下的修订可验证性:面向多轮 Agent 训练数据的反事实重放框架 ReSpec
多轮 Agent 训练数据的监督信号停在终局且依赖模型裁判,导致约束蒸发、重做偏好与前缀污染三类失效;本提案把规范变更提为一等公民,用反事实重放构造不依赖裁判的可验证修订信号。
背景与动机
多轮交互才是 Agent 的真实工况,训练数据却仍停在单轮假设上。PersonaForge 团队对 1.6 万条真实会话的统计给出了一个难以绕开的数字:75.9% 的交互是两轮以上,多轮会话的用户发言中位数为 10 轮,平均长度约 21.2 万字符,是单轮的 4.7 倍(arXiv:2608.28378)。用户会在工具返回之后追加约束,在看到中间结果之后改变方向,在 Agent 已经动手之后撤回要求。
缺口已经不在「有没有多轮数据」了。PersonaForge 用四维人格空间、按真实用户统计校准的 SOUL 行为控制、以及基于真实种子查询的反向深度构造,造出了 6.3K 条多轮训练记录和 138 任务的 PersonaForge-Bench,把 Qwen3.5-27B 的复合分从 76.2% 推到 80.3%,MiMo-V2-Flash 从 60.4% 推到 76.1%。缺口转移到了下一层:这批数据的监督信号是终局的,而且依赖模型裁判。整条轨迹只在会话结束时被判定成败,中间每一次「用户改口 → Agent 修订」都没有独立的可验证信号。
由此产生三类失效,它们在现有管线下无法观测,因而也无法被优化。
约束蒸发。 用户在第 3 轮提出约束 C、第 9 轮追加约束 D,Agent 第 10 轮的计划满足 D 却悄悄丢掉 C。终局裁判看不见 C,因为裁判面对的只是最终产物,而最终产物看上去是完整的。
重做偏好。 终局奖励不做成本记账,面对规范变更时方差最小的策略就是丢弃前缀、从头再来。PersonaForge 报告训练后的 Agent 轮次与工具调用更少,但那是在模拟用户的自然分布上测得的,模拟用户并未以受控速率注入中途反转。效率增益在对抗性漂移下能否存活,目前没有答案。
前缀污染。 三者中最根本的一条:在已被用户废弃的规范 S_t 下执行出来的前缀,放到最终规范 S_T 下审视是反事实次优的——假设 Agent 第 1 轮就知道 S_T,它本不会那样行动。拿整条轨迹做 SFT,等于让模型模仿一批只在用户已抛弃的规范下才合理的动作。这是一种由规范漂移诱发的离策略污染,其特殊性在于策略漂移不来自学习者,而来自环境里的用户。
单轮可验证域之所以能被 RLVR 驱动,是因为存在廉价、客观的终局验证器:代码有测试,数学有答案。规范漂移把这个验证器在时间维度上撕开了一个口子——终局验证器只校验最后一版规范,中间修订行为落在验证盲区里。而局部、最小、保持约束的修订,恰恰是最有价值的那一类行为。
核心思路
提出 ReSpec(Revision-aware Specification-consistent trajectory synthesis):把「规范变更」本身提为一等公民,用反事实重放为多轮修订行为构造不依赖模型裁判的可验证信号。
思路的核心是一次转换。判断「Agent 这次修订做得好不好」是个主观问题,通常只能交给 LLM 裁判;但判断「如果 Agent 一开始就知道最终规范,它还需要重做多少」是个可执行的问题——跑一遍就行。ReSpec 把前者归约到后者:对每个规范变更点,把最终规范 S_T 作为首轮指令交给同一个 Agent 从零执行,得到反事实轨迹 τ^cf,再拿它去度量真实轨迹的前缀利用率与修订代价。度量过程只用文件差异、测试结果、工具调用日志,不引入任何裁判模型。
与现有工作的分野可以这样界定:
| 工作 | 解决的问题 | 未覆盖的维度 |
|---|---|---|
| PersonaForge (2608.28378) | 多轮数据从哪来(模拟用户) | 多轮数据的正确性如何验证,监督停在终局 |
| SWE-Prime (2608.27449) | 轨迹怎么筛(过程质量 + 分段贡献) | 筛选判据是质量评分,默认规范固定不变 |
| SimCRAFT (2608.30277) | 合成轨迹如何做约束校验 | Mock Execution Engine 只校验单轮规划的模式与依赖,不做跨轮规范一致性 |
| Ledger (2608.00808) | 长程执行状态如何显式化 | 记录「做过什么」,不表示「现在被要求什么」 |
| WikiSkill (2608.27454) | 经验如何沉淀为持久知识 | 沉淀粒度是任务级,不建模单条轨迹内的规范变更 |
最后一行引出一条可证伪的预测:Ledger 的 govern 路径会降低重做率,但不会提升约束继承率,因为它没有当前规范的表示。若这条预测成立,就说明规范跟踪是一条独立于执行状态跟踪的新轴;若不成立,则执行状态本身已隐含规范信息,ReSpec 的建模层次需要做相应下移。
技术路线
第一步:规范版本图(Specification Version Graph)构建。 把多轮会话解析为规范状态序列 S_0 → S_1 → … → S_T。每条用户发言被归类为一个作用于约束集的带类型编辑算子:ADD(c)、RETRACT(c)、REVISE(c→c’)、REDIRECT、CONFIRM。会话由此表示成结构化 diff 序列 Δ_1…Δ_T。
这里需要一个可证伪性闸门来防止漂移计数虚高:只有当一个探针模型在 S_{t-1} 下的计划集合与在 S_t 下的计划集合的 Jaccard 相似度低于阈值时,该次编辑才算「实质性漂移」。纯确认、复述、礼貌性追加会被折叠进同一节点。闸门阈值在人工标注的保留集上标定,并报告漂移判定的精确率与召回率。
第二步:反事实前缀重放(Counterfactual Prefix Replay)。 对每个实质性漂移点 t,执行反事实查询——把最终规范 S_T 作为首轮指令,用同一 Agent 从零跑一遍,得到 τ^cf_t。由此计算两个量:
- 前缀可复用率 PRR:真实轨迹在漂移点之前产出的产物(写入的文件、缓存的工具结果、检索到的证据、已完成的编辑)中,被反事实运行同样产出的比例。PRR 高说明前缀对漂移鲁棒,PRR 低说明前缀在新规范下被浪费。
- 重放增益 RG:cost(τ_actual) 相对 [cost(前缀) + cost(从 t 起的反事实续跑)] 的比值。RG 回答的是「局部修订是否真的优于从头重做」。
两者在代码与工作流域都可自动计算,不需要裁判。
第三步:三元可验证信号替代标量终局奖励。
- 第一个信号是约束继承率 CIR,统计 S_T 中在最后一次漂移之前就引入的约束里,最终产物满足了多少。判定交给约束检查器(单元测试、lint 规则、schema 校验器),不用裁判。
- 撤销保真度 RF 的要求更硬:对每个 RETRACT(c),漂移点之后的轨迹中不得出现效果上满足 c 的动作,靠对 diff 做静态与动态分析来检测。
- 修订最小性 RM 取漂移前产物状态到修订后产物状态的编辑距离,再按「从零重做的编辑距离」归一化。RM 趋近 1 是重做,趋近 0 则是外科手术式修订。
第四步:数据构建与训练。 分三支。筛选:保留 (CIR, RF) 达标且 RG 为正的轨迹。反事实修复:对不合格轨迹不直接丢弃,而是把受污染的前缀替换为反事实最优前缀,配出「漂移上下文 → 外科式修订」对「漂移上下文 → 从头重做」的偏好对,用 DPO 训练——这一步与 SWE-Prime 的分段筛选形成对照,后者是丢弃式的,ReSpec 把坏数据转成修订偏好数据。损失掩码:SFT 时对 PRR 低于阈值的反事实次优前缀 token 屏蔽损失但保留上下文,选择判据是反事实规范一致性,而非裁判质量分。
第五步:Drift-Bench 评测协议。 在 PersonaForge-Bench 的 138 个任务上做受控漂移注入:每个任务生成 k ∈ {1,2,3} 次实质性漂移,漂移位置按早/中/晚分层,算子类型均衡采样。报告漂移衰减曲线(性能对漂移次数、对漂移位置的二维曲线),主指标为 Drift-Robust Score(各漂移层级复合分的均值),辅以 Restart Rate 与 CIR 作诊断。基线设置四组:基座模型、PersonaForge 训练模型、Ledger 增强模型、ReSpec 训练模型。
消融设计。 四组基线只能回答”有没有用”,要回答”哪一部分在起作用”还需要逐层拆除。沿三条轴做消融:
- 信号轴:三路信号各自单独启用——仅 CIR(约束继承)、仅 RF(撤销保真)、仅 RM(修订最小性),再与三元全开对照。若 CIR 单独即可复现大部分 CIR 增益而 RF 贡献有限,说明约束蒸发是主要矛盾,撤销场景在 PersonaForge 的分布里本就稀薄。
- 反事实源轴:τ^cf 分别取自同策略弱 Agent、强教师模型、以及”直接用真实轨迹的续跑”。三者对齐的是同一个下界问题——τ^cf 越弱,PRR 越乐观、RG 越保守,这条轴量化的是度量本身对重放者能力的敏感度。
- 修复策略轴:不合格轨迹分别走丢弃(SWE-Prime 式)、反事实前缀替换、以及替换+DPO 偏好对三条路径。这一轴直接检验”把坏数据转成修订偏好数据”是否真优于丢弃。
评测规模上,每个 (任务, 漂移次数, 漂移位置) 单元格至少 30 个独立种子,报告均值与 95% 置信区间;主指标差异需通过配对 bootstrap 检验,避免把种子噪声读成方法增益。反事实重放的全部产物(τ^cf、diff、测试日志)固化存档,供第三方复核 PRR 与 RG 的计算。
关键技术挑战。 其一,反事实重放的成本是 T 次完整重跑,需靠第一步的实质性闸门把 T 压到 13,并用共享前缀缓存把总开销控制在单跑的 35 倍。其二,并非所有用户约束都可机器校验,风格类约束必须回退到裁判,此时需显式报告可校验约束占比这一上限,而不是把它藏起来。其三,反事实轨迹本身出自同一个弱 Agent,τ^cf 只构成最优修订的下界;可引入强教师生成反事实前缀做蒸馏,并对教师强度做消融。其四,存在混淆项:轮次变少也可能意味着 Agent 在真正模糊的规范下不再追问,需增设欠询问率指标,确认 ReSpec 没有以牺牲澄清提问为代价换取效率。
预期成果
定量目标以 Qwen3.5-27B 为骨干,在 Drift-Bench 上设定:
- 基线 PersonaForge 训练模型从 0 次漂移到 3 次漂移的复合分衰减 ≥15%,ReSpec 训练模型衰减收窄至 ≤7%。
- 3 次漂移下的 CIR:基线 ≤0.70,ReSpec ≥0.90。
- 晚期漂移下的 Restart Rate:基线 ≥45%,ReSpec ≤20%。
- 数据效率:经 ReSpec 筛选与反事实修复后,用 PersonaForge 训练集的 50%~60% 即可在无漂移 PersonaForge-Bench 上追平或超过全量训练的 80.3% 复合分。
定性影响落在两条线上。方法论一侧,如果反事实重放这条路走得通,它就提供了一个通用模板:把主观的多轮质量判断,归约为可执行的「重跑一遍再比较」。这个模板不绑定代码域——在遥感与科学工作流规划中,「约束」就是 SimCRAFT 已经在静态校验的传感器/工具兼容性与模式依赖,ReSpec 补上的是时间维度:这些约束在一次中途需求变更后是否还成立。工程一侧,Drift-Bench 的漂移注入协议可以独立复用于任何多轮 Agent 基准,为眼下普遍只报单轮数字的评测补上一条衰减曲线。
局限性与失效模式
反事实重放给出的是下界,不是最优。 τ^cf 出自同一个待训练的弱 Agent,它从零执行 S_T 时的表现本身就低于最优。于是 PRR 被系统性高估(弱 Agent 在两种规范下产出的产物恰好相似,不代表前缀真的鲁棒),而 RG 被系统性低估(续跑基线太弱,任何局部修订都显得划算)。这两个方向的偏差不会互相抵消。缓解手段是引入强教师生成反事实前缀做蒸馏,并对教师强度做消融——但这也意味着度量结果依赖一个外部模型的选择,可复现性随之下降。
可校验约束占比是整个框架的天花板。 CIR 与 RF 的判定都建立在约束能被机器检查的前提上。风格类、语气类、隐含偏好类约束只能回退到模型裁判,而一旦回退,ReSpec 相对现有方案的核心优势——不依赖裁判——就在那部分约束上失效了。框架必须显式报告可校验约束占比,而不是把它藏在聚合指标背后。若某批数据上这个比例低于半数,CIR 的改善就不能被解释为”约束继承能力”的整体提升。
受控漂移注入不等于真实漂移。 Drift-Bench 的漂移由算子类型均衡采样生成,而真实用户的改口是长尾且高度依赖上下文的:真实会话里 RETRACT 可能远少于 ADD,漂移位置也可能集中在看到第一个中间结果之后。在均衡分布上取得的 Drift-Robust Score 未必迁移到真实分布。这要求 Drift-Bench 至少保留一个”自然分布”对照集,用真实会话中的漂移统计校准注入分布。
欠询问是这套激励机制的可预见副作用。 三元信号奖励的是”改口之后改得省”,它并不奖励”在规范模糊时先问清楚”。一个学会了少问多猜的 Agent 会在 Drift-Bench 上拿到漂亮的 CIR 与 RM,代价是把澄清成本转嫁给了用户。欠询问率必须作为约束项而非诊断项纳入主指标,一旦超过阈值即判定该配置不合格。
相关工作
-
PersonaForge: Realistic Multi-Turn User Simulation for Agentic Systems(Hanglong Lv, Dawei Zhu, Lei Li 等 14 人;北京大学多媒体信息处理国家重点实验室、小米 LLM-Core、香港大学、中国人民大学,2026-08-28)——确立 75.9% 多轮占比的经验事实,提供 6.3K 条训练记录与 138 任务基准。https://arxiv.org/abs/2608.28378
-
SimCRAFT: Distilling Remote Sensing Agents via Synthetic Trajectories and Contextual Retrieval-Augmented Fine-Tuning(Haoran Wang, Jing Yao, Xu Yang 等 7 人;中科院空天信息创新研究院、中国科学院大学、香港科技大学(广州)等,2026-08-31)——Mock Execution Engine 校验模式正确性、工具间依赖、传感器/工具兼容性,产出 SimRS-14k。ReSpec 的约束检查器直接借用这一层机制。https://arxiv.org/abs/2608.30277
-
SWE-Prime: Fewer Trajectories, Better Performance(Dewu Zheng, Ruizhe Ye, Yanlin Wang 等 10 人,2026-08-27)——轨迹级与分段级两级选择,10% 子集在 SWE-Bench Pro / Verified 上取得 12.2% 与 24.2% 的相对增益。ReSpec 的筛选与损失掩码与该工作同构,但选择判据换成反事实规范一致性,且对不合格样本做修复而非丢弃。https://arxiv.org/abs/2608.27449
-
Turning Interaction History into Execution State: A Runtime Layer for Long-Horizon Coding Agents(Zehao Wang, Yisen Xu, Chenglin Li 等;Ledger,2026-08-01)——把交互历史蒸馏为显式执行状态,在 SWE-bench Verified 全部 500 实例上把 GPT-5 mini 的 Pass@1 从 56.2% 提到 64.2%、成本降 28.9%。本提案对其提出可证伪预测:govern 路径降重做率但不提升约束继承率。https://arxiv.org/abs/2608.00808
-
WikiSkill: Compiling Agent Experience into Persistent Knowledge for Skill Evolution(Liyan Tang, Cyrus Rashtchian, Chun-Sung Ferng, Andrew Tomkins, Da-Cheng Juan, Tu Vu;Google Research 与弗吉尼亚理工,2026-08-27)——原始轨迹层 / Wiki 层 / 技能层三层解耦,消融显示持久知识积累是技能演化的承重墙。其沉淀粒度在任务级,不建模单条轨迹内的规范变更,这正是 ReSpec 的切入点。https://arxiv.org/abs/2608.27454