主题
Agent 出现死循环、重复工具调用或状态错乱时怎么排查?
题型:问题排查 · 展示你能用执行轨迹定位,而不是只调 Prompt。
排查思路
先根据 runId 还原节点轨迹,确认是条件路由错误、模型反复选择同一工具、Observation 没写回、工具结果不可解析,还是 Memory 带入了过期状态。然后检查图版本、Prompt 与工具 Schema 版本、状态 reducer、并发更新和重试记录。重复调用还要核对 operationId,判断是模型重复决策还是基础设施超时后重放。
处理方案
- 设置最大步数、总时长、Token 与同工具连续调用上限。
- 对最近动作生成指纹,相同参数和结果重复出现时触发反思、换路或终止。
- 工具返回结构化状态,明确成功、可重试、不可重试和结果未知。
- State 采用版本控制或单写者模型,避免并行节点覆盖彼此结果。
- 保存最小可复现轨迹,加入回归数据集。
面试回答闭环
最后应说明问题发生的根因、线上止损、永久修复和新增监控,例如循环终止率、重复工具调用率以及单任务步数异常告警。
易错点
- 不能把所有循环都归因于模型不稳定。
- 只加最大步数能止损,但不能解决错误路由或状态丢失。