打开网易新闻 查看精彩图片

这项由威斯康星大学麦迪逊分校计算机科学系与微软研究院联合开展的研究,以预印本形式于2026年7月14日发布在arXiv平台,编号为arXiv:2607.12747v1,研究方向归属于人工智能领域(cs.AI)。感兴趣的读者可通过该编号在arXiv上查阅完整论文。

**当AI特工团队"搞砸"一件事,谁该背锅?**

考虑这样一个场景:你雇了一个由十几个助手组成的团队来帮你完成一项复杂任务——比如同时调研竞争对手、起草报告、预订差旅和管理日程。最终任务失败了,但这个团队里每个人都只负责其中一小块,你要花多少时间才能找出究竟是哪个环节出了问题?如果这个团队有一百个步骤、几百个动作,这个问题就更加棘手了。

这正是当今AI领域面临的真实困境。现代AI系统不再是单一的模型,而是由多个"特工"(Agent)组成的团队,每个特工都是一个大语言模型(LLM),能够调用工具、与其他特工沟通、并在复杂环境中执行动作。当这样一个系统在某个长达数百步骤的任务中失败时,找出"罪魁祸首"——也就是究竟是哪一步出了差错——是一件极其困难的事。这个过程叫做**故障归因**(Failure Attribution)。

目前的解决方案要么是让最先进的AI模型去"逐步检查"整个失败过程,但这非常费时费钱;要么是收集大量带有"哪一步出错"标注的失败轨迹来训练专用模型,但这类标注极其昂贵,而且充满主观性。两条路都走不通。

这项研究提出了一个全新的思路:既然失败轨迹难以收集和标注,为什么不换个角度,只从**成功轨迹**中学习?通过学习"成功是什么样子的",在遇到失败时,自然就能识别出"哪一步偏离了成功的轨道"。他们将这套方法命名为**OAT**(One-class Agent Tracing,单类特工溯源),并用神经控制微分方程这一数学工具来建模成功轨迹的动态模式,在推理时检测失败轨迹中的异常步骤。

实验结果相当令人振奋:OAT仅用100条成功轨迹训练,在域内测试中F1分数比包括GPT-5在内的大模型提示法高出约20%,在跨域测试中高出约7%,同时推理速度快200到5000倍,推理成本几乎为零。

**一、失败溯源:一道比看起来难得多的题目**

要理解这个问题有多难,可以用侦探破案来类比。一个案件里,最终的"犯罪结果"往往不是某个单一事件直接导致的,而是一连串事件叠加的结果。有时候,关键错误发生在很早的地方,而后来的步骤虽然看起来"正常",实际上是在错误的基础上运行,进一步放大了问题。如果侦探只看最后现场,很可能找不到真正的起因。

在AI特工系统中,情况完全一样。一个轨迹(Trajectory)是指特工系统从接到任务到结束的完整过程记录,包括每一步的动作(Action)和对应的状态(State)。研究者把轨迹形式化地定义为一个序列:从任务描述Q开始,交替出现动作和状态,直到终止步骤。系统用一个评估函数来判断任务是否成功。

"故障贡献步骤"(Failure Contributing Steps)是研究者专门定义的概念,指的是那些在整个失败过程中"显著推动轨迹走向失败"的步骤——不需要仅靠那一步就能让任务失败,也不需要是"最早"的错误,只要它确实对失败有实质贡献就算。这个定义比现有文献中"找到第一个决定性错误"更宽泛,也更符合现实中的复杂错误链条。

现有的"有监督故障归因"方法需要准备一批带有步骤级别错误标注的失败轨迹来训练模型。但这有两个根本性缺陷:收集步骤标注的成本极高,而且标注本身存在固有的模糊性,因为要判断"哪一步真的有责任"需要依赖一个在实际操作中根本不存在的"万能修复函数";另外,现有方法通常只考虑单步干预,无法捕捉多个步骤共同导致失败的复合错误。

