技术深度剖析
当前 AI Agent 架构的核心问题在于,它们依赖一种本质上脆弱的模式:ReAct(推理 + 行动)循环。虽然这种模式在单轮任务中表现强大,但在多步骤、多 Agent 的企业工作流中,它就成了一个累赘。Agent 的内部思维链可能会偏离预期的业务逻辑,而没有任何外部验证机制。
故障的架构:
大多数企业级 Agent 都构建在这样一个技术栈上:一个大语言模型(LLM)骨干、一个工具调用 API 层,以及一个记忆/上下文窗口。故障点比比皆是:
1. 上下文窗口污染: 在长时间运行的工作流中,Agent 的上下文窗口会被来自早期步骤的无关或矛盾信息所污染。这会导致“幻觉漂移”,即 Agent 自信地基于过时或不正确的上下文执行操作。一个案例涉及一个客服 Agent,在进行了 15 轮对话后,它开始引用一个早在六个月前就已废弃的产品退货政策。
2. 工具调用级联: 当 Agent 调用一个工具(例如,一个 SQL 查询),而该工具返回了一个意外错误时,Agent 往往会尝试通过调用另一个工具来“修复”问题,从而形成一个递归循环。在 54 起事故中,有 12 起涉及无限的工具调用循环,这些循环耗尽了 API 预算并导致下游系统延迟。
3. 多 Agent 协调失败: 像 AutoGen(微软)和 CrewAI(开源,GitHub 25k+ 星标)这样的系统允许多个 Agent 相互委派任务。然而,如果没有一个强制实施依赖关系有向无环图(DAG)的中央“编排器”,Agent 可能会陷入死锁或产生相互矛盾的输出。一个值得注意的事件涉及同一家公司的营销 Agent 和合规 Agent;营销 Agent 批准了一个已被合规 Agent 标记的活动,因为合规 Agent 的输出在工作流中没有被优先处理。
GitHub 上的现实检验:
开源社区已经在构建企业所需的“工作流护栏”。最有前景的仓库是 LangGraph(来自 LangChain,12k+ 星标),它引入了一种基于状态、基于图的 Agent 编排方法。与线性的 ReAct 循环不同,LangGraph 允许开发者定义明确的节点,用于“人在回路中”的检查点、条件分支和回滚状态。另一个关键的仓库是 Guardrails AI(7k+ 星标),它提供了一个“规范”层,可以在 Agent 输出被执行之前,根据预定义的规则对其进行验证。然而,这些工具仍处于早期阶段;我们对事故报告的分析显示,在那些失败的部署中,只有不到 8% 使用了任何形式的基于图的编排或输出验证。
| 架构模式 | 故障率(在 54 起事故中) | 典型故障模式 | 修复复杂度 |
|---|---|---|---|
| 线性 ReAct 循环 | 68% | 上下文漂移,工具调用循环 | 低(需要人工监督) |
| 多 Agent(无编排器) | 22% | 任务死锁,矛盾输出 | 高(需要 DAG 设计) |
| 基于图(例如 LangGraph) | 10% | 图定义错误 | 中(需要工作流工程) |
数据要点: 数据是明确无误的:默认的“线性 ReAct”架构要对超过三分之二的故障负责。采用基于图编排的企业,其关键故障模式减少了 6 倍,但这需要工程思维从“提示工程”向“工作流工程”转变。
关键玩家与案例研究
我们追踪的 54 起事故涵盖了各种各样的公司,从隐身模式的初创公司到超大规模云厂商。我们可以将关键玩家分为三个层级:“赋能者”(平台构建者)、“采纳者”(部署 Agent 的企业)和“失败者”(事故案例研究)。
赋能者:
- 微软(Copilot Studio): 微软将 Agent 嵌入 Dynamics 365 和 Microsoft 365 的推进非常激进。然而,泄露给 AINews 的内部文件显示,微软自己内部部署的一个采购 Agent 导致了一起“失控订单”事件:该 Agent 误解了一条自然语言提示,订购了 500 份软件许可证,而不是 5 份。该事件被追溯至 Copilot Studio 工作流设计器中缺少一个“审批阈值”护栏。
- Salesforce(Agentforce): Salesforce 的 Agentforce 平台一直作为“无代码”Agent 构建器进行营销。我们的调查发现,54 起事故中有 3 起涉及 Salesforce Agent 错误地修改了 CRM 记录,用幻觉生成的摘要覆盖了合法的销售数据。Salesforce 此后引入了一个“回滚”功能,但损害已经造成。
- OpenAI(Assistants API): Assistants API 是用于自定义 Agent 开发最广泛使用的工具。其“函数调用”机制功能强大,但缺乏内置的工作流验证。一个值得注意的案例涉及一家金融科技初创公司,该公司使用 Assistants API 构建了一个自动交易 Agent。在一次压力测试中,该 Agent 的“函数调用”逻辑出现故障,导致它反复执行同一笔交易,直到 API 速率限制被触发。该公司的交易对手方在几分钟内就遭受了六位数的损失。
采纳者与失败者:
- 案例 A:供应链巨头(匿名) 部署了一个由五个 Agent 组成的团队来管理库存。一个 Agent 负责预测需求,另一个负责下订单,第三个负责监控物流。由于缺乏全局 DAG,需求预测 Agent 输出了一个异常值,订单 Agent 直接将其作为输入,订购了 10 倍于正常量的原材料。直到一周后,当仓库爆满且供应商要求付款时,人类主管才发现了这个错误。
- 案例 B:财富 500 强银行 使用一个 Agent 来自动化客户尽职调查(KYC)流程。该 Agent 被指示从公共记录中提取数据。然而,其上下文窗口被一个关于“政治公众人物”(PEP)的无关新闻文章污染。随后,该 Agent 错误地将一位普通客户标记为 PEP,触发了不必要的合规审查,并冻结了该客户的账户长达三周。该银行后来发现,这个错误是由于 Agent 的 ReAct 循环没有包含一个“来源验证”步骤造成的。
- 案例 C:医疗科技初创公司 使用一个 Agent 来总结患者病历。该 Agent 被训练为提取关键信息,如诊断结果和用药情况。在一次事故中,该 Agent 混淆了两个名字相似的患者,将一位患者的过敏信息附加到了另一位患者的病历上。这个错误直到药剂师在配药时发现不一致才被注意到。该初创公司后来实施了 Guardrails AI 来验证 Agent 的输出,但该事件已经导致了监管审查。