从成功流程追溯代理失败
摘要
提出Oat,一种轻量级无监督方法,用于识别基于LLM的代理失败轨迹中的错误步骤。该方法利用仅在成功轨迹上训练的神经控制微分方程,在域内和域外设置下实现200-5000倍于提示基线的加速,并显著提升F1分数。
arXiv:2607.12747v1 公告类型: 新
摘要: 基于LLM的代理系统的失败归因,即识别失败轨迹中导致任务失败的步骤,对于调试和改进这些系统至关重要。现有方法要么依赖基于提示的流水线(计算成本高),要么需要对带有步骤级错误标注的失败轨迹进行后训练(收集成本高且难以扩展)。我们认为,实用的失败归因模型应轻量且无需失败数据上的步骤级监督即可训练。为此,我们解决无监督失败归因问题,即仅使用成功轨迹进行训练,并在推理时针对给定的失败轨迹识别错误步骤。我们提出OAT,将这一问题转化为使用神经控制微分方程的单类学习,在潜在空间中建模成功轨迹的动态模式。推理时,根据失败轨迹中每个步骤偏离成功轨迹所学动态的程度分配异常分数,从而形成一组错误步骤。实验表明,仅使用100条成功轨迹训练后,OAT比基于提示的基线快200-5000倍,同时在域内和域外数据集上分别以+20%和+7%的F1分数一致超越它们,证明OAT是诊断代理系统失败的一种有前景且高效的途径。
查看缓存全文
缓存时间: 2026/07/15 04:20
# 从成功流中追踪代理故障 来源:https://arxiv.org/html/2607.12747 \\DefTblrTemplate firsthead,middlehead,lastheaddefault\\DefTblrTemplatefirstfootdefault\\UseTblrTemplatecontfootdefault\\UseTblrTemplatecaptiondefault\\DefTblrTemplatemiddlefootdefault\\UseTblrTemplatecontfootdefault\\UseTblrTemplatecapcontdefault\\DefTblrTemplatelastfootdefault\\UseTblrTemplatenotedefault\\UseTblrTemplateremarkdefault\\UseTblrTemplatecapcontdefault\\caption@setkeys\[floatrow\]floatrowheightadjust=object\\undefine@keynewfloatplacement\\undefine@keynewfloatname\\undefine@keynewfloatfileext\\undefine@keynewfloatwithin Samuel Yeh1Yiwen Zhu2Shaleen Deep2Sharon Li1 1威斯康星大学麦迪逊分校计算机科学系 2微软研究 \{samuelyeh, sharonli\}@cs\.wisc\.edu ###### 摘要 对于基于LLM的代理系统而言,故障归因——即识别故障轨迹中导致任务失败的步骤——对于调试和改进这些系统至关重要。现有方法要么依赖基于提示的流水线(计算成本高昂),要么需要对带有步骤级错误标注的故障轨迹进行后训练(标注收集成本高且难以扩展)。我们认为,一个实用的故障归因模型应当轻量,并且能够在无需故障数据步骤级监督的情况下进行训练。为此,我们研究无监督故障归因:即仅使用成功轨迹进行训练,并在推理时给定一个故障轨迹来识别错误步骤。我们提出Oat,将该问题视为基于神经受控微分方程的单类学习,在潜在空间中建模成功轨迹的动态模式。在推理时,故障轨迹中的每个步骤根据其偏离学习到的成功轨迹动态的程度被赋予一个异常分数,该分数用于构成一组错误步骤。仅凭100条成功轨迹的训练,Oat比基于提示的基线方法快200–5000倍,同时在域内和域外数据集上分别以+20%和+7%的F1分数持续优于它们,表明Oat是诊断代理系统故障的一个有前景且高效的方案。代码与数据集:https://anonymous.4open.science/r/OAT-183C ### 1引言 当基于LLM的代理系统在一个复杂、长时程任务上失败时,其数十或数百个步骤中哪一步出了问题?回答这个问题极具挑战:这些系统通过编排多个专门代理来解决任务,这些代理与工具和外部环境交互\[yao2023react,Wang\_2024,10\.24963/ijcai\.2024/890\],一个轨迹可能跨代理包含数百个动作。此外,故障的根本原因可能被后续部分补偿早期错误的步骤所掩盖。没有自动化工具,诊断单个故障轨迹可能需要人类专家花费数小时手动追溯整个轨迹,这不仅在大规模下不可行,而且认知负担重且容易不一致。随着代理系统部署在越来越高风险的环境中,如编码\[jimenez2024swebench,wang2025openhands,liu2025largelanguagemodelbasedagents\]和科学研究\[lu2026towards,schmidgall\-etal\-2025\-agent,ren2026scientificintelligencesurveyllmbased\],这种诊断瓶颈成为代理系统可靠部署、调试和审计的关键障碍。为应对这一挑战,zhang2025which引入了*failure attribution*(故障归因)问题,即在给定故障轨迹的情况下识别导致失败的步骤,并证明即使是最先进的推理模型在该任务上的准确率也低于15%。后续工作开发了日益复杂的方案,主要集中在开发复杂的提示流水线\[banerjee2025didwronghierarchicallook,wang2026flatlogscausalgraphs,in2026rethinkingfailureattributionmultiagent\]或使用强化学习在带有步骤级错误标注的故障轨迹上对LLM进行后训练\[zhang2026agentracer,zhang2025graphtracergraphguidedfailuretracing\]。尽管这些方法在基准测试上展现出前景,但它们存在两个根本性局限。首先,对故障轨迹进行步骤级错误标注成本高昂且固有模糊性,使其难以在实际应用中大规模扩展。其次,基于提示的方法需要在推理时运行前沿LLM,导致大量token成本和延迟,妨碍了实际部署。 参见图注 图1:Oat概览。Oat学习建模成功轨迹的隐藏路径并通过神经受控微分方程重建其隐藏表示。推理时,Oat预测故障轨迹的预期成功路径,通过实际表示与预期成功路径之间的距离计算异常分数,从而识别导致故障的步骤。 我们认为,一个实用的故障归因模型应当轻量、无需前沿LLM推理即可部署,并且能够在*无步骤级监督*的情况下在故障数据上训练。为实现这一目标,我们研究一个实际问题——*无监督故障归因*:仅使用成功轨迹训练模型,并在推理时给定一个故障轨迹来识别错误步骤。这种形式消除了标注瓶颈,因为成功轨迹作为正常运行的副产品,从任何代理系统中都很容易收集,无需任何步骤级标注工作。为解决该问题,我们提出Oat,将其视为潜在表示空间中的*单类代理追踪*问题。我们的关键思想是训练一个模型来刻画成功轨迹中的动态模式,然后在推理时根据故障轨迹中每个步骤偏离所学正常流的程度为其分配异常分数。具体来说,我们将轨迹的每个步骤表示为从LLM中提取的潜在向量,并使用神经受控微分方程(Neural CDEs)\[10\.5555/3495724\.3496286\](一种建模不规则结构轨迹的原则性方法)将步骤表示序列建模为连续潜在路径。将神经CDE与代理设置联系起来是新颖且不平凡的。代理轨迹的潜在结构反映了目标导向行为,而检测故障需要对局部步骤级偏差敏感。我们通过两个关键设计建立这种联系:一个覆盖LLM提取的步骤表示的连续潜在路径,捕捉代理行为的时序动态;以及一个新颖的门控控制路径,自适应地抑制分布外控制信号,提高模型在未见领域轨迹上部署时的鲁棒性。我们在从MCP-Atlas\[bandi2026mcpatlaslargescalebenchmarktooluse\]采样的成功轨迹上训练Oat,并在来自MCP-Atlas以及Who&When\[zhang2025which\]的故障轨迹上进行评估。尽管仅使用100条成功轨迹训练,没有故障数据且没有任何步骤级标注,Oat(由轻量3层MLP参数化)始终优于基于提示的前沿LLM(包括GPT-5)。此外,Oat在推理时零token成本,运行速度比基于提示的方法快200–5000倍,首次使得实时故障归因变得可行。我们的主要贡献如下: 1. 1.我们提出代理系统的无监督故障归因,这是一个新的问题设置,通过仅使用成功轨迹进行训练,消除了对故障轨迹步骤级标注的需求。 2. 2.我们提出Oat,一种基于神经CDE的连续时间单类学习方法,带有新颖的门控控制路径,在潜在空间中建模成功轨迹的动态,并在推理时检测偏差。 3. 3.我们进行了大量实验,证明我们的方法是诊断代理系统故障的一个有效、实用且计算高效的方案。 ### 2相关工作 ##### LLM代理的故障归因。诊断基于LLM的多代理系统故障的问题日益受到关注。早期工作侧重于通过构建分类来刻画故障模式。cemri2025why开发了多代理系统故障分类,将故障模式分为系统设计、代理间不对齐和任务验证三大类14个子类。deshpande2025trailtracereasoningagentic引入了涵盖推理、规划和执行故障的细粒度错误分类。除了故障分类,近期工作转向定位错误贡献步骤和/或行动\[zhang2025which,in2026rethinkingfailureattributionmultiagent,qian2026actionunveilinginternaldrivers\]。特别是,zhang2025which首次提出在故障轨迹中定位错误贡献步骤。他们引入了Who&When基准,并发现即使是最先进的推理模型在定位错误步骤上的准确率也低于15%。在此基础上,许多工作开发了提示流水线或学习算法来识别错误步骤\[banerjee2025didwronghierarchicallook,wang2026flatlogscausalgraphs,in2026rethinkingfailureattributionmultiagent,zhang2026agentracer,zhang2025graphtracergraphguidedfailuretracing\]。例如,zhang2026agentracer使用GRPO\[shao2024deepseekmathpushinglimitsmathematical\]在合成故障轨迹上对LLM进行后训练。然而,这些方法*需要大量计算资源或大规模步骤级错误标注*,限制了其在实际部署中的实用性。从成功轨迹中学习以识别故障的思想已在机器人社区中得到探索\[xu2025can,romer2026failure,zhou2026rcnfrobotconditionednormalizingflow\],其中单类模型在正常执行上训练,并在推理时标记异常轨迹。但这类工作侧重于轨迹级检测,即区分成功执行与失败执行的整体,而非定位导致失败的具体步骤。我们的工作通过将无监督单类学习范式引入LLM代理设置,并将其扩展到步骤级故障归因(一个更困难且信息量更大的任务,在代理AI社区中尚未被尝试)来弥补这一差距。 ##### 异常检测。异常检测是机器学习中一个研究充分的问题,旨在识别偏离所学正常行为的观测\[10\.1016/j\.cose\.2008\.08\.003,chalapathy2019deeplearninganomalydetection,10\.1145/3691338\]。单类学习方法仅使用正常数据训练,并在测试时将分布外样本识别为异常\[NIPS1999\_8725fb77,10\.1023/B:MACH\.0000008084\.60811\.49,Hayashi\_2026,pmlr\-v80\-ruff18a,10\.1145/2689746\.2689747,xu2022anomaly,park2018multimodal,10\.1145/3292500\.3330672\]。然而,标准异常检测侧重于在样本级别判断给定样本是否异常。在代理设置中,这相当于分类一个轨迹是成功还是失败,这是一个粗粒度信号,无法揭示失败发生在何处。在本文中,我们引入了一种新颖的单类学习形式,用于代理轨迹的步骤级故障归因。我们不在推理时分类轨迹,而是为故障轨迹中的每个步骤推导异常分数,并用其定位导致故障的步骤。 ### 3问题陈述 一个代理系统由多个基于LLM的代理组成,每个代理具备工具调用和代理间通信能力,共同设计用于解决复杂的、长时程任务。在每个时间步\(t\),系统从环境中观察状态\(s_t\),并选择一个代理执行动作\(a_t\)。给定查询\(Q\),一个*轨迹*记为: τ=\(Q,a1,s1,a2,...,sTτ−1,aTτ\),\\displaystyle\\tau=\(Q,a\_\{1\},s\_\{1\},a\_\{2\},\\dots,s\_\{T\_\{\\tau\}\-1\},a\_\{T\_\{\\tau\}\)\),\(1\) 其中\(T_\\tau\)是终止步骤。评估函数\(Z(\\tau)\\in\\{0,1\\}\)判断轨迹是否成功完成任务(\(Z(\\tau)=1\))或失败(\(Z(\\tau)=0\))。给定一个故障轨迹,*故障归因*是识别哪些步骤导致失败的任务,形式化为:对于任意故障轨迹\(\\tau'\)且\(Z(\\tau')=0\),预测一组错误步骤\(y(\\tau')\\subseteq\\{1,\\dots,T_{\\tau'}\\}\)。现有工作\[zhang2026agentracer\]引入了*有监督故障归因*,需要在带有步骤级标注的故障轨迹集上训练。然而,有监督方法存在两个局限。第一,收集步骤级标注成本高昂且固有模糊,因为依赖于实际标注中无法访问的oracle纠正函数\[ma2026dover,in2026rethinkingfailureattributionmultiagent\]。第二,它们侧重于单步干预,因此无法捕捉复合错误(多个步骤共同导致失败)。这些局限促使我们提出无监督故障归因,接下来给出其定义。 ###### 定义3.1(无监督故障归因)令\(\\mathcal{D}_{\\text{succ}}=\\{\\tau^{(k)}\\}\)为成功轨迹数据集,无步骤级标注,即对所有\(\\tau^{(k)}\\in\\mathcal{D}_{\\text{succ}}\)有\(Z(\\tau^{(k)})=1\)。目标是学习一个仅在\(\\mathcal{D}_{\\text{succ}}\)上训练的预测器\(\\psi_\\theta\),使其在推理时能够识别故障轨迹\(\\tau'\)中的一组错误步骤: ψθ\(τ′\)≈y\(τ′\)。\\displaystyle\\psi\_\{\\theta\}\(\\tau^\{\\prime\}\)\\approx y\(\\tau^\{\\prime\}\)。\(2\) ###### 定义3.2(故障贡献步骤)对于故障轨迹\(\\tau'\),\(y(\\tau')\\subseteq\\{1,\\dots,T_{\\tau'}\\}\)表示*故障贡献步骤*的集合,其中每个步骤\(t\\in y(\\tau')\)有意义地将轨迹向失败方向退化,无论单独干预\(t\)是否足以恢复。 ### 4方法论 在本工作中,我们将无监督故障归因视为LLM表示空间中的*单类学习问题*,该空间包含超出生成文本的丰富信息:我们训练一个模型来刻画成功轨迹中的动态模式,并在推理时识别故障轨迹中偏离正常流的步骤,将其作为贡献步骤。具体来说,给定轨迹\(\\tau=(Q,a_1,s_1,a_2,\\dots,s_{T_\\tau-1},a_{T_\\tau})\)以及步骤\(t\)处活跃的LLM代理\(M_t\),我们将步骤\(t\)的表示定义为在生成动作\(a_t\)时\(M_t\)第\(l\)层产生的聚合token表示: ht=Mt\(l\)\(at∣Q,a1,s1,...,at−1,st−1\)∈Rdh。\\displaystyle h\_\{t\}=M\_\{t\}^\{\(\\ell\)\}\(a\_\{t\}\\mid Q,a\_\{1\},s\_\{1\},\\dots,a\_\{t\-1\},s\_\{t\-1\}\)\\in\\mathbb\{R\}^\{d\_\{h\}\}。\(3\) 在一个步骤内可以有多种聚合策略,例如使用最后一个token或对所有token取平均;我们将其讨论推迟到附录G.2 (https://arxiv.org/html/2607.12747#A7.SS2)。相似文章
@omarsar0: 新论文来自微软及其同事。大规模调试智能体轨迹具有挑战性。这是一个巧妙的方…
本文介绍了OAT,一种用于基于LLM的智能体系统的轻量级故障归因工具。它仅使用成功轨迹进行训练,并利用神经控制微分方程检测错误步骤,在速度和精度上以数量级优势超越昂贵基线。
StepFinder:一种用于多智能体系统故障归因的时间语义框架
StepFinder 是一个轻量级框架,仅在特征构建阶段使用LLM将执行日志编码为时间语义序列,然后应用参数高效的时间与注意力模块进行多智能体系统的故障归因。在Who&When基准测试中,与最快的基于LLM的方法相比,推理时间减少了79%。
基于智能体轨迹的自动机:故障与下一步预测
本文提出使用从LLM智能体轨迹中衍生出的有限状态机来预测故障和下一步,以增强智能体的安全审计和运行时监控。
当智能体执行失败时:从遥测数据检测与定位运行时故障
本文介绍了AgentChaosBench,这是一个用于检测和定位基于大语言模型的智能体系统中运行时故障的基准,并使用零样本大语言模型基线进行评估,揭示了故障诊断中的重大挑战。
超越基于LLM的推理:轻量级GNN用于智能体故障归因
本文介绍了AFANet,一个用于多智能体系统中智能体故障归因的轻量级基于图的框架,它在性能上匹配或超越基于LLM的方法,同时计算成本显著降低。