Agent完成了任务,但任务失败了丨执行链上的五种断裂模式

软件崩了,你会看到报错。LLM答错了,你会看到一个质量差的回答。
但AI Agent失败最危险的形式,不是崩溃,也不是答错——
是它走完了全程,交付了结果,然后你在另一个地方发现问题时,它已经用同样的方式失败了几十次。
这就是Agent失败和你以为的失败之间最大的认知落差:Agent会假装成功。
不是故意的,是结构决定的。
* * *NotebookLM的音视频概览,解读的比较通俗易懂,对于时间比较紧张的读者朋友,可以听听,会有启发。
为什么Agent的失败和你以为的不一样
软件失败很诚实。调用出错,500状态码,日志里清清楚楚,你知道哪里断了。
LLM失败也还算可控。它在一次对话里答错了,你看一眼就能感知,最多重新问一遍。代价止于这一次回答。
Agent失败很不一样。
它不是单次回答,是一系列动作串联起来的执行链。每一步的输出是下一步的输入。执行可以跑几分钟、几小时,涉及多个工具调用、多个外部系统、多个子Agent协作。
这就意味着:一个错误不是终点,是起点。它会沿着执行链往后走,被后续步骤当成事实继承,直到整个链条交出一个看起来完整的结果。
你以为失败会报错。Agent的失败经常是沉默的,以"完成"的面目出现。
基于2023-2026年记录在案的591个Agent生产事件(来源:clyro.dev),88%的失败根源不是模型能力不足,而是执行基础设施上的结构性缺口——缺少护栏、缺少权限边界、缺少监控机制。
这句话换个说法就是:大多数Agent翻车,不是因为AI不够聪明,是因为执行结构没有内置纠错。
五种失败模式
这五种模式不是随机的。它们有规律,有特征,有对应的预防方法。
模式一:目标漂移
任务在执行过程中悄悄变形,最终完成的不是你要的那件事。
它不是在某一步突然出轨。每一步看起来都合理,逻辑也成立,但方向在一点一点偏移。等你拿到最终结果,离原始目标已经有一段距离了。
为什么会发生?
根源在于Agent的规划层是"向前看"的——它在当前步骤做决策,参照的是上一步的输出和整体目标的文字描述。任务越复杂、步骤越多,每一步的小偏差就越容易在后续放大。如果原始指令本身有模糊性,漂移几乎是必然的。
多Agent场景下更严重。任务从一个Agent交给下一个Agent时,目标摘要会被压缩、被翻译、被重新解释,每次传递都是一次信息损耗的机会。
这种失败的迷惑性在于:你收到的结果不是空白,是一份有内容的交付物,只是交付的不是你要的那件事。
模式二:工具误用
Agent找对了工具,但调用时出了问题——参数错了、时序错了、边界条件没处理。
工具本身没有坏,调用行为才是问题所在。
一个真实的案例:Agent负责清理CRM里的重复联系人,使用系统提供的合并API。单次调用完全正确。但Agent在顺序处理时,没有检查前一步的合并是否已经改变了当前操作对象的状态——联系人A被合并进B,联系人C本应合并进A,但此时A已经不再是主记录。合并产生了孤儿记录,50条客户交互历史从系统里消失。
每一步都"成功"了,整体结果是灾难。
工具调用的危险性和工具的能力成正比。工具能做的事越多,误用造成的破坏面就越大。
模式三:沉默失败
任务完成了,流程走完了,结果是错的,没有任何报警。
这是五种模式里最难发现的一种。
Agent对"成功"的定义,默认是流程跑完——不是结果正确。它没有内置的"回头验证"机制,除非你显式设计了验证节点。所以它可以自信地返回一个格式完整、看起来正常的结果,而那个结果完全是错的。
最大的危险不是单次失败,是重复失败。 它会用同样的方式失败第二次、第三次、第十次,因为每次流程都跑完了,没有任何信号触发干预。你只有在下游——某个依赖这个结果的地方——出了问题,才会发现根源在这里。
到那时候,问题往往已经积累了一段时间。
模式四:失控循环
Agent卡住了,但它不知道自己卡住了,于是继续跑。
Claude Code的GitHub仓库里有一个真实案例:一个子Agent在同一个失败命令上重复执行了300多次,运行了约4.6小时,消耗了约2700万个Token,直到超时才停下来。
它不是在偷懒,它在努力完成任务。问题是它没有能力判断"当前的努力方向是无效的",也没有外部机制在某个阈值触发中断。
失控循环的代价是双重的:Token账单和时间。但还有一个更隐蔽的代价——它在跑循环的这段时间里,占用了执行资源,其他任务在等待,你也不知道它在干什么。
这个模式的根源是缺少有效的终止判断:什么叫"这条路走不通,应该停下"?这个判断需要被显式设计进执行环境,而不是指望Agent自己想清楚。
模式五:状态污染
前一步的错误,成了后一步的输入。
这一点和幻觉传播的机制有交叠,但范围更广:不只是幻觉,任何错误状态都可以污染下游。错误的事实判断、错误的工具调用结果、被误解的用户意图——只要被当成"已确认的事实"传入下一步,错误就完成了继承。
Agent执行链是一个信任链。 每一步默认信任上一步的输出,因为没有时间和机制去重新验证所有前置结论。这在效率上是合理的,在风险上是脆弱的。
在多Agent系统里,状态污染的传播速度更快。一个Agent的错误结论交给下一个Agent时,接收方不知道这个结论是怎么来的、可信程度如何,只知道它来自上游,于是照单全收。
五种模式的共同根源
这五种失败模式表面上各不相同,但有一个共同的底层结构:
执行链是线性推进的,没有内置的自我验证机制。
Agent的默认工作方式是:做完这步,做下步。它会向前走,不会回头看。除非你在执行结构里显式设计了验证节点、中断条件、结果校验,否则这五种模式随时可能发生。
这就是那88%数据说明的事情——不是模型质量问题,是基础设施问题。更准确地说:是你有没有把纠错机制设计进执行结构的问题。
判断框架:这个任务,应该防哪种失败
不是要在每个任务里把五种防御全部部署一遍。而是在设计执行结构之前,先问自己:这个任务的风险形状是什么?
步骤多、目标表述复杂 → 重点防目标漂移。在关键节点设显式确认,不要只靠开头的一句指令撑完全程。
涉及外部系统的写操作 → 重点防工具误用。检查调用参数的构造逻辑,关注时序依赖,考虑幂等保护。
结果无法即时验证 → 重点防沉默失败。在下游设校验点,定义"什么叫真正完成",不能只看流程跑完。
长时运行任务 → 重点防失控循环。设时间上限和Token硬上限,定义重试次数阈值,超过就停下来。
多步或多Agent协作 → 重点防状态污染。关键结论要显式传递、显式确认,不要依赖隐式的上下文继承。
写在最后
Agent失败最难处理的部分,不是失败本身,是你不知道它失败了。
这五种模式——目标漂移、工具误用、沉默失败、失控循环、状态污染——不是用来吓退你用Agent的,是为了让你在部署前就知道该防什么、在哪里设卡。
知道失败有形状,你就能在结构上应对它。
这才是Agent用得稳的底层逻辑:不是找一个更聪明的模型,是把纠错机制设计进执行结构。
我是「AioGeoLab」主理人塔迪Tardi,AioGeoLab是深度洞察AI第一性原理和应用实践的前瞻性研究实验室,目前有两个主要研究方向:
「塔迪GEO判断工程」是基于GEO的价值SEO化,在AI从“说”到“做”的重要跃迁阶段,试图回答,如何让AI敢于行动、不因为责任问题而畏手畏脚,而做的一个前沿研究项目。
「塔迪硅基禅心」是传统东方智慧、未来AI前沿、当下应用实践,深层共鸣的探索。不是用AI解读经典,也不是用经典指导AI。 这是一场跨越2500年的对话,在算法与古老智慧之间,照见意识、智能与存在的本质。
塔迪的微信 - tardyai2025。
