📌 TL;DR: 错误的代价不由错误本身决定,由错误被发现的时机决定。聊天场景里人在回路里,错误是终点;Agent执行链里人在回路外,错误是起点,带着错误的输出线性传播,等你感受到代价时已经走了很远。 可观测性有三个层次:结果可观测(任务结束后能判断对不对)、过程可观测(能追溯每一步做了什么)、异常可观测(执行中出现异常信号就能发现)。大多数人的可观测性止步于第一层。 让错误更早暴露的四种设计:分段验证节点(中间拦截错误传播)、异常信号监控(系统主动报告偏离)、不可逆操作前强制暂停(人工确认拦截最高代价错误)、执行日志结构化(出错后能快速追溯)。 最小可行起点只有三件事:任务开始前定义验收标准、不可逆操作前设暂停点、任务结束后留执行日志。做完这三件事,就从"后果发生后才感受到错误"升级到了"任务结束后能发现并能追溯"。

如何及早发现Agent的错误丨Agent可观测性设计

信息图

同样一个错误,发生在聊天里和发生在Agent执行链里,代价可以差十倍。

聊天里:AI说错了,你看到,发现不对,重新问一遍。代价是几分钟。

Agent执行链里:错误发生在第三步。第四步用了错误的输出继续跑,第五步基于第四步的结果调用了外部工具,第六步把处理结果写进了数据库,第七步触发了对外发送。你在最终结果里感受到有什么不对——但这时候,错误已经走了四步。

追溯要多久?修复代价是多少?有多少已经不可逆?

这不是极端场景,这是Agent执行链的日常结构。错误的代价,不由错误本身决定,由错误被发现的时机决定。 发现得越晚,走得越远,代价越大。

发现时机不是随机的。它是被系统设计决定的。

NotebookLM的音视频概览,解读的比较通俗易懂,对于时间比较紧张的读者朋友,可以听听,会有启发。


为什么Agent的错误总是"最后才被发现"

聊天场景里,人在回路里。每一次输出都经过人眼,错误是终点——你看到了,代价止于此。

Agent执行场景里,人在回路外。执行链线性推进,Agent不会在中间停下来问你"这一步对不对"——除非你提前设计了让它停下来的结构。错误发生之后,它带着错误的输出继续往下执行,每一步都在错误的基础上再往前走一步。

有一类错误尤其难发现,叫沉默失败:Agent把任务跑完了,没有任何报警,输出看起来完整,但结果是错的。它不会告诉你"我在第三步出了问题",它只会把一个看起来像完成了的结果交给你。

这是最危险的错误形态——不是因为它最严重,而是因为它以"完成"的面目出现。你不去仔细核查,根本不会知道。

没有可观测性设计的Agent系统,人只能在最终结果上感受到错误,而不能在错误刚发生的时候发现它。等感受到了,往往已经是出现后果之后。


可观测性的三个层次

第一层:结果可观测。

任务结束后,能看到输出,能判断对不对。这是最基础的层次,也是大多数人的可观测性止步于此的地方。

问题有两个。第一,结果对不对,有时候本身就不容易判断——尤其是任务复杂、验收标准模糊的情况下,错误藏在细节里,粗看没问题,细看才发现偏了。第二,即使发现了问题,也只能知道"结果有问题",不知道是哪一步出了问题,追溯成本很高。

第二层:过程可观测。

能看到Agent在执行过程中做了什么——调用了哪些工具、用了什么参数、每一步的中间输出是什么。有了这层,出了问题能追溯,能定位是哪一步断了,不用从头猜。

这一层的价值,在出错之后体现得最明显。同样是发现结果有问题,有执行日志和没有执行日志,排查时间可以差出一个数量级。

第三层:异常可观测。

不需要等任务完成,执行过程中出现异常信号就能被发现。Token消耗突然翻倍、某个工具调用连续失败、中间输出格式开始偏移、执行时间远超预期——这些都是早期信号,在任务还在跑的时候就能触发提醒。

这一层是主动的。不需要人一直盯着屏幕,是系统在帮你盯,有异常才报告。这是发现错误最早的时机,也是代价最小的时机。


三个发现时机,代价差距有多大

错误被发现的时机,决定了你能做什么。

执行中发现。 异常信号触发,任务还在跑。可以中止,可以回滚到上一个检查点,可以修正方向重新来。这时候的错误,还只是错误,没有变成后果。代价最小。