正是这些缺陷,催生了本文提出的"无监督故障归因"(Unsupervised Failure Attribution)问题设定:训练阶段只使用成功轨迹,没有任何步骤级别的标注,在推理阶段面对一条失败轨迹,输出其故障贡献步骤集合。

**二、OAT的核心逻辑:学会"正常",才能识别"异常"**

OAT的核心思想可以用一个医生的类比来理解。一个经验丰富的医生见过大量健康人的各种指标变化,当一个病人来了,医生把病人的指标走势与"健康人应有的走势"进行对比,偏差越大的地方,就越可能是病因所在。OAT做的事情与此完全类似。

具体来说,OAT在大语言模型的内部表示空间中工作,而不是直接分析文本。每一步动作,当模型生成这一步的输出时,其内部神经网络的激活状态——也就是隐藏层的数值向量——包含了比生成文字更丰富的信息。研究者把这个向量称为该步骤的"表示"(Representation)。对于轨迹中的每一步t,表示$h_t$是由负责该步骤的LLM特工在生成动作$a_t$时,第$\ell$层隐藏状态经过平均池化(Mean Pooling)得到的向量,维度为$d_h$。任务描述Q也有对应的表示$h_Q$。整条轨迹因此变成一个向量序列$H(\tau) = (h_1, \ldots, h_{T_\tau})$。

OAT把这个向量序列看作是对某个"潜在连续路径"的离散采样,就像医生测量的是几个时间点的指标,而真实的健康状态其实是连续变化的。为了建模这种连续动态,研究者引入了**神经控制微分方程**(Neural Controlled Differential Equations,Neural CDEs)。

**三、神经控制微分方程:让轨迹"流动"起来**

理解神经CDE可以用河流来打比方。普通的循环神经网络(RNN)或Transformer把每个步骤看作河道上一个孤立的石头,逐个跳跃式地处理;而神经CDE则把整个轨迹看作一条连续流动的河流,每个观测点只是河流上的一个采样位置,模型建模的是整条河的流向和速度。

在技术层面,神经CDE的关键在于构造一条"控制路径"(Control Path)$X: [0,1] \to \mathbb{R}^{d_h+1}$,通过对离散步骤表示进行三次样条插值得到。这条控制路径的导数$dX(v)/dv$在每一个积分步骤都持续调制潜在状态的演化,使得模型对轨迹的局部行为高度敏感。潜在状态$z(u)$的演化方程为:

$$z(u) = z(0) + \int_0^u f(v, z(v); \theta_f) \frac{dX(v)}{dv} dv$$

其中$f$是一个轻量级的MLP神经网络,$z(0) = g_2(h_Q; \theta_{g_2})$由任务描述表示初始化,最终的预测表示$\hat{h}(u) = g_1(z(u); \theta_{g_1})$由线性映射得到。

与神经CDE的"前身"——神经常微分方程(Neural ODE)相比,后者只依赖初始条件驱动整条轨迹,相当于把整条河的走向完全由源头决定,无法适应"同一源头、多种成功路径"的现实——因为不同的成功轨迹可能有不同的动作序列,但殊途同归。神经CDE通过持续注入观测信息解决了这个问题。

训练阶段的目标函数非常直接:让模型对成功轨迹中每一步的预测表示$\hat{h}(u_t)$尽可能接近实际表示$h_t$,以均方误差为损失:

$$\mathcal{L}(\theta) = \mathbb{E}_{\tau \sim \mathcal{D}_{succ}} \left[ \sum_{t=1}^{T_\tau} \|h_t - \hat{h}(u_t)\|_2^2 \right]$$

这样训练出来的模型,学会了"成功轨迹在隐藏空间里是怎么流动的"。

**四、门控控制路径:应对"陌生领域"的自适应机制**

OAT有一个重要的实际部署挑战:它是在某个特定领域的成功轨迹上训练的,但实际使用时可能遇到完全不同领域的失败轨迹。好比这位医生只见过中国人的体检数据,突然来了一个外国患者,某些指标的正常范围可能本身就不同,如果直接套用,控制路径的导数可能会"乱说话",把本来正常的步骤误判为异常。

