惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
Cisco Blogs
Schneier on Security
Schneier on Security
T
Tor Project blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
T
Tenable Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
T
Threat Research - Cisco Blogs
C
CERT Recently Published Vulnerability Notes
Security Latest
Security Latest
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
NISL@THU
NISL@THU
L
Lohrmann on Cybersecurity
Scott Helme
Scott Helme
Webroot Blog
Webroot Blog
Project Zero
Project Zero
Google Online Security Blog
Google Online Security Blog
The Last Watchdog
The Last Watchdog
Spread Privacy
Spread Privacy
Hacker News: Ask HN
Hacker News: Ask HN
PCI Perspectives
PCI Perspectives
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
W
WeLiveSecurity
Attack and Defense Labs
Attack and Defense Labs
D
Darknet – Hacking Tools, Hacker News & Cyber Security
N
News | PayPal Newsroom
Help Net Security
Help Net Security
The Hacker News
The Hacker News
H
Heimdal Security Blog
O
OpenAI News
S
Security @ Cisco Blogs
N
News and Events Feed by Topic
Cyberwarzone
Cyberwarzone
Simon Willison's Weblog
Simon Willison's Weblog
G
GRAHAM CLULEY
www.infosecurity-magazine.com
www.infosecurity-magazine.com
博客园 - 叶小钗
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Hacker News - Newest:
Hacker News - Newest: "LLM"
T
Tailwind CSS Blog
大猫的无限游戏
大猫的无限游戏
A
Arctic Wolf
I
Intezer
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
S
Security Affairs
P
Proofpoint News Feed
S
Secure Thoughts
腾讯CDC
Google DeepMind News
Google DeepMind News
量子位
罗磊的独立博客

XINDOO

关于内卷,几个值得深想的洞察 当创作被 Skill 化:我用 AI 写了一部 320 章的长篇网文 AI第一剑,先斩程序员 AI 也会偷懒?这个 PUA 工具专治“摸鱼式编程” Gstack 深度解析:YC CEO 开源的 AI 工程团队 GitHub Trending霸榜!深度解析AI Coding辅助神器 Superpowers 深度探讨:从 OpenClaw 爆火,看 AI Agent 的真相与程序员的未来 我复刻了NotebookLM的信息图功能 我用AI写了部小说,这里是整个过程 [翻译]我在谷歌14年学到的21堂课 2万字吊打40万字:为什么我的“牛马Agent”比“数字分身”更聪明? 最近AI领域爆火的 Agent Skills 是什么? 从计算机科学的视角来看拖延症 一周改6个库后我悟了:AI时代,程序员正在退化成“甲方” 使用n8n做一个自动同步更新的Github项目问答机器人 Agent设计模式——第 20 章:优先级排序 Agent设计模式——第 1 章:提示词链 Agent设计模式——附录 D - 使用 AgentSpace 构建 Agent Agent设计模式——第 19 章:评估和监控 Agent设计模式——第 10 章:模型上下文协议 (MCP) Agent设计模式——第 21 章:探索和发现 Agent设计模式——智能体设计模式 Agent设计模式——第 11 章:目标设定和监控 Agent设计模式——第 9 章:学习和适应 Agent设计模式——第 16 章:资源感知优化 Agent设计模式——附录 G - 编码 Agent Agent设计模式——第 13 章:人机协同 Agent设计模式——第 17 章:推理技术 Agent设计模式——附录 F - 深入剖析:Agent 推理引擎的内部运作机制 Agent设计模式——章节目录 Agent设计模式—— Agent设计模式——第 7 章:多 Agent 协作 Agent设计模式——附录 E - 命令行界面中的 AI Agent Agent设计模式——附录 C - Agentic 框架快速概览 Agent设计模式——第 3 章:并行化 Agent设计模式——**常见问题解答:Agentic 设计模式** Agent设计模式——第 14 章:知识检索(RAG) Agent设计模式——第 18 章:Guardrails/安全模式 Agent设计模式——第 15 章:Agent 间通信(A2A) Agent设计模式——第 8 章:内存管理 Agent设计模式——第 4 章:反思 Agent设计模式——附录 B - AI Agentic 交互:从图形界面到现实世界环境 Agent设计模式——第 5 章:工具使用(函数调用) Agent设计模式——结论 Agent设计模式——第 6 章:规划 Agent设计模式——第 2 章:路由 从经验主义到贝叶斯理论:如何排查线上问题 我用AI为自己造了一把安全的开发者“瑞士军刀”” 从LLM和MCP的协同过程看如何做优化 打通Dify与AI工具生态:将Workflow转为MCP工具的实践 一文了解知识库背后的技术RAG AI应用的五个级别:从入门到专家的进阶之路 一文入门AI圈最近爆火的MCP协议 HTTP/3:性能改进(第 2 部分) deepseek-r1祛魅:从过度热捧到理性认知⁠ 为什么AI智能体需要工作流 如何用GPT-4o解读视频 json命令行处理神器jq介绍 OpenAI的结构化浅析 从大模型的原理到提示词优化 从经济学原理看团队分工合作 [翻译]关于人工智能的30个思考 从马斯洛需求层次理论谈职场激励 知识与智慧 如何使用大语言模型绘制专业图表 两个开源项目打造自己的大模型聚合平台 我让gpt4o给我推荐了一千多次书 得到了这些数据 用Langchain创建一个可以总结网页内容的Agent 推荐一个好用的命令行工具ShellGPT 关于ffmpeg height not divisible by 2的错误 使用Certbot解决https证书自动更新的问题 Spring Cache简明教程 软件开发中的抓大放小vs极致细节思维 OpenAI Assistants-API简明教程 OpenAI的多函数调用(Multiple Function Calling)简介 如何使用ffmpeg制作透明背景的视频 spring-kafka中ContainerProperties.AckMode详解 如何在地图上寻找最密集点的位置? IO密集型服务提升性能的三种方法 职场中的基本归因错误和自利归因 使用javax.validation.constraints校验参数合法性 Java Optional:让你的代码更优雅 ChatGPT函数调用初体验:让ChatGPT具备抓取网页文本的能力 如何使用ChatGPT提升自己的“码”力? 使用ffmpeg拼接两张图片 ThreadPoolExecutor——高效处理并发任务的必备良器 从CPU的视角看 多线程代码为什么那么难写! 使用ffmpeg缩小视频体积的几种方式 Linux parallel 命令使用手册 为什么说过早优化是万恶之源? Linux xargs命令介绍 深入理解Spring的事件通知机制 Java高并发之CyclicBarrier简介 聊一聊过度设计! 详解Redisson分布式限流的实现原理 Java中使用HashMap时指定初始化容量性能一定会更好吗? 如何用ffmpeg截取视频片段&截取时间不准确的坑 XINDOO的2022年年终总结 使用ffmpeg将视频转成HLS(m3u8)格式 谷歌Guava LoadingCache介绍
Agent设计模式——第 12 章:异常处理和恢复
xindoo · 2025-10-04 · via XINDOO

