在使用 CrewAI 框架来实现我们需求之前,需要很好地评估 CrewAI 框架提供的各种能力,并选择一些与我们的需求相匹配的能力子集合来构建 AI Agent 应用,否则在实现的过程中,可能会遇到各种无法达到预期的困难。
我们首先要明确的是,为了更好地满足实际应用场景的需要,只有选择最合适的技术组件和方法,在应用场景下需求不断细化明确的过程中,向着更合适的方向进行架构迭代优化,这个过程中甚至可能需要微调或替换各种技术组件(框架的某些特性/能力支持)。
本文大部分内容,是基于 CrewAI 官网文档 “Evaluating Use Cases for CrewAI” 一节的内容,经过重新组织而完成的。
1. CrewAI 决策框架
在使用 CrewAI 框架实现我们的应用之前,CrewAI 给出了一个 “Complexity vs. Precision” 矩阵,它基于复杂性与精确性两个维度,划分了 4 个象限,并针对不同象限对复杂性、精确性的要求,提供了使用 CrewAI 的特性的指导和建议。4 个象限划分,如下图所示:
通过这个矩阵可以很好地评估,我们应该如何选择 CrewAI 具备的能力,从而更好地满足应用需求。
下面先给出,在 CrewAI Application 的上下文之内,“复杂性” 和 “精确性” 具体包含哪些要点,这样能够更好地将我们面对的具体应用场景的要求,更准确地映射到 “复杂性” 和 “精确性” 对应的维度上。
1.1 复杂性与精确性
复杂性(Complexity)包括如下几个要点:
精确性(Precision)包括如下几个要点:
1.2 复杂性 vs 精确性四象限
1.2.1 象限一:低复杂性+低精确性
1、象限特征
2、应用场景参考
3、策略推荐
选择简单的 Crew,或者简单的 Agent 来构建应用。
1.2.2 象限二:低复杂性+高精确性
1、象限特征
2、应用场景参考
3、策略推荐
选择能够直接与 LLM 交互/调用的 Flow,或者具有结构化输出的 Crew。
1.2.3 象限三:高复杂性+低精确性
1、象限特征
2、应用场景参考
3、策略推荐
选择具有多个专业化(Specialized)Agent 构建而成的复杂 Crew。
1.2.4 象限四:高复杂性+高精确性
1、象限特征
2、应用场景参考
3、策略推荐
选择使用 Flow,能够支持编排(Orchestrating)具有带校验步骤的多个 Crew。
2. 实用的评估框架
为了能够在实际使用 CrewAI 之前进行评估,可以参考下面的评估流程:
2.1 评估复杂性要求
通过考虑以下因素,在 1-10 的范围内对应用程序的复杂性进行打分(打完分后,计算平均得分作为总体的复杂性分数):
2.1.1 步骤数量:要求有多少个不同的操作步骤?
2.1.2 相互依赖性:不同部分相互依赖程度如何?
2.1.3 条件逻辑:需要多少分支和决策?
2.1.4 领域知识:所需要的知识有多么专业?
2.2 评估精确性要求
通过考虑以下因素,在 1-10 的范围内对精确性要求进行评分(打完分后,计算平均得分作为总体的精确性要求得分):
2.2.1 必须输出内容的结构化程度如何?
2.2.2 精确度要求:事实的准确性有多么重要?
2.2.3 可再现性要求:各批次输出的结果需要有多么强的一致性要求?
2.2.4 错误容忍度:错误结果的影响是什么?
2.3 映射到 “Complexity vs. Precision” 矩阵
根据上面两个步骤得到的总体复杂性得分、精确性要求得分,映射到对应的四象限的某一个象限,得出适合的当前要构建的应用的选型方法:
2.4 需要考虑的其他因素
3. Crew 与 Flow 选择参考
Crew 与 Flow 是 CrewAI 框架中两个非常核心的组件,通过它们可以构建满足各种需求的应用程序。深入理解在什么场景下使用 Crew 或 Flow 更加合适,能够更好地指导我们做出更佳的决策。
3.1 Crew 是什么?
在 CrewAI中,Crew 代表了一组协同工作的 Agent,它们能够共同完成一系列任务。每个 Crew 都定义了任务执行、Agent 协作和整体 Workflow 的策略。
有关 Crew 更详细的说明和使用,可以参考官网文档 https://docs.crewai.com/concepts/crews。
3.2 Flow 是什么?
Flow 是 CrewAI 提供的一个强大的特性,它旨在简化 AI Workflow 的创建和管理。Flow 允许开发人员高效地组合并协调编码任务(Task)和 Crew,为构建复杂的 AI 自动化应用程序提供了一个强大的框架。
Flow 允许我们创建结构化的、事件驱动的 Workflow,并提供了一种无缝的方式来连接多个任务、管理状态和控制 AI 应用程序中的执行流。借助 Flow,我们可以轻松设计和实现具有多个步骤的 Workflow,更加充分地发挥出 CrewAI 的潜力。
有关 Flow 更详细的说明和使用,可以参考官网文档 https://docs.crewai.com/concepts/flows。
3.3 使用 Crew 的最佳场景
3.4 使用 Flow 的最佳场景
3.5 混合使用 Crew 与 Flow 的最佳场景
4. 总结
使用 CrewAI 框架构建 AI Agent 应用程序,需要在 Crew 和 Flow 之间进行选择,或者将它们组合在一起来使用,这样一个关键的架构决策过程,能够影响到我们使用 CrewAI 应用程序的有效性、可维护性和可扩展性。通过对对应场景的复杂性和精确性进行评估,能够更好地做出与特定要求相匹配的明智决策。
一个推荐的方法是,随着需求的不断细化而不断调整我们的决策,以满足不同阶段的不同需要。我们可以从最简单的解决方案开始,随着经验的积累和需求的明确,不断地调整和完善架构,最终达到我们期望实现的业务目标或系统目标。
5. 参考链接