为了应对这个问题,研究者设计了一个**门控控制路径**(Gated Control Path)机制。具体做法是引入一个门控函数$q: \mathbb{R}^{d_h+1} \to [0,1]^{d_h+1}$,由一个小型神经网络参数化,对控制路径的导数进行逐元素调制:

$$\frac{d\tilde{X}(u)}{du} = q\left(\frac{dX(u)}{du}; \theta_q\right) \odot \frac{dX(u)}{du}$$

当输入轨迹与训练分布接近时,门控函数让控制信号以完整强度通过;当输入来自分布外(Out-of-Distribution,OOD),控制信号的幅度或方向异常,门控函数就自动压制这些信号,防止它们干扰潜在状态的演化,从而提升模型在跨域场景下的稳健性。

**五、推理时如何"判定"哪一步出了问题**

训练完成后,OAT的推理过程就像把一条失败轨迹"过滤"一遍。模型沿着失败轨迹的步骤,预测出每一步"如果是正常成功轨迹,这里应该是什么状态",然后用实际状态与预测状态之间的距离作为**异常分数**(Anomaly Score):

$$e_t = \|h'_t - \hat{h}(u_t)\|_2^2$$

异常分数越高的步骤,意味着它的状态与"成功应有的样子"偏差越大,也就越可能是导致失败的关键步骤。

确定哪些步骤构成故障贡献集合,研究者提供了两种策略。第一种是**Top-k检测**,直接选择异常分数最高的k个步骤,k是预先设定的超参数,简单直接但需要提前知道"一般有多少步会出错"。第二种是**保形预测检测**(Conformal Prediction,CP),这是一种来自统计学的自适应阈值方法,它不依赖任何关于数据分布的假设。具体做法是:在一批校准成功轨迹上计算每一步的异常分数,然后取这些分数的$(1-\alpha)$分位数作为阈值$\delta$,推理时只要失败轨迹中某一步的异常分数超过$\delta$就标记为故障贡献步骤。用户可以通过调整$\alpha$来控制"假阳性率",这个方法还提供了严格的统计保证:在分布内步骤上的误报率被控制在$\alpha$水平。

**六、实验设置:两个差异极大的测试场景**

研究者在两个数据集上进行了实验。第一个是**MCP-Atlas**,这是一个评估工具调用特工的基准,覆盖36个MCP服务器和220种工具,涵盖1000个任务。研究团队用Qwen3.5-27B模型运行了其中203个任务,以"所有声明均被满足"为成功标准,最终得到103条成功轨迹和88条标注了故障贡献步骤的失败轨迹。成功轨迹平均有7.18个步骤,最多19步;失败轨迹平均有1.56个故障贡献步骤,最多12个。OAT的训练集就是这103条成功轨迹(其中80%用于训练,20%用于校准和验证)。

第二个是**Who&When**,这是一个专门为多特工系统故障归因设计的基准,任务来源于GAIA(需要处理PDF、图像、视频等多模态内容的复杂问题)和AssistantBench(需要与多个网站交互的现实任务),轨迹由GPT-4o驱动的CaptainAgent和Magnetic-One生成,共184条失败轨迹,每条标注了"第一个决定性错误步骤"。这个数据集与MCP-Atlas差异显著:任务类型不同(多模态 vs 工具调用)、系统架构不同(多特工协作 vs 单特工)、生成模型不同(GPT-4o vs Qwen3.5-27B)。Who&When被用作纯测试集,来验证OAT的跨域泛化能力。

评估指标包括精确率(Precision)、召回率(Recall)、F1分数、命中率(Hit Rate,即预测集合与真实集合有任何交集的比例)、AUROC和AUPRC。后两者是与检测策略无关的排名指标,直接评估异常分数对步骤的排序质量。

对比方法包括:用GPT-4o提示法进行故障归因、用GPT-5提示法进行故障归因,以及随机选择一步和固定选择第一步这两个简单基线。

