核心要点

  • 能区分错误类型:瞬时错误(超时/限流/5xx)可重试,参数/校验错误应让模型修正,持久错误(鉴权/资源不存在)走回退

  • 能讲重试策略:指数退避 + 抖动、设最大重试次数与总超时,对幂等操作才安全重试

  • 能讲回退:降级到备用工具/缓存/默认值,或把失败信息回灌给模型让它换方案

  • 能讲反馈闭环:把结构化错误信息作为观察返回模型(ReAct),并记录 trace 便于排查

标准回答

先分类错误(独占一行)

工具失败不能一律重试。先区分:瞬时错误(网络超时、限流 429、服务端 5xx)、输入错误(参数缺失/类型不对/校验不过)、持久错误(鉴权失败、资源不存在、权限不足)。不同类别处理方式不同。

重试

仅对瞬时且幂等的调用重试:采用指数退避加随机抖动,设最大重试次数与整体超时上限,避免雪崩与无限等待。非幂等写操作需配合幂等键,否则不能盲目重试。

让模型自我修复

参数/校验类错误应把结构化错误信息作为「观察」回灌给模型,在 ReAct 循环里让它修正参数或改用别的工具,而不是程序硬重试。

回退

持久失败或重试耗尽时走回退:切换备用工具、读缓存、返回安全默认值,或把「该工具不可用」明确告知模型让它换思路,必要时降级为人工兜底。

可观测性

每次工具调用记录入参、结果、错误码、耗时与重试次数,便于定位与改进(见 Function Calling 实战)。

常见误区

⚠️ 常见踩坑

别对所有错误统一「重试 N 次」——对参数错误重试只会原样失败,对非幂等写操作重试可能重复下单/扣款;必须先分类错误、再决定重试还是回灌模型修复。

追问

追问 1如何保证非幂等工具的安全重试?

为写操作引入幂等键(idempotency key),服务端按键去重,使同一逻辑请求重试只生效一次;无法幂等时改为「先查状态再决定是否重试」,避免重复副作用。

追问 2工具反复失败导致 Agent 卡在循环里怎么办?

设置全局工具调用次数与总时长上限、对同一工具的连续失败做熔断、检测重复动作提前终止,并在耗尽预算时返回部分结果或转人工,而非无限循环。

追问 3错误信息怎么返回给模型最有效?

返回结构化、可操作的错误(错误类型、具体字段、修复提示),而非原始堆栈;明确告诉模型「哪里错、可以怎么改」,能显著提升其自我修复成功率。

延伸学习

与本题相关的知识库文章、术语、工具与行业资讯。

🛠️ AI 工具

  • LangGraph

    基于图的 AI Agent 编排框架,29,857+ stars。LangChain 团队出品,用有向图定义 Agent 工作流,支持循环、条件分支、多 Agent 协作。是构建复杂 Agent 系统的标准工具。

  • LangChain

    最流行的 LLM 应用开发框架,137K+ stars。提供链式编排、RAG 检索增强生成、Agent 构建等核心能力,覆盖 Python 和 JavaScript 双语言生态,是构建 LLM 应用的基础设施