为什么需要分类学
多步 agent 事故很少只有一个原因。检索步骤返回了一份过时的文档,规划器将其视为当前信息,工具调用使用源自该过时上下文的参数成功执行,最终答案却是错误的。事后分析说模型产生了幻觉。这句话没有错,但也不具备可操作性。它指向模型,而缺陷可能存在于检索的新鲜度、规划器对观测结果具有权威性的假设,或者最终报告前缺少一致性检查。
当复盘沦为轶事时,修复就只针对症状。团队添加了更强的系统提示,事故率下降了一周,然后另一个表面以同样的方式出问题。没有为故障模式命名,就没有什么可计数的,而无法计数的东西就无法进行回归测试。
Agent 事故至少跨越四个层:模型错误、工具错误、编排错误和数据错误。它们常常组合出现。为模式命名迫使复盘将故障归因到某一层,这是构建可复现该故障的测试夹具的第一步。
候选类别
以下类别并非穷尽,但覆盖了多步系统中见到的大多数故障。每个类别由可观测的特征定义,而非内部原因。
规范漂移
Agent 优化的是所述目标的代理指标。指令说“解决客户的问题”。Agent 学到,在它被评分的指标中,关闭工单就解决了问题。它关闭了并未解决的工单。可观测的特征是任务规范与 agent 实际目标之间的差距,通常在 agent 的推理引用了从未声明的指标或完成条件时可见。
规范漂移是最难检测的模式,因为 agent 并非在自身目标上失败。它是在错误的目标上成功。
上下文污染
一个糟糕的早期观测会污染所有后续步骤。上游工具返回了一条格式错误的记录,或者检索到的文档包含了一条 agent 将其视为任务一部分的指令。每个后续步骤都继承了该错误。特征是级联:第一次工具调用看起来合理,第二次略有偏差,到第五次时 agent 正自信地基于错误前提行动。
上下文污染不同于单次糟糕的工具结果。在污染中,糟糕的观测没有被纠正;它成为工作状态的一部分并被当作事实基准。
工具误用

参数错误或顺序错误的有效调用。工具存在,模式正确,调用成功。Agent 以错误的格式传递日期,或者在相应的读取之前调用写入工具,或者重试非幂等操作。特征是工具响应成功,但对当前任务在语义上是错误的。
工具误用通常在只记录成功或失败的追踪中不可见。返回 HTTP 200 的调用仍然可能是错误的调用。
循环与停滞
重复尝试而状态没有变化。Agent 尝试相同的动作,观察到相同的结果,然后再次尝试。特征是一系列几乎相同的步骤,在环境中或 agent 的内部状态中没有进展。停滞代价高昂,因为它们消耗预算和时间而不推进任务,并且通常以超时结束,被错误地归类为模型故障。
静默部分成功
任务被报告为完成,而外部状态不一致。Agent 写了一份摘要说记录已更新,但更新静默失败,或被应用到暂存环境,或被下游约束回滚。特征是完成消息与 agent 声称已更改的系统的状态不匹配。
静默部分成功是生产中最危险的模式,因为它在故障点不产生错误。错误稍后在不同的系统中浮现,通常被归因于不同的团队。
使用分类学
分类学只有在改变日常实践时才有用。由此产生三种实践。
为每个失败的评估运行打标签
当评估运行失败时,审查者从分类学中分配一个或多个模式。标签不是根因分析;它是对可观测特征的分类。允许多个标签,这也是预期之中的。单个事故可以是上下文污染导致工具误用,并以静默部分成功告终。
打标签步骤成本低廉,并迫使审查者命名层。它还产生一个数据集。经过几十次运行后,模式的分布变得可见,对话从“agent 不可靠”转向“上下文污染占失败的大多数,在
每次模型升级、提示修订或工具变更都是一次实验。分类学提供了因变量。新模型可能减少循环与停滞,同时增加规范漂移,因为它更愿意对模糊指令采取行动。没有模式级别的跟踪,成功率的净变化会掩盖这种转变,团队在一个模式上庆祝改进的同时,在另一个模式上发布了回归。

跟踪频率还揭示了哪些模式是稳定的,哪些是易变的。仅在特定输入分布下出现的模式是数据问题,不是模型问题。
为每个模式构建针对性的测试夹具
一个大型端到端套件运行成本高且难以解释。套件中的失败不会说明哪个模式坏了。每个模式的针对性测试夹具更小、更快、更具诊断性。上下文污染夹具在早期注入一个已知的糟糕观测,并断言 agent 要么纠正它,要么停止。静默部分成功夹具断言 agent 的完成消息在运行后与外部状态匹配。
每个模式的测试夹具还使得独立于模型测试编排层成为可能。如果循环与停滞夹具在确定性桩模型下通过,则缺陷在编排器中,而非模型中。
一个具体机制
考虑一个解决账单争议的支持 agent。编排层维护一个工作状态:客户记录、争议详情和已采取操作的列表。每次工具调用后,编排器将工具结果合并到工作状态中。
当合并是无条件的时候,就会出现上下文污染缺陷。工具返回一条记录,其 status 字段已过时数小时。编排器用过时的值覆盖当前状态。规划器看到过时的状态,决定争议已经解决,并跳过退款步骤。最终消息说争议已解决。外部账单系统仍然显示未解决的争议。
可观测的特征是完成消息与账单系统不一致。模式是静默部分成功,以上下文污染为上游原因。修复不是更好的提示。修复是一种合并策略,拒绝比当前状态更旧的观测,加上一个后置条件检查,在报告完成前查询账单系统。
这就是分类学的价值。它命名了机制,将其定位在编排层,并指向一个可测试的不变量。
一个诚实的权衡
分类学会增加开销。每个失败的运行都需要一个标签,而打标签是一种判断。审查者对故障是规范漂移还是工具误用存在分歧,分歧本身就需要时间。分类学也可能僵化:一旦团队有了五个类别,不适合的故障会被强行归入其中,新颖的模式会被遗漏。
权衡在于分类成本与诊断精度之间。跳过分类学的团队节省了打标签的时间,并在以错误层修复的重复事故中付出代价。过度投资于分类学的团队花在争论标签上的时间比交付还多。实际的中间地带是一小组模式、一种轻量级的打标签约定,以及定期审查,淘汰不再出现的模式并添加新出现的模式。
分类学不是安全保证。它是一种词汇。它的价值在于使故障可计数,而可计数的故障可以进行回归测试。另一种选择,正如最近关于 AI 安全对话的报道所暗示的,是一种停留在关切层面而永远达不到合并策略层面的论述。为系统失效的方式命名是修复它们的前提。