OAT的具体实现细节如下:用Qwen3.5-27B最后一层的隐藏状态做均值池化提取步骤表示,再用PCA降维到64维;神经CDE的向量场$f$是一个3层MLP,隐藏维度64;控制路径用自然三次样条插值构造;使用Euler方法作为CDE求解器;门控网络是一个4层MLP,隐藏维度12;Top-k检测取k=3,保形预测取$\alpha=0.2$;训练使用学习率4e-5,批大小32,训练300个epoch,权重衰减1e-5。对于OOD场景,还额外应用了**相关性对齐**(CORAL)来减小in-domain和OOD表示之间的协方差差异,这不需要任何OOD标注数据。

**七、实验结果:数字背后的故事**

在域内(MCP-Atlas)测试中,OAT的表现远超所有基线。OAT(Top-k)的F1分数达到0.420,OAT(CP)达到0.435,而GPT-4o只有0.212,GPT-5只有0.181——差距超过20个百分点。从AUROC来看,OAT达到0.629,AUPRC达到0.324,均远高于提示法(GPT-4o/GPT-5的AUROC约为0.51,AUPRC约为0.217)。

两种检测策略呈现出清晰的权衡关系:Top-k召回率高(0.706)但精确率较低(0.321),倾向于多报;CP精确率更高(0.443)且精确率和召回率更为均衡(0.484),因为其阈值是根据成功轨迹的实际分布自适应确定的,更能控制误报。

在跨域(Who&When)测试中,OAT(Top-k)的F1分数为0.225,OAT(CP)为0.211,GPT-4o为0.151,GPT-5为0.152。OAT再次领先约7个百分点。AUROC方面,OAT达到0.758,远高于GPT-5的0.584。考虑到OAT训练时完全没有见过Who&When的任何数据,这个结果相当可观。

在计算效率上,OAT的优势更加明显。GPT-4o在MCP-Atlas上平均每条轨迹需要4241毫秒,输出约121个token;GPT-5需要39626毫秒,输出约3012个token。OAT只需7毫秒,输出token为零(推理时不调用任何LLM)。在Who&When上,GPT-5需要37819毫秒,OAT只需16毫秒。这意味着OAT比GPT-5快约2400到5700倍,比GPT-4o快约280到600倍,而且不产生任何API调用成本,部署所需显存不足1GB。

**八、消融实验:每个设计选择都有其价值**

为了验证每个组件的必要性,研究者做了一系列消融实验,全部在MCP-Atlas保形预测检测设定下进行。

神经CDE与神经ODE的对比结果非常鲜明:CDE在所有指标上均优于ODE,包括AUROC提升约0.214、精确率提升约0.162、F1提升约0.141。这说明控制路径持续注入轨迹观测信息这一设计,对于准确建模特工轨迹的动态至关重要。只靠初始状态驱动的ODE无法捕捉轨迹中的多样性。

门控控制路径的消融显示:在域内场景,加门控比不加门控在各指标上下降约0.020到0.043,损失很小;但在OOD场景,加门控比不加门控提升幅度在0.067到0.172之间,其中AUROC提升0.172,召回率和命中率各提升0.128。这种"域内小代价、OOD大收益"的不对称效应,正是门控机制设计的初衷——在in-domain场景控制信号可靠时全量通过,在OOD场景信号可能失真时自动压制。

OAT(神经CDE)与RNN的对比同样清楚:CDE在命中率(+0.097)、召回率(+0.094)、F1(+0.061)、精确率(+0.054)、AUROC(+0.038)、AUPRC(+0.007)上全面超越RNN。连续时间模型对特工轨迹动态的刻画确实优于离散时间模型。

在LLM隐藏层选择方面,研究者测试了Qwen3.5-27B(共64层)的层0、8、16、24、32、40、48、56、64。结果显示,越靠后的层,精确率、召回率和F1分数越高,层64(最后一层)表现最好。这与表示学习领域的已知结论一致:Transformer模型越深的层,编码的语义信息越抽象和任务相关,对于区分正常步骤与异常步骤更有帮助。