要使 AI Agent 在各种现实世界环境中可靠运行,它们必须能够管理不可预见的情况、错误和故障。正如人类能够适应意外障碍一样,智能 Agent 需要强大的系统来检测问题、启动恢复程序,或至少确保受控失败。这一基本需求构成了异常处理和恢复模式的基础。

此模式专注于开发异常耐用且有弹性的 Agent,使其能够保持不间断的功能和操作完整性,即使面临各种困难和异常情况。它强调主动准备和响应策略的重要性,以确保持续运行,即使在面临挑战时也是如此。这种适应性对于 Agent 在复杂和不可预测的环境中成功运作至关重要,最终提升其整体有效性和可信度。

处理意外事件的能力确保这些 AI 系统不仅智能,而且稳定可靠,从而增强对其部署和性能的信心。集成全面的监控和诊断工具进一步强化了 Agent 快速识别和解决问题的能力,防止潜在中断并确保在不断变化的条件下更顺畅地运行。这些先进系统对于维护 AI 操作的完整性和效率至关重要,增强了其管理复杂性和不可预测性的能力。

此模式有时可能与反思模式结合使用。例如,如果初始尝试失败并引发异常,反思过程可以分析失败原因,并使用改进的方法(如优化提示词)重新尝试任务,以解决错误。

异常处理和恢复模式概述

异常处理和恢复模式解决了 AI Agent 管理操作失败的需求。此模式涉及预测潜在问题,例如工具错误或服务不可用,并制定相应的缓解策略。这些策略可能包括错误日志记录、重试机制、回退方案、优雅降级和通知机制。此外,该模式强调恢复机制,如状态回滚、诊断分析、自我纠正和问题升级,以将 Agent 恢复到稳定运行状态。实施此模式增强了 AI Agent 的可靠性和鲁棒性,使它们能够在不可预测的环境中有效运作。实际应用示例包括管理数据库错误的聊天机器人、处理金融错误的交易机器人以及解决设备故障的智能家居 Agent。该模式确保 Agent 在遇到复杂性和失败时能够继续有效运行。