任务结束后发现。 结果出来,人来验收,发现不对。需要追溯是哪一步出了问题,需要判断哪些步骤需要重跑,需要评估中间有没有触发过不可逆的操作。代价中等,但还有机会修复。

后果发生后发现。 错误结果触发了下游动作——邮件发出去了,数据库写进去了,客户通知了,订单提交了。这时候发现,要面对的不只是重跑任务的成本,还有已经发生的外部后果。有些能撤回,有些撤不回。这是代价最大的时机,也是最难受的时机——因为那时候你能做的已经很有限了。

这三个时机不是运气决定的。 设计了执行中可观测,就有机会在执行中发现。没有设计,只能等到后果发生后才感受到。


让错误更早暴露的四种设计

第一种:分段验证节点。

长执行链里,不要让Agent一口气从头跑到尾。在关键步骤之后设验证点——检查中间结果是否符合预期,不符合就停下来,不要带着错误继续往下走。

验证点不需要很复杂,有时候只是一个简单的格式检查、范围检查、逻辑一致性检查。关键是:在错误还没传播之前,把它拦住。

第二种:异常信号监控。

为每个任务设定正常范围:Token消耗应该在多少以内,执行时间应该多长,工具调用成功率应该在什么水平。超出这个范围,触发提醒。

不需要人一直盯着,让系统来盯。这是实现"执行中发现"最实用的方式——大多数时候任务在正常推进,只有异常出现时你才需要介入。

第三种:不可逆操作前强制暂停。

发送、写入、删除、支付——这类操作一旦触发,后果往往无法完全撤回。在这些节点之前设卡口,人来确认,再继续。

这一种设计,拦截的不是最常见的错误,是代价最大的错误。用一次人工确认,换掉一个不可逆后果的风险,是性价比最高的可观测性投入。

第四种:执行日志结构化。

每一步的输入是什么、调用了什么工具、用了什么参数、输出是什么——这些都有记录,格式统一,可以检索。

结构化日志的价值,在出错之后才完全体现。没有日志,排查靠猜;有了日志,排查靠查。同样的问题,有日志和没有日志,处理时间可以差出一个数量级。即使任务跑对了,日志也是下次优化的原材料。


可观测性的实用起点

不需要一上来就把三层都做齐。

最小可行的可观测性设计,只有三件事:

在任务开始前,定义"什么结果是对的"——不要等结果出来再想怎么判断,验收标准提前写清楚,结果出来对照标准核查。

在不可逆操作前,设暂停点——发送前看一眼,写入前确认一下,这一步的成本很低,拦住的代价可以很高。

在任务结束后,留执行日志——哪怕只是简单的步骤记录,出了问题追溯起来也比没有强得多。

这三件事做完,你就从"只能在后果发生后感受到错误",升级到了"任务结束后能发现并能追溯"。

之后随着任务复杂度增加,再逐步加入异常信号监控和分段验证节点,把发现时机往前移,把代价往下压。


写在最后

Agent跑完了,不等于跑对了。

让你知道"跑对了没有",不是靠运气,是靠设计。可观测性不是Agent自带的功能,是使用者在部署之前需要主动设计的结构。

错误不会因为没有被设计进可观测系统就消失——它只会以"完成"的面目出现,等你在感受到代价的时候,才悄悄露出来。

设计好可观测性,发现越早,代价越小。


感谢你看到最后,如果你觉得有启发,随手点个赞、在看、转发吧,如果想第一时间收到推送,也可以给我加个星标⭐我们下期见。

我是「AioGeoLab」主理人塔迪Tardi,AioGeoLab是深度洞察AI第一性原理和应用实践的前瞻性研究实验室,目前有两个主要研究方向:
塔迪GEO判断工程」是基于GEO的价值SEO化,在AI从“说”到“做”的重要跃迁阶段,试图回答,如何让AI敢于行动、不因为责任问题而畏手畏脚,而做的一个前沿研究项目。
塔迪硅基禅心」是传统东方智慧、未来AI前沿、当下应用实践,深层共鸣的探索。不是用AI解读经典,也不是用经典指导AI。 这是一场跨越2500年的对话,在算法与古老智慧之间,照见意识、智能与存在的本质。
塔迪的微信 - tardyai2025