在步骤表示聚合策略上,均值池化(对一步内所有token的隐藏状态取平均)显著优于只取最后一个token。后者无法捕捉步骤内部的推理过程和论证细节,而这些恰恰是错误最容易藏身的地方。

研究者还测试了用"代理LLM"提取表示的场景,即用不同于生成轨迹的LLM来提取表示。他们分别测试了Llama-4-Scout、Gemma-4-31B和GPT-oss-120B作为代理,结果显示性能与使用原始Qwen3.5-27B相比只有小幅下降,说明OAT具有良好的跨模型泛化性,即使在无法访问原始生成模型的情况下也能有效工作。

Top-k和CP两种检测策略的超参数消融也很直观:随着k(Top-k)或$\alpha$(CP)增大,精确率下降,召回率上升,F1分数保持相对稳定。实践中可以根据业务需要调整:如果系统需要"宁可多报,不能漏报",可以增大k或$\alpha$;如果需要精确锁定,就减小它们。

**九、案例分析:OAT在真实场景中的表现**

研究者随机选取了六个案例(三个成功识别、三个失败识别)进行深入分析,全部使用保形预测检测。

在第一个成功案例中,任务是找到美国最古老的医院并查找附近的电动汽车充电站。特工在第6步尝试用Wikipedia API查询但失败,第7步凭借自身知识给出了错误答案(幻觉),第8步基于这个错误答案搜索充电站,最终给出错误结果。OAT对第7步(幻觉步骤)赋予了极高的异常分数,对第9步(传播错误的最终输出)赋予了较高但低于第7步的分数,对其他良性步骤保持低分。这个案例展示了OAT对错误起点的敏感性,以及对"继承性错误"(因前步错误而导致的后续错误)的适度衰减。

在第二个成功案例中,任务是分析一个NoSQL视频游戏商店数据库。特工在中间阶段反复尝试各种检索方式但均无效,推理逻辑出现内部矛盾,最终在第15步做出了不忠实的假设(直接假定某个值)来绕过检索失败,产生错误答案。OAT对第15步赋予了极高分数,对第9步(重复无效动作)赋予了高分,对第8步和第11步(逻辑矛盾的推理)也赋予了高分——尽管这两步并未被标注为故障贡献步骤。这个案例说明OAT捕捉到了"尚未达到标注门槛但已经预示故障"的微妙信号。

在第三个成功案例中,任务是找到某项目中第24个最多提交者的首次提交记录。特工在第7步的代码逻辑中错误地按显示名(Display Name)而非邮件地址统计提交数,把两个同名用户合并成一个,导致排名计算错误。OAT对第7步赋予了极高异常分数,对第8步和第10步(基于错误结果的后续操作)赋予了递减的高分,清晰地呈现了"错误根源 → 传播 → 最终输出"的异常分数衰减链条。

在失败案例中,OAT的局限性也很清晰。第一个失败案例中,特工从第5步开始逐页翻阅所有PR来寻找特定PR,这是一种低效但"不完全错误"的策略,导致第16步错误地宣布找不到目标PR。OAT没有把第16步标记出来(因为"声称找不到结果"在成功轨迹中也可能出现),但对第5到15步赋予了递增的异常分数,捕捉到了低效策略的渐进偏离。

第二个失败案例中,特工在第1步就未能识别出应该使用本地文件搜索工具,最终导致第11步明确报告无法访问目标文件。OAT对第1步并未给出高分,因为"推理中表达不确定性或说没有合适工具"在成功轨迹里也不罕见,很难区分。但OAT对第11步(明确表达失败)给出了高分,对中间的低效搜索步骤也给出了递增分数。

第三个失败案例中,特工在第4步检索到一篇不相关的论文,第5步意识到这篇论文没有锁定特定币种,但仍决定同时计算ETH和BTC的交易,第6步的代码逻辑错误,最终答案错误。OAT对第5、6、7步都给出了高异常分数,方向正确,但由于CP检测的固定阈值,只有第6步超过了阈值被标记出来,第5步(真正的推理错误起点)恰好略低于阈值,未被识别。这个案例指向了固定阈值检测策略的内在局限——当多个步骤共同贡献故障且严重程度有梯度时,全局阈值可能漏掉较轻微的关键步骤。

