Technical Guide
22. 排错实战:一次任务为什么失败
把 Agent 失败拆成配置、模型、工具、资料、子 Agent、文件产物几个层级,逐层定位。
不要先改 prompt
Agent 出问题时,很多人第一反应是改 prompt。
但失败原因往往不在 prompt。
先分层排查。
第一层:配置
确认:
config.yaml 是否被读取
provider 是否正确
api key 是否生效
base url 是否正确
模型没通时,后面所有排查都没有意义。
第二层:模型
看模型调用是否成功,返回是否被截断,是否超时。
如果模型不稳定,先换一个小任务验证,不要直接跑长报告。
第三层:工具
工具失败要看输入和输出。
常见问题:
参数格式错
工具返回太长
工具没有拿到正文
错误信息被吞掉
第四层:资料
研究型 Agent 最常见的问题是资料不够。
如果只拿到搜索摘要,没有原文,就不要让它写确定结论。
第五层:产物
如果任务要求生成文件,最后一定要验证:
文件是否存在
路径是否正确
内容是否完整
是否能被下载或展示
这一篇你要记住
排错顺序是:
配置 → 模型 → 工具 → 资料 → 子 Agent → 文件产物
按层排,比反复改 prompt 有用。
一个具体排查例子
假设研究报告质量很差。
不要先改 prompt,先问:
搜索有没有拿到相关来源?
抓取有没有拿到正文?
工具返回是否太长?
Skill 是否要求引用证据?
最终报告是否包含来源?
如果第一步资料就不可靠,后面再怎么改 prompt 都有限。
什么时候该停止
如果缺少原文、缺少工具日志、缺少 run 事件,就不要继续脑补原因。
先补观测,再修问题。
输出排查结论
排查结果最好写成:
现象
定位层级
证据
修复动作
验证结果
这样下次类似问题可以复用。