AI 智能体交付的东西离谱时,最烦的不是错误本身,而是不知道错在哪一步:检索拿错了资料?理解偏了?还是工具返回了坏数据?回放调试就是解决这个问题的手段——把执行过程的每一步都记录下来,出事后像放录像一样重新逐帧查看。
它和看比赛回放是一个道理:现场错过没关系,录像里每一秒都在,慢放、暂停、逐帧看都行。
把跑过的过程重新放一遍
回放的前提是留了完整轨迹:每一步的时间、动作类型、输入参数、输出内容、异常信息。有了这些,回放工具就能把静态日志重新组织成可交互的时间线,你点任何一步,就能看到它当时喂给大模型什么、模型回了什么、下一步因此变成了什么。
回放和单看日志的差别在于「因果连贯」:日志是一张张截图,回放是一段连贯视频,前后步骤如何互相影响,一眼看清。扣子(Coze)的工作流调试视图、腾讯元宝的任务过程回看都是典型实现,出错的节点会标红,点开能看到该节点的完整输入输出。
回放时要盯哪几个点
一是转折点:输出从符合预期变成不符合的那一步,问题大概率就埋在那里。二是输入输出对不上号的地方:明明资料里写的是甲,模型引述成了乙,这说明理解或摘录环节出了问题。三是重复与空转:同样的调用连做五次、结果一模一样,说明循环判据失效了。
还有一处容易忽略:提示词拼接。很多离谱输出追到底,是几段模板拼在一起时顺序或分隔符错了,回放恰好能看到最终送进模型的完整文本。
四个观察点,各自指向一类病因:
| 观察点 | 长什么样 | 说明什么 |
|---|---|---|
| 转折点 | 输出从符合预期变成不符合的那一步 | 问题大概率就埋在那里 |
| 输入输出对不上号 | 资料里写的是甲,模型引述成了乙 | 理解或摘录环节出了问题 |
| 重复与空转 | 同样的调用连做五次、结果一模一样 | 循环判据失效了 |
| 提示词拼接 | 几段模板拼在一起时顺序或分隔符错了 | 最终送进模型的完整文本里能看出错在哪 |
改完再回放:验证修复
回放调试的价值不止于找到问题。定位后改了提示词、换了工具、修了参数,再把同样的输入重跑一遍,对比新旧轨迹:错误的那一步是不是真的变对了?有没有引入新的偏移?这一步叫复验,做完才算真正修完。
复验要小心副作用:如果智能体的动作会写文件、发消息,盲目重跑会重复产生这些副作用,所以重放前要确认系统对重复执行是安全的。
类比哪里失效:回放可以暂停
体育回放改变不了比赛结果,调试回放却可以「暂停后改动再续跑」——把出错那一步之后的轨迹截断,换上修复后的版本接着跑,省掉前面所有正确步骤的重演。这是回放调试独有的能力,人类复盘比不了。
失效的还有「镜头完整」:录像可能有死角,轨迹也可能只记了摘要而丢了关键原文。留记录时要把判分和排查可能用到的原文都留下来,死角大小取决于当初记录的详细程度。
修完之后的判断
排错的效率不取决于人有多聪明,取决于记录有多完整。一次高质量回放,能把「凭感觉猜一下午」变成「十分钟定位到某一步的某个参数」。
回放调试四步
- 找到转折点:输出从对变错的那一步
- 核对输入输出:资料、摘录、模板拼接逐一过
- 修复后截断重跑,只重演出错之后的部分
- 对比新旧轨迹,确认修好且没引入新问题
下次智能体交付异常,先别急着改提示词,先放一遍录像。
配套阅读:录像素材从哪来,见什么是 Agent 可观测性?盯住执行过程;把高频错题收进考卷,参考什么是评测套件?Agent 能力的考卷;重跑前先确认重复执行安全,见什么是幂等设计?重复执行不出乱;做一半失败怎么收场,看什么是失败补偿?做一半怎么收场。
关于回放调试再多问三句
- 记录会拖慢执行吗?:几乎不会。写日志的耗时远小于一次模型调用,用摘要加关键原文的记录方式,存储负担也可控。
- 只有出错才需要回放吗?:不是。表现好的轨迹同样值得回看,把优秀执行的路径提炼出来,往往能直接变成新的提示词模板。
- 多 Agent 任务怎么回放?:按任务编号把各角色的轨迹串成一条总时间线,先看交接处,多角色系统的问题多半出在消息传递上。