**十、研究的边界与未来方向**

研究者在论文附录中坦诚地讨论了当前方法的局限性和未来可探索的方向。从技术角度,神经CDE还可以与多种扩展结合。一是连续正规化流(Continuous Normalizing Flows),它可以通过瞬时变量变换公式精确计算每一步的似然值,从而用负对数似然代替均方重建误差作为异常分数,理论上更严谨。二是引入注意力机制来构建控制路径,区分轨迹中"关键步骤"与"次要步骤",可能有助于更好地建模特工行为的层次结构。三是用神经随机微分方程(Neural SDE)引入潜在状态演化的随机性,更好地捕捉LLM生成过程的内在随机性。

从应用角度,OAT目前仅在工具调用类任务和多特工协作类任务上进行了验证,其他类型的特工系统(如代码生成、科学研究)是否同样适用,还需要进一步探索。此外,OAT的训练规模仅100条成功轨迹,随着训练数据增加,性能是否会继续提升,也是一个值得研究的问题。

归根结底,这项研究证明了一件事:要理解"失败是什么样的",有时候最好的办法是先把"成功是什么样的"研究透彻。OAT用一个相当简洁的思路——在成功轨迹的隐藏状态空间中建模动态,推理时检测偏差——实现了超越最先进大模型提示法的故障溯源性能,而且快了数千倍、廉价得多。这对于需要大规模、实时部署故障诊断的生产级AI特工系统来说,意义颇为实际。

有兴趣进一步探索这一领域的读者,不妨思考这样几个问题:如果成功轨迹本身就存在"侥幸成功"的情况(即过程有缺陷但恰好结果正确),OAT的学习会受到怎样的干扰?在特工系统设计越来越复杂、步骤越来越长的未来,如何更好地处理"错误传播"与"错误起源"之间的区分?固定的全局阈值是否可以被更自适应的轨迹级阈值取代?这些问题都指向了无监督故障归因这一新兴研究方向的广阔空间。完整论文可通过arXiv编号arXiv:2607.12747v1获取。

Q&A

Q1:OAT方法为什么只需要成功轨迹训练,而不需要失败轨迹?

A:OAT把故障归因转化为"单类学习"问题,核心思路是学会成功轨迹在大语言模型隐藏空间中的动态规律,推理时把失败轨迹与这个"成功标准"对比,偏差大的步骤就是故障所在。成功轨迹在任何AI特工系统正常运行时都会自然积累,无需额外标注,而带步骤标注的失败轨迹收集成本极高且存在主观歧义,OAT的设计正是为了绕开这个瓶颈。

Q2:神经控制微分方程和普通的循环神经网络处理轨迹有什么区别?

A:循环神经网络把每个步骤当作离散事件逐个处理,像逐格翻看照片,无法建模步骤之间的连续动态。神经控制微分方程则把整个轨迹视为连续流动的路径,通过样条插值构造连续控制信号,持续调制潜在状态演化,对轨迹每个局部的变化都保持敏感。实验结果显示神经CDE在命中率、召回率、F1、精确率等所有指标上均超越RNN,尤其在捕捉局部异常方面优势明显。

Q3:OAT在跨领域场景下为什么还能保持较好性能?

A:OAT通过两个机制增强跨域鲁棒性。一是门控控制路径,当测试轨迹来自训练未见的领域时,控制信号的幅度或方向可能异常,门控函数会自动压制这些信号,防止干扰潜在状态演化。二是相关性对齐(CORAL),在将OOD表示传入神经CDE之前,先对齐其与in-domain表示的二阶统计量,减小分布差距。实验显示OAT在Who&When这个与训练集差异显著的跨域数据集上AUROC达到0.758,比GPT-5高出约0.174。