图 1:AI Agent 异常处理和恢复的关键组件

错误检测:这涉及仔细识别出现的操作问题。这可能表现为无效或格式错误的工具输出、特定的 API 错误(如 404(未找到)或 500(内部服务器错误)代码)、来自服务或 API 的异常长响应时间,或偏离预期格式的不连贯和无意义响应。此外,可以实施其他 Agent 或专门监控系统的监控,以实现更主动的异常检测,使系统能够在潜在问题升级之前捕获它们。

错误处理:一旦检测到错误,就需要一个经过深思熟虑的响应计划。这包括在日志中仔细记录错误详细信息,以便后续调试和分析(日志记录)。重试操作或请求(有时使用略微调整的参数)可能是一种可行的策略,特别是对于瞬态错误(重试)。使用替代策略或方法(回退)可以确保维持某些功能。在无法立即完全恢复的情况下,Agent 可以维持部分功能以至少提供一些价值(优雅降级)。最后,向人类操作员或其他 Agent 发出警报可能对需要人工干预或协作的情况至关重要(通知)。

恢复:这个阶段是关于在错误后将 Agent 或系统恢复到稳定和可操作的状态。它可能涉及撤销最近的更改或事务以撤消错误的影响(状态回滚)。对错误原因进行彻底调查对于防止复发至关重要。通过自我纠正机制或重新规划过程调整 Agent 的计划、逻辑或参数可能需要避免将来出现相同的错误。在复杂或严重的情况下,将问题委托给人类操作员或更高级别的系统(升级)可能是最佳行动方案。

实施这种强大的异常处理和恢复模式可以将 AI Agent 从脆弱和不可靠的系统转变为能够在具有挑战性和高度不可预测的环境中有效且有弹性运行的强大、可靠组件。这确保了 Agent 保持功能性、最小化停机时间,并在面临意外问题时提供无缝和可靠的体验。

实际应用和用例

异常处理和恢复对于在无法保证完美条件的现实场景中部署的任何 Agent 都至关重要。

  • 客户服务聊天机器人:如果聊天机器人尝试访问客户数据库而数据库暂时停机,它不应该崩溃。相反,它应该检测 API 错误,通知用户临时问题,可能建议稍后再试,或将查询升级给人工 Agent。
  • 自动金融交易:尝试执行交易的交易机器人可能会遇到"资金不足"错误或"市场关闭"错误。它需要通过记录错误、避免重复尝试相同的无效交易以及可能通知用户或调整策略来处理这些异常。
  • 智能家居自动化:控制智能灯的 Agent 可能由于网络问题或设备故障而无法打开灯。它应该检测到这个失败,可能重试,如果仍然不成功,通知用户无法打开灯并建议手动干预。
  • 数据处理 Agent:负责处理一批文档的 Agent 可能会遇到损坏的文件。它应该跳过损坏的文件,记录错误,继续处理其他文件,并在结束时报告跳过的文件,而不是停止整个过程。
  • 网络爬虫 Agent:当网络爬虫 Agent 遇到验证码、网站结构更改或服务器错误(例如,404 未找到、503 服务不可用)时,它需要优雅地处理这些问题。这可能涉及暂停、使用代理或报告失败的特定 URL。
  • 机器人和制造:执行装配任务的机器人手臂可能由于未对齐而无法拾取组件。它需要检测到这个失败(例如,通过传感器反馈),尝试重新调整,重试拾取,如果持续存在,则警告人类操作员或切换到不同的组件。

简而言之,此模式对于构建不仅智能而且在面对现实世界复杂性时可靠、有弹性且用户友好的 Agent 至关重要。

实践代码示例(ADK)

异常处理和恢复对于系统的鲁棒性和可靠性至关重要。例如,考虑 Agent 对失败的工具调用的响应。这种失败可能源于不正确的工具输入或工具所依赖的外部服务的问题。

from google.adk.agents import Agent, SequentialAgent

## Agent 1:尝试主要工具。它的重点狭窄而明确。
primary_handler = Agent(
   name="primary_handler",
   model="gemini-2.0-flash-exp",
   instruction="""
您的工作是获取精确的位置信息。
使用用户提供的地址调用 get_precise_location_info 工具。
   """,
   tools=[get_precise_location_info]
)

## Agent 2:充当回退处理器,检查状态以决定其操作。
fallback_handler = Agent(
   name="fallback_handler",
   model="gemini-2.0-flash-exp",
   instruction="""
通过查看 state["primary_location_failed"] 来检查主要位置查找是否失败。
- 如果为 True,从用户的原始查询中提取城市并使用 get_general_area_info 工具。
- 如果为 False,什么也不做。
   """,
   tools=[get_general_area_info]
)

