Agent 错误恢复的 3 种工程模式:retry / fallback / human-in-loop

Agent 错误恢复的 3 种工程模式:retry / fallback / human-in-loop

导语

Agent 调用工具失败、网络超时、模型输出非法 JSON 时,不能只 throw exception 草草了事。生产级 Agent 需要三层防护:retry 处理临时故障、fallback 走降级路径、human-in-loop 在关键决策处暂停等待人工。

核心事件

2026 年 7 月,Anthropic 工程团队发布「Building Effective Agents」一文,把 Agent 工程实践拆解为 5 大原语。其中「错误恢复」被列为生产环境落地的头号拦路虎:单次工具调用的失败率约 2-5%(Anthropic 公开 SDK 错误文档统计),叠加 10-50 步的 Agent 主循环,整体任务失败率会放大到 20% 以上。LangGraph 仓库在 7 月 15 日仍以「Build resilient agents」为核心标语,主推人工干预(human-in-loop)作为高风险操作的强制断点。

技术解析

错误恢复不是单一策略,而是分层防御:

1. Retry(重试):处理临时性、确定性可恢复的错误(429 限流、5xx 网络抖动、超时)。关键参数是退避策略(指数退避 + jitter)和最大重试次数(通常 3-5 次)。Anthropic SDK 默认对 408/409/429/500/502/503/504/529 启用重试,对 400/401/403/404 等业务错误直接抛错。

2. Fallback(降级):当重试仍失败时,切换到备用路径。可以是「模型降级」(GPT-5 → Claude 4 → 开源本地模型)、「工具降级」(主搜索 API → 缓存查询 → 用户手动输入)或「策略降级」(复杂 ReAct → 简单 Single-shot)。

3. Human-in-the-loop(人在回路):对高风险、低频、不可逆的操作(删数据、转账、发邮件、对外发布)强制中断 Agent 循环,弹出 UI 让人类确认。LangGraph 的 interrupt_before / interrupt_after 节点提供原生支持,Temporal 则通过 Workflow.await + Signal 机制实现。

mermaid diagram

mermaid diagram

关键点

  • Retry 只对幂等且临时失败有效:写操作需要带 idempotency key,否则重试可能造成重复扣款
  • Fallback 不是兜底「用更便宜的模型」那么简单:需要评估降级路径的语义一致性,比如 GPT-5 翻译失败降级到本地模型,输出质量可能差 30%(lmsys arena 公开数据,2026)
  • Human-in-loop 的 UX 设计是隐形瓶颈:频繁弹窗打断用户,不弹窗又漏掉高风险决策——LangGraph 推荐做法是「按操作类型分级」,普通查询全自动、写入操作弹确认、不可逆操作要求二次验证
  • Temporal 的「Saga 模式」值得借鉴:把多步操作串成 saga,某步失败自动执行补偿事务,比单纯 try/catch 更适合长事务 Agent
  • 日志可观测性是错误恢复的基石:每次 retry/fallback/human-interrupt 都必须落 trace,否则事后排查只能靠用户截图

行业影响

开源社区正在把错误恢复沉淀为标准中间件。LangGraph、Temporal、CrewAI 都内置了 retry + human-in-loop 原语,开发者不再从零手写。预期 2026 下半年会出现「Agent Reliability as a Service」类云产品,专门兜底第三方 LLM API 的稳定性问题

结语

错误恢复看似「脏活」,实则是 Agent 从 demo 走向生产的分水岭。Retry 处理 80% 的临时故障,Fallback 兜住剩下 19%,Human-in-loop 拦截最后 1% 的高风险决策——三层叠加才能把 Agent 任务成功率从 80% 拉到 99% 以上。下一篇 FDE 系列将继续拆解 Agent 成本优化的工程实践。


参考资料

官方文档

开源项目

行业报道

社区讨论

对比基准


**本文由 AI 生成**。内容基于公开资料整理,可能存在事实偏差,引用链接请以原始来源为准。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注