题目
实际 Agent 系统中工具调用常失败(参数错、超时、返回异常)。请列出提升工具调用可靠性的工程手段。
参考答案
工具调用是 Agent 落地的最大可靠性挑战。失败模式包括:参数格式错、工具不存在、超时、返回非预期结构、循环调用同一失败工具。
提升可靠性的工程手段:
1. 输入侧:参数校验与约束
- 用 JSON Schema 严格约束参数类型/格式,LLM 输出在执行前先校验,不通过则要求重生成。
- 提供参数示例与枚举值,降低 LLM 瞎猜。
- 工具描述写清”何时该用/何时不该用”,减少误调用。
2. 执行侧:重试与容错
- 指数退避重试:网络类工具(HTTP/API)默认重试 3 次。
- 超时与熔断:单工具设超时(如 10s),连续失败触发熔断降级。
- 结构化错误返回:工具失败时返回结构化错误(非崩溃),让 LLM 看到”调用失败原因”以便自纠。
3. 模型侧:自纠错循环
- 把工具错误回灌给 LLM:“上一次调用 X 失败,原因是 Y,请调整”,给它修正机会。
- 设最大重试次数(如 3 次),超过则切换策略或回退人工。
- 反思(Reflection):每步后让 LLM 评估”这一步是否成功,下一步该如何调整”。
4. 调度侧:循环检测与降级
- 循环检测:若连续 N 步重复调用同一工具同一参数,判定卡死,强制切换。
- 备选工具:主工具失败时自动切换备选(如主搜索失败换备用搜索)。
- 降级策略:所有工具失败时回退到”基于已有信息作答”或”诚实告知失败”。
5. 评测侧:badcase 驱动迭代
- 收集失败 trace,归类(参数错/工具错/规划错)。
- 针对高频失败模式优化 Prompt、工具描述或加护栏。
- 建评测集做回归,防改动引入新问题。
面试加分点:
- 强调”Agent 可靠性 = 模型能力 × 工程护栏”,再强的模型没有护栏也难落地。
- 指出结构化错误返回是关键——让错误成为 LLM 可理解的信号,而非崩溃。
- 提及 ReAct 范式天然支持自纠错(Observation 反馈失败 → Thought 调整),但需配合工程护栏防无限循环。
出处:CSDN《【光子 AI 出品】AI 大模型 Agent 面试题 30 道》、Agent 工程实践面经。
内容来源
整理自 CSDN《AI 大模型 Agent 面试题 30 道》及 Agent 工程实践
本站内容整理自公开面经与开源仓库,仅供学习交流,严禁杜撰。