宣布我们的 LlamaCloud 正式可用(以及我们的 1900 万美元 A 轮融资)!
LlamaIndex

Laurie Voss 2025-04-25

不弯而折:构建高效代理的最佳设计模式

最近关于代理是什么以及构建它们的最佳方式的讨论非常富有成效。可以说,这场讨论始于去年 12 月,当时 Anthropic 发布了 构建高效代理,这是一份关于代理软件基本模式的指南,几乎普遍受到好评,同时还探讨了何时应用这些模式。三周前,Dexter Horthy12 要素代理 迅速走红,这是一份关于构建代理时应遵循的设计原则的深思熟虑的清单。几天前,OpenAI 发布了 构建代理实用指南,总结了他们对同一主题的思考。这三篇文章都很有启发性。

开源用户和企业客户纷纷向我们询问对这些原则的看法。我们很高兴地发现,我们与许多已发表的观点一致,这得益于我们构建 LlamaCloud 等复杂代理系统的直接经验,以及与众多企业客户和数十万开源用户合作的经验。我们认为分享我们的经验会很有益处。

工作流:LlamaIndex 中代理系统的核心

要理解我们如何思考代理系统的设计,首先值得了解工作流(Workflows),这是我们存在于 PythonTypeScript 框架中的系统,用于协调代理的执行(OpenAI 的指南恰好在全文中将代理执行路径称为“workflows”,所以我们猜这是一个相当不错的名字!)。

工作流是一个基于事件的系统,允许您连接一系列作为普通函数实现的执行步骤,这些步骤通过发出携带数据并触发其他步骤执行的事件来连接。这个系统从根本上来说简单但强大,使您能够轻松设计链、分支、循环、扇出和集合,包括 Anthropic 在其文章中提到的所有 设计模式。(我们最近发布了一个 展示如何实现每种模式的教程。)

LlamaIndex 工作流的可视化,展示了分支、循环和并行化。

工作流允许实现代理以及在每个步骤中使用子代理。关于控制流的决策可以由大型语言模型(LLM)做出,也可以通过传统的命令式编程做出,或者两者的任意组合。工作流受到了我们社区的欢迎,并且在 LlamaIndex 中编写软件的方式中变得越来越基础。

融合自主性与结构

工作流设计的核心洞见是所有三篇文章都提到的一点:完全自主的代理(它被赋予一个目标和一套工具,并被允许完全自行确定实现目标的路径)与更 rigid 的结构(例如 DAG,其中每个步骤都精确定义)之间存在一种张力。所有三篇文章都同意,成功的代理软件介于这两个极端之间。

OpenAI 实用指南的这一特定部分在社交媒体上被广泛分享

这就是工作流如此运作的原因:我们尝试了更 rigid、基于图的方法,但并不满意。相反,工作流在适当时提供优化的、命令式的路径,同时让大型语言模型(LLM)自由发挥其作用。我们看到工作流所体现的混合模式有六个主要优势

  1. 通过关键操作的可预测执行路径提高可靠性
  2. 更清晰的错误处理和恢复机制
  3. 更容易对代理行为进行调试和跟踪
  4. 通过已知场景的优化路径提高性能
  5. 在有价值的地方保持自主性
  6. 通过人在回路(human-in-the-loop)提供一流的人工监督支持

优化代理设计

当然,如果不必精确定义何时采用结构以及何时选择自主性,那么宣称代理的最佳模式是混合模式就很容易。这仍然是一个棘手的问题,但我们有一些基本指导原则和示例可以提供帮助

何时定义结构

情况 示例
充分理解的流程 接受一系列用户输入:您清楚地知道需要哪些字段,并且确定性方法能提供更好、更可预测的用户体验。
关键业务逻辑 创建计费事件:这是一项不可逆转、成本高昂的操作(无论从财务还是时间角度,如果需要回滚),您需要百分之百确定谁在何时因何被计费。
易出错的操作 “Close call” 决策:当决定是否退款时,会涉及多种人为因素。这是引入人在回路(human-in-the-loop)参与以避免客户服务灾难的绝佳机会。
结构化输出 当您的系统输出需要被下游的其他系统消费时,将输出约束到精确的输出格式是有意义的。

何时提供自主性

情况 示例
非结构化输入 大型语言模型(LLM)自主性最明显的用例是处理非结构化和半结构化数据:合同、发票、电子邮件、客户服务查询。大型语言模型可以对非结构化数据做出决策,而无需实现成千上万个正则表达式。
灵活的规则集 传统的命令式自动化会产生庞大、僵化的决策树,仍然无法捕捉边缘情况。大型语言模型(LLM)在给定大致优先级和总体目标的情况下,非常擅长以类似人类的方式处理边缘情况。
处理新颖情况 事件驱动系统特别擅长处理根据新信息从一种情况“跳跃”到另一种情况的场景,例如在客户服务交互中,客户不确定自己究竟想要什么。

代理模式是未来

我们同意所有三位作者的观点,即代理设计的最佳方法是务实的方法:在有帮助的地方使用结构,在擅长的地方提供自主性。我们认为在当前的框架市场中,工作流是轻松实现此类混合系统的最佳选择,我们鼓励您今天就尝试一下!当然,我们还提供 LlamaCloud,这是我们的企业平台,包含针对常见企业用例的预构建代理解决方案,并提供工程协助以帮助您的系统顺利启动。

一些入门资源