为什么 Agent 必须有观测和 Tracing文章目录为什么 Agent 必须有观测和 Tracing先说结论为什么日志不够该记录什么观测能帮你看见什么最容易忽略的点结尾先说结论普通软件没有日志很难排查Agent 没有观测就几乎没法维护。因为 Agent 不只是跑一次函数它会读上下文做判断调工具写结果再继续下一步这就意味着你光看最终输出往往根本不知道它中间哪一步跑偏了。所以 Agent 一旦要上生产观测和 tracing 就不是锦上添花而是基本盘。为什么日志不够很多人一开始会说我把输入输出记下来不就行了问题是Agent 的问题通常不在最后一步而在中间很多步。比如检索结果错了工具参数错了上下文丢了某一步重试太多次某个失败没有触发降级这些都不是“看最终答案”能发现的。Tracing 的意义就在于把每一跳都记下来让你知道它到底在哪一跳变形了。该记录什么真正有用的观测信息通常不是一堆杂乱日志而是这些任务目标每一轮输入每一步工具调用工具返回结果失败原因重试次数最终是否达到停止条件这样你回头看一条轨迹就能知道它当时想干什么它实际做了什么它为什么停在这里Agent tracing loopThis diagram shows how a traced agent records the goal, tool calls, outputs, failures, and retry decisions for debugging and evaluation.Trace工具Agent用户Trace工具Agent用户alt[结果不合格][结果合格]提交任务记录目标和上下文调用工具返回结果记录输出和状态记录失败原因重试或换工具返回最终答案观测能帮你看见什么第一成本。哪一步最耗 token哪一步最耗时间一眼就能看出来。第二稳定性。是不是总在同一个步骤失败。第三行为漂移。今天和昨天同样的任务为什么路径不一样。第四评估问题。答案看起来对不代表过程是对的。trace 能帮你区分这两件事。最容易忽略的点第一只记结果不记过程。这跟没记差不多。第二只看单次执行不看分布。Agent 的问题往往是模式问题不是单次事故。第三没把 trace 和评测连起来。记录下来不是为了收藏而是为了后续改进。第四观测太重。如果每一步都记录得过于复杂反而会拖慢系统。结尾Agent 和普通脚本最大的区别不只是能做事而是会在多步推理和多轮执行里不断变化。这种系统如果没有 tracing就像闭着眼开车。你知道它到了终点但你不知道它中间是不是差点冲进沟里。