Skip to content

17. 工具调用失败时,Agent 应该怎么处理? ​

难度 P1 高频 · 岗位 应用 · 频率 ★★★ · 预计阅读 5 min

本题阅读地图 ​

  1. 💡 简要回答
  2. 📝 详细解析
  3. 🎯 面试总结

👔面试官:工具调用失败时,Agent 应该怎么处理?

🙋‍♂️我:报错给用户,或者重试一下。

👔面试官:太简单了。重试几次?什么错误可以重试,什么不该重试?失败后是继续、终止还是转人工?这些都要有策略。

🙋‍♂️我:那就网络错误重试,业务错误终止?

👔面试官:对,但要更系统:区分错误类型(可重试 vs 不可重试)、重试策略(次数、间隔、退避)、失败兜底(默认值、替代工具、转人工)。你能讲清楚吗?

💡 简要回答 ​

工具调用失败的三层处理:

层级策略
错误分类可重试(网络超时、限流)vs 不可重试(参数错误、权限不足)
重试策略次数上限、指数退避、熔断
失败兜底默认值、替代工具、转人工、优雅降级

原则:不要让用户看到原始错误堆栈,要给友好的反馈和后续路径。

📝 详细解析 ​

错误分类 ​

可重试错误:

  • 网络超时
  • 服务暂时不可用(503)
  • 限流(429)

不可重试错误:

  • 参数格式错误(400)
  • 权限不足(403)
  • 资源不存在(404)

重试策略 ​

次数上限:

  • 最多重试 3 次,避免无限循环

指数退避:

  • 第 1 次:1秒后重试
  • 第 2 次:2秒后重试
  • 第 3 次:4秒后重试

熔断机制:

  • 连续失败 N 次后,短时间内不再调用
  • 避免压垮下游服务

失败兜底 ​

返回默认值:

  • 查询天气失败,返回"无法获取天气信息"

替代工具:

  • 主搜索失败,切换到备用搜索

转人工:

  • 关键操作失败,不要自动重试,转人工审核

优雅降级:

  • 工具不可用,用 Prompt 回答(虽然效果差,但不中断)

给用户的反馈 ​

不要:

  • 直接暴露错误堆栈
  • 说"系统错误"然后卡住

要:

  • "查询服务暂时不可用,我稍后为您重试"
  • "这个操作需要人工协助,为您转接客服"
  • "虽然没有实时数据,但根据历史信息..."

🎯 面试总结 ​

三层处理:分类(可重试/不可重试)→ 重试策略 → 兜底方案。关键是给用户友好反馈,不是暴露错误。


章节首页 · ← Q16 · Q18 →

最后更新2026-05-01
难度P1
频率medium
阅读5 min
主题agent / tool-use
觉得有帮助?把这个链接转给正在求职的朋友 · 用 Ctrl + K 全站搜索其它题