微软 AgentScope 用神经不变量定位失败步,准度比整段裁判高一个数量级

Diagnosing with Insights: Structured Analysis of Agent Failures via Behavioral Abstractions

Jiayi Bi, Yanjie Gao, Yuanmin Xie, Liqun Li, Tianyin Xu, Fan Yang, Mao Yang

cs.AI

2026-09-02

清华与微软把 agent 轨迹编成推理-动作图,用神经不变量查失败。自建 303 条 AgentErrata 上精确步定位约 30%、分类约 44%,整段 LLM 裁判只有 2%–4% 与 18%–21%。

这篇在解决什么

LLM agent 的失败藏在几十上百步的轨迹里。推理走偏、工具调错、该停不停,都会在后面级联成任务失败。人肉翻日志不可行。传统软件调试盯的是代码和符号执行,对不上「这一步用了不该用的上下文」这种错。

把整条轨迹一次性丢给 LLM 当裁判,结果更糟。GPT-5.1 在他们的失败归因数据上,分类准确率只有 18.15%。模型分不清相关症状和真因,也扛不住长上下文的位置偏差。诊断需要指到某一步,并说出是哪一类错。

方法

清华与微软研究院先把轨迹变成可检查的结构,再让 LLM 只在结构上做有限判断。

轨迹被编成 Reasoning-Action Graph(ReAG,推理-动作图):有向无环图,每个节点是一步,带角色、操作内容和一块中间语义表示 ISR。ISR 压成三块,意图与上下文、推理与动作、信号与校验,后面的检查就不必重读膨胀的原始日志。边记录控制依赖或数据依赖。API 调用、工具输入输出、非结构化日志都能灌进去。

图上跑一组 neural invariants(神经不变量)。十种失败模式各写成一条「不该发生」的条件,违反即命中。Action Mismatch 最清楚:动作节点必须对齐前一步推理的意图,工具选得合理,并且这一步真的在推进任务。对齐函数 aligned() 是带结构 prompt 的 LLM 二分类,所以这是神经条件,不是 Hoare 逻辑那种可机器证明的符号不变量。十种失败分三维:推理(Wrong Context、Instruction Unfollowing、Insufficient Context、Context Miss)、控制流(Termination Miss、Premature Termination、Step Loop)、动作(Action Mismatch、Invocation Issue、Execution Failure)。

流水线故意拆成三阶段。先建图并对齐步骤;再按失败模式分别做局部不变量检查,多个候选都留着;最后用整条轨迹挑 decisive error,定义为最能解释最终任务变差的那一步,不是最早的异常。找异常和定根因被分开,以后也可以改成找最早出错点、不可恢复点或最终提交步。

结果

两个基准。公开 Who&When 共 184 条人工标注轨迹,算法生成 126 条、手写 58 条,只标失败步。自建 AgentErrata 共 303 条,在 OpenManus、OWL、Mini SWE-Agent 的成功轨迹上按分类注入失败,任务来自 BrowseComp、SWE-Bench Lite、WebArena,同时标步和类型。三维比例大约推理 36%、控制流 31%、动作 36%。

精确步定位(允许偏差 0 步,不给标准答案):

数据 / 骨干AgentScopeStep-by-stepAll-at-once
AgentErrata / GPT-4o30.03%8.91%2.09%
AgentErrata / GPT-5.131.35%1.32%3.30%
AgentErrata / DeepSeek-V3.234.98%17.82%0.66%
Who&When 算法生成 / GPT-4o28.57%15.08%16.67%
Who&When 手写 / GPT-4o22.41%17.24%5.17%

失败类型分类在 AgentErrata 上,GPT-5.1 的 AgentScope 达到 45.87%,整段 LLM-as-Judge 只有 18.15%。允许前后差 3 步时,同一设置下 AgentScope 到 54.13%,两个基线分别是 13.20% 和 18.81%。

Who&When 上换 GPT-5.1 就没那么好看:算法生成子集上 AgentScope 与 Step-by-step 都是 25.40%。Who&When 标的是最早可检出的错,AgentScope 选的是对最终结果影响最大的步,两道题本来就不一样。

为什么重要

给 agent 做事后诊断,换更强基座不够。GPT-5.1 走逐步检查这条基线时,AgentErrata 精确步定位掉到 1.32%,比 GPT-4o 的 8.91% 还差。收益来自把整段自由发挥收成按模式检查,不来自模型变强。

能用的场景是离线复盘长轨迹,尤其是要同时回答「哪一步」和「哪一类」。在线开销不小:抽样 20 条轨迹,4 步约 25 秒、7 次调用,120 步约 750 秒、242 次调用。Step Loop 因窗口两两比较最贵,约 85 秒。论文也写了,减调用次数比减 prompt 更划算,检查之间可以并行。

同名提醒:阿里开源的 agent 框架也叫 AgentScope。这篇是微软研究院的诊断工具链,不是同一个项目。

局限与存疑

AgentErrata 是往成功轨迹里注入失败,不是自然失败分布;注入前还用 LLM 判断该轨迹适不适合某种失败,附录承认这会带来轻微偏差。绝对数字仍然低:精确步大约三成,分类大约四成四,离生产调试器还远。

神经不变量的判定函数仍是 LLM 二分类。结构收窄了搜索空间,并没有把正确性变成可证明的符号条件。Who&When 上的口径冲突说明,「定位准确率」高度依赖你把根因定义成最早出错还是最终致命错,别的选择策略被留作后续。正文没有独立的 Limitations 节。运行时间、标注定义、注入式数据这三块,读数字时都得打折。

术语

原文与代码

社区讨论

相关论文

全部论文解读