## Agent 3:从状态中呈现最终结果。
response_agent = Agent(
   name="response_agent",
   model="gemini-2.0-flash-exp",
   instruction="""
查看存储在 state["location_result"] 中的位置信息。
向用户清晰简洁地呈现此信息。
如果 state["location_result"] 不存在或为空,请道歉您无法检索位置。
   """,
   tools=[]  # 此 Agent 仅对最终状态进行推理。
)

## SequentialAgent 确保处理器按保证的顺序运行。
robust_location_agent = SequentialAgent(
   name="robust_location_agent",
   sub_agents=[primary_handler, fallback_handler, response_agent]
)

此代码使用 ADK 的 SequentialAgent 和三个子 Agent 定义了一个强大的位置检索系统。primaryhandler 是第一个 Agent,尝试使用 getpreciselocationinfo 工具获取精确的位置信息。fallbackhandler 充当备份,通过检查状态变量来检查主要查找是否失败。如果主要查找失败,回退 Agent 从用户的查询中提取城市并使用 getgeneralareainfo 工具。response_agent 是序列中的最终 Agent。它查看存储在状态中的位置信息。此 Agent 旨在向用户呈现最终结果。如果没有找到位置信息,它会道歉。SequentialAgent 确保这三个 Agent 按预定义的顺序执行。这种结构允许采用分层方法进行位置信息检索。

概览

是什么:在现实世界环境中运行的 AI Agent 不可避免地会遇到不可预见的情况、错误和系统故障。这些中断可能从工具故障、网络问题到无效数据不等,威胁着 Agent 完成任务的能力。如果没有结构化的方法来管理这些问题,Agent 可能会变得脆弱、不可靠,并且在面对意外障碍时容易完全失败。这种不可靠性使得难以在一致性能至关重要的关键或复杂应用程序中部署它们。

为什么:异常处理和恢复模式为构建强大和有弹性的 AI Agent 提供了标准化的解决方案。它为它们配备了预测、管理和从操作失败中恢复的 Agent 能力。该模式涉及主动错误检测,例如监控工具输出和 API 响应,以及响应处理策略,如用于诊断的日志记录、重试瞬态故障或使用回退机制。对于更严重的问题,它定义了恢复协议,包括恢复到稳定状态、通过调整其计划进行自我纠正或将问题升级给人类操作员。这种系统方法确保 Agent 可以维持操作完整性,从失败中学习,并在不可预测的环境中可靠地运作。

经验法则:对于在动态的现实世界环境中部署的任何 AI Agent,当系统故障、工具错误、网络问题或不可预测的输入可能发生且操作可靠性是关键要求时,使用此模式。

可视化摘要

图 2:异常处理模式

关键要点

需要记住的要点:

  • 异常处理和恢复对于构建强大和可靠的 Agent 至关重要。
  • 此模式涉及检测错误、优雅地处理错误以及实施恢复策略。
  • 错误检测可能涉及验证工具输出、检查 API 错误代码以及使用超时。
  • 处理策略包括日志记录、重试、回退、优雅降级和通知。
  • 恢复侧重于通过诊断、自我纠正或升级恢复稳定运行。
  • 此模式确保 Agent 即使在不可预测的现实世界环境中也能有效运行。

结论

本章探讨了异常处理和恢复模式,这对于开发强大和可靠的 AI Agent 至关重要。此模式解决了 AI Agent 如何识别和管理意外问题、实施适当的响应以及恢复到稳定的操作状态。本章讨论了此模式的各个方面,包括错误的检测、通过日志记录、重试和回退等机制处理这些错误,以及用于将 Agent 或系统恢复到正常功能的策略。异常处理和恢复模式的实际应用在多个领域中得到说明,展示了其在处理现实世界复杂性和潜在失败方面的相关性。这些应用展示了为 AI Agent 配备异常处理能力如何有助于它们在动态环境中的可靠性和适应性。

参考文献

  1. McConnell, S. (2004). Code Complete (2nd ed.). Microsoft Press.
  2. Shi, Y., Pei, H., Feng, L., Zhang, Y., & Yao, D. (2024). Towards Fault Tolerance in Multi-Agent Reinforcement Learning. arXiv preprint arXiv:2412.00534.
  3. O'Neill, V. (2022). Improving Fault Tolerance and Reliability of Heterogeneous Multi-Agent IoT Systems Using Intelligence Transfer. Electronics, 11(17), 2724.

本文来源于开源项目Agentic Design Patterns中文翻译