- 文档
- 教程
- AI Agent
- 人工智能
【免费下载链接】Agentic-Design-Patterns
Agentic Design Patterns
AI Agent 干到一半突然卡壳——工具调用失败、API 返回 500、输出前言不搭后语,你该怎么办?开源书籍 Agentic Design Patterns 给出了系统性答案:异常处理与恢复(Exception Handling and Recovery)模式。它教你的 Agent 像人一样应对意外:先检测错误,再从容处置,最后恢复稳定运行,甚至优雅降级、求助人类,而不是一崩了之。
🔍 Agent 为什么会卡壳?三大故障源头
看上面这张图:Agent 解决问题的过程是"领任务 → 扫环境 → 思考 → 行动 → 变强"。问题出在**"行动"**这一步——Agent 一旦开始调用工具,外部世界的不确定性就进来了:
| 故障源头 | 典型表现 |
|---|---|
| 🛠️ 工具调用失败 | 工具入参错误、依赖的外部服务挂了 |
| 🌐 API / 网络异常 | 404、500 错误码、超时、响应慢得反常 |
| 📄 数据不合法 | 工具返回畸形输出、乱码、格式完全对不上 |
工具是 Agent 的双手,也是它最脆弱的环节。工具调用失败是异常的头号来源,更多细节见 Chapter 5: Tool Use(Function Calling)-1bE4iMljhppqGY1p48gQWtZvk6MfRuJRCiba1yRykGNE.md):
🧰 异常处理与恢复模式:一套"检测—处置—恢复"三层防线
Chapter 12: Exception Handling and Recovery 把这个模式拆解为三个阶段,核心思想是:主动预防 + 被动响应双管齐下。
第一步:错误检测——在问题爆发前抓住它
错误检测是防线的第一道闸门,信号包括:
- 工具输出无效或格式畸形;
- API 返回 404 / 500 等错误码;
- 服务响应时间异常变长(超时也是错误的一种);
- 输出胡言乱语、偏离预期格式。
更高级的做法是主动监控:由其他 Agent 或专门的监控系统持续观测 Agent 的指标,发现异常立即拉响警报,把"事后救火"变成"事前预警":
第二步:错误处理——五种标准应对手段
错误一旦被抓到,就进入处置环节。书中给出的"五件套"可以直接抄作业:
| 手段 | 什么时候用 | 效果 |
|---|---|---|
| 📝 日志记录(Logging) | 任何错误 | 记下错误细节,方便事后调试与复盘 |
| 🔁 重试(Retries) | 瞬时错误(网络抖动、超时) | 稍微调整参数再来一次,常常直接解决 |
| 🚿 兜底切换(Fallbacks) | 主路径不可用 | 换备用工具或备用方案,保住基本功能 |
| 📉 优雅降级(Graceful Degradation) | 无法立即完全恢复 | 保留部分功能,至少先提供一点价值 |
| 🚨 通知(Notification) | 需要人类介入时 | 及时告警给操作员或其他 Agent |
第三步:恢复——把 Agent 拉回稳定状态
恢复阶段的目标是"止血 + 根因治理",四招组合:
- 状态回滚(State Rollback):撤销出错前后的变更或事务,退回干净状态;
- 根因诊断(Diagnosis):查清楚错误到底怎么来的,防止复发;
- 自我修正(Self-correction):调整计划、逻辑或参数,换一种打法重试——这一步常与 Chapter 4: Reflection(反思) 配合使用:第一次尝试失败抛出异常后,反思流程分析失败原因,用改进的提示词再战一次;
- 升级上报(Escalation):问题太严重或太复杂?交给更高级别的系统,或干脆请人类出面,参见 Chapter 13: Human in the Loop。
在多 Agent 架构中,"升级"天然有去处:子 Agent 搞不定时,请求会上升给 Supervisor Agent 统筹决策:
🎯 场景体检:这六类 Agent 最需要异常处理
| 场景 | 卡壳现场 | 正确的恢复姿势 |
|---|---|---|
| 💬 客服聊天机器人 | 客户数据库临时宕机 | 检测到 API 错误 → 告知用户稍后再试,或转人工 |
| 💹 自动金融交易 | "资金不足"、"市场已收盘" | 记录日志,绝不对无效交易反复重试,必要时调整策略 |
| 🏠 智能家居 | 网络问题导致灯开不了 | 重试一次,仍失败就通知用户手动处理 |
| 📄 文档批处理 | 遇到损坏文件 | 跳过坏文件、记录日志,继续处理其余文件,最后汇总报告 |
| 🕷️ 网页爬虫 | 验证码、404 / 503、页面改版 | 暂停、换代理,或精确报告失败的 URL |
| 🦾 机器人制造 | 机械臂抓件对位失败 | 传感器反馈 → 重新校准 → 重试,持续失败则告警换件 |
⚡ 落地套路:一条"主力—备胎—作答"三层链
书中用 Google ADK 给了一个可直接借鉴的最小架构(Chapter 12 实战代码),思路很干净,不需要看代码也能抄:
- 主力 Agent(primary_handler):专心用第一工具(精确位置查询)干活;
- 备胎 Agent(fallback_handler):检查状态标记"主力是否失败",失败了就退一步,用粗粒度工具(按城市查)兜底;
- 作答 Agent(response_agent):只负责把最终结果讲给用户听;拿不到结果就坦诚致歉,而不是硬编。
三者用 SequentialAgent 按固定顺序串联,任何一环失败,链路都能"软着陆"。
✅ 要点速查清单
- 异常处理与恢复是构建可靠 Agent 的必备模式,不是可选项;
- 三大阶段缺一不可:检测 → 处置 → 恢复;
- 检测靠"验证工具输出 + 检查错误码 + 超时 + 监控告警";
- 处置靠"日志、重试、兜底、降级、通知"五件套;
- 恢复靠"回滚、诊断、自我修正、升级上报"四步走;
- 经验法则:只要 Agent 部署在动态真实环境,就要上这个模式。
📖 延伸阅读
- Chapter 12: Exception Handling and Recovery(本章原文出处)
- Chapter 4: Reflection(与异常恢复配合的反思模式)
- Chapter 13: Human in the Loop(升级上报的人类介入模式)
- Chapter 5: Tool Use(工具调用异常的第一现场)-1bE4iMljhppqGY1p48gQWtZvk6MfRuJRCiba1yRykGNE.md)
- 文档
- 教程
- AI Agent
- 人工智能
【免费下载链接】Agentic-Design-Patterns
Agentic Design Patterns
相关推荐
BullshitGenerator错误处理机制:当生成器也“卡壳”时怎么办
BullshitGenerator错误处理机制:当生成器也“卡壳”时怎么办 你是否曾遇到过文章生成到一半突然中断?或者输入主题后程序毫无反应?作为一款用于测试G
开发工具测试免费解锁macOS隐藏技能:让Finder支持所有视频格式的终极指南
免费解锁macOS隐藏技能:让Finder支持所有视频格式的终极指南 还在为Mac上无法预览MKV、AVI、WebM等视频文件而烦恼吗?每次都要打开笨重的播放器
音视频桌面应用Lazydocker 升级后容器排序方式变了怎么恢复旧排序?
Lazydocker 升级后容器排序方式变了怎么恢复旧排序? 升级 lazydocker 后,Containers 面板里容器的排列顺序可能和你之前用习惯了的不
开发工具CLI
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考