AI Agent 的混沌工程:在生产环境之前注入你的 Agent 将真正面对的故障
你的 Agent 在预发布环境中运行完美。它调用正确的工具,推理多步骤计划,并返回精心打磨的结果。然后生产环境来了:地理编码 API 在 7 步计划的第 3 步超时,LLM 在句子中间返回不完整的响应,而你的 Agent 自信地编造数据来填补空白。直到客户发现,没有人注意到。
LLM API 调用在生产环境中有 1-5% 的失败率——速率限制、超时、服务器错误。对于每个任务进行 10-20 次工具调用的多步骤 Agent,这意味着相当比例的任务至少会遇到一次故障。问题不在于你的 Agent 是否会遇到故障,而在于你是否曾经测试过它遇到故障时会发生什么。
混沌工程——通过有意注入故障来发现弱点的实践——自 Netflix 的 Chaos Monkey 以来一直是分布式系统的标准做法。但将其应用于 AI Agent 需要重新思考几乎所有假设。Agent 不是无状态的微服务。它们携带上下文,做出概率性决策,并且可能以看起来像成功的方式失败。
为什么传统混 沌工程对 Agent 不适用
经典混沌工程假设了一些对 AI Agent 不成立的前提。
幂等重试不适用。 当微服务调用失败时,你用相同的输入重试并期望得到相同的输出。当 LLM 调用在推理过程中失败时,重试会产生不同的思维链。Agent 可能会采取完全不同的路径来执行其计划,以不同的顺序调用不同的工具。假设确定性行为的重试逻辑会产生不可预测的结果。
断路器保护的是错误的东西。 在传统系统中,断路器停止调用失败的服务以防止级联故障。对于 Agent,问题不在于调用的数量——而在于当调用失败时 Agent 决定做什么。一个失去对其主要数据源访问的 Agent 不会简单地停止。它会即兴发挥。它可能会幻觉出缺失的数据,替换一个返回错误结果的不同工具,或者自信地跳过该步骤并在不标记的情况下交付不完整的答案。
故障是语义性的,而不仅仅是操作性的。 500 错误很容易检测。但返回过期数据的工具呢?或者恰好形成语法正确但事实错误的句子的部分 LLM 响应呢?Agent 面临一类系统看起来健康但输出默默出错的故障。ReliabilityBench 研究发现,这些语义故障——部分响应、模式漂移、过期数据——比完全崩溃更难捕捉,也更具破坏性。
你应该注入的六种故障模式
基于生产事故模式和最新研究,以下是对 Agent 系统最重要的故障类别:
1. LLM 级别故障。 速率限制(HTTP 429)、服务器错误(500/502/503)、超时、响应中途的流中断和缓慢的 token 交付。这些是最常见且最容易注入的。ReliabilityBench 发现,速率限制在基础设施故障中造成最大的可靠性影响,比基线降低 2.5%——这个数字在多步骤任务中会复合增长。
2. 工具调用故障。 API 错误、超时、格式错误的响应和数据变异。关键洞察是 Agent 通常不验证工具结果。它们将返回的任何内容视为事实。一个从搜索 API 收到错误响应的 Agent 可能会继续执行,就好像它得到了结果一样,编造数据来填充预期的格式。测试这一点需要在工具层注入故障,并检查 Agent 是否承认故障而不是掩盖它。
3. 上下文退化。 随着任务变长,Agent 失去对早期信息的访问。开始时给出的指令被最近的上下文覆盖。一个被告知保持正式语调的 Agent 在第 15 轮开始使用随意的语言。一个被赋予严格输出约束的 Agent 随着上下文窗口填满开始偏离。这不是崩溃——这是一种只有在长时间运行的任务中才会出现的可靠性缓慢侵蚀。
4. 跨 Agent 边界的级联故障。 在多 Agent 系统中,早期管道步骤中的错误向下游传播。每个 Agent 将之前的输出视为可靠的事实。Agent A 中的解析错误变成 Agent B 中的错误假设,进而变成 Agent C 中自信但错误的建议。对基于 LLM 的多 Agent 系统的研究发现,通信故障和级联故障是最危险的类别,因为它们最难追溯到其根源。
5. 压力下的规范漂移。 当 Agent 遇到模糊情况——尤其是在故障之后——它们会用统计上可能但潜在不正确的补全来填补空白。 一个被告知"要有帮助"的 Agent 开始做出超出其权限的退款承诺。这种故障模式被故障放大:当正常路径中断时,Agent 会即兴发挥,而即兴发挥正是规范漂移最危险的地方。
6. 静默故障。 Agent 完成了任务,返回看起来合理的结果,并且没有引发错误。但结果是错误的。这是最难捕捉的故障模式,因为没有可以告警的信号。Agent 的混沌工程必须包括语义验证——不仅检查 Agent 是否完成了任务,还要检查其输出是否确实正确。
构建有效的故障注入框架
Agent 混沌测试框架的架构在几个关键方面不同于传统混沌工程。
- https://arxiv.org/abs/2601.06112
- https://arxiv.org/abs/2505.03096
- https://github.com/deepankarm/agent-chaos
- https://www.mindstudio.ai/blog/ai-agent-failure-pattern-recognition
- https://arxiv.org/abs/2511.07865
