IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    基于 CrewAI 构建应用的决策要点分析

    Yanjun发表于 2025-03-15 06:30:06
    love 0

    在使用 CrewAI 框架来实现我们需求之前,需要很好地评估 CrewAI 框架提供的各种能力,并选择一些与我们的需求相匹配的能力子集合来构建 AI Agent 应用,否则在实现的过程中,可能会遇到各种无法达到预期的困难。
    我们首先要明确的是,为了更好地满足实际应用场景的需要,只有选择最合适的技术组件和方法,在应用场景下需求不断细化明确的过程中,向着更合适的方向进行架构迭代优化,这个过程中甚至可能需要微调或替换各种技术组件(框架的某些特性/能力支持)。
    本文大部分内容,是基于 CrewAI 官网文档 “Evaluating Use Cases for CrewAI” 一节的内容,经过重新组织而完成的。

    1. CrewAI 决策框架

    在使用 CrewAI 框架实现我们的应用之前,CrewAI 给出了一个 “Complexity vs. Precision” 矩阵,它基于复杂性与精确性两个维度,划分了 4 个象限,并针对不同象限对复杂性、精确性的要求,提供了使用 CrewAI 的特性的指导和建议。4 个象限划分,如下图所示:

    Complexity vs. Precision Matrix for CrewAI Applications

    通过这个矩阵可以很好地评估,我们应该如何选择 CrewAI 具备的能力,从而更好地满足应用需求。
    下面先给出,在 CrewAI Application 的上下文之内,“复杂性” 和 “精确性” 具体包含哪些要点,这样能够更好地将我们面对的具体应用场景的要求,更准确地映射到 “复杂性” 和 “精确性” 对应的维度上。

    1.1 复杂性与精确性

    复杂性(Complexity)包括如下几个要点:

    • 应用所要求的不同步骤/操作的数量
    • 需要执行的任务(Task)的多样性
    • 应用中不同组件或不同步骤之间的相互依赖程度
    • 是否有条件约束或分支逻辑的要求
    • 待构建的整个 Workflow 的复杂程度

    精确性(Precision)包括如下几个要点:

    • 最终输出结果的精确性要求
    • 对结构化(Structured)的、可预测(Predictable)的结果的要求
    • 可再现性(Reproducibility)要求
    • 程序运行过程中,每一个执行步骤的可控制程度要求
    • 对可变化结果输出的容忍性(Tolerance)

    1.2 复杂性 vs 精确性四象限

    1.2.1 象限一:低复杂性+低精确性

    1、象限特征

    • 简单的、直接的任务
    • 能够容忍输出结果的可变性
    • 应用执行的步骤数非常有限
    • 创意类或探索类应用

    2、应用场景参考

    • 基础的内容生成类应用
    • 想法头脑风暴
    • 简单的提取摘要类任务
    • 创意写作助手

    3、策略推荐
    选择简单的 Crew,或者简单的 Agent 来构建应用。

    1.2.2 象限二:低复杂性+高精确性

    1、象限特征

    • 具有强制性、结构化输出要求的简单 Workflow
    • 具有可再现性结果输出需求的场景
    • 有限步骤,但要求满足高精确性
    • 常常包含数据处理、数据转换要求的场景

    2、应用场景参考

    • 数据抽取与转换
    • 表单填充与校验
    • 结构化内容生成(JSON、XML)
    • 简单分类任务

    3、策略推荐
    选择能够直接与 LLM 交互/调用的 Flow,或者具有结构化输出的 Crew。

    1.2.3 象限三:高复杂性+低精确性

    1、象限特征

    • 具有很多步骤的多阶段处理应用场景
    • 创意或探索类输出
    • 各个组件之间具有复杂的交互
    • 能够容忍最终结果的可变性

    2、应用场景参考

    • 调研与分析场景
    • 内容创建 Pipeline
    • 数据探查分析
    • 解决创意类问题

    3、策略推荐
    选择具有多个专业化(Specialized)Agent 构建而成的复杂 Crew。

    1.2.4 象限四:高复杂性+高精确性

    1、象限特征

    • 结果要求结构化输出的复杂 Workflow
    • 具有严格精确性要求的、多个步骤之间相互依赖的场景
    • 同时满足复杂处理和精确结果要求的场景
    • 常被认为是至关重要(mission-critical)类的应用场景

    2、应用场景参考

    • 企业决策支持系统
    • 复杂处理 Pipeline
    • 多阶段文档处理
    • 例行化(受监管类)行业应用场景

    3、策略推荐
    选择使用 Flow,能够支持编排(Orchestrating)具有带校验步骤的多个 Crew。

    2. 实用的评估框架

    为了能够在实际使用 CrewAI 之前进行评估,可以参考下面的评估流程:

    2.1 评估复杂性要求

    通过考虑以下因素,在 1-10 的范围内对应用程序的复杂性进行打分(打完分后,计算平均得分作为总体的复杂性分数):
    2.1.1 步骤数量:要求有多少个不同的操作步骤?

    • 1-3 步:低复杂性(1-3)
    • 4-7 步:中复杂性(4-7)
    • 8+ 步:高复杂性(8-10)

    2.1.2 相互依赖性:不同部分相互依赖程度如何?

    • 依赖非常少:低依赖性(1-3)
    • 一些依赖:中依赖性(4-7)
    • 很多复杂依赖:高依赖性(8-10)

    2.1.3 条件逻辑:需要多少分支和决策?

    • 线性流程:低复杂性(1-3)
    • 一些分支:中复杂性(4-7)
    • 复杂决策树:高复杂性(8-10)

    2.1.4 领域知识:所需要的知识有多么专业?

    • 通用知识:低复杂性(1-3)
    • 一些专业知识:中复杂性(4-7)
    • 在多个领域具有深厚的专业知识:高复杂性(8-10)

    2.2 评估精确性要求

    通过考虑以下因素,在 1-10 的范围内对精确性要求进行评分(打完分后,计算平均得分作为总体的精确性要求得分):
    2.2.1 必须输出内容的结构化程度如何?

    • 自由形式的文本输出:低精确性(1-3)
    • 半结构化输出:中精确性(4-7)
    • 严格结构化输出(JSON、XML):高精确性(8-10)

    2.2.2 精确度要求:事实的准确性有多么重要?

    • 创意类内容:低精确性(1-3)
    • 信息类内容:中精确性(4-7)
    • 关键类信息:高精确性(8-10)

    2.2.3 可再现性要求:各批次输出的结果需要有多么强的一致性要求?

    • 能够接收可变性:低精确性(1-3)
    • 有一定的一致性要求:中精确性(4-7)
    • 需要精确的可再现性:高精确性(8-10)

    2.2.4 错误容忍度:错误结果的影响是什么?

    • 影响不大:低精确性(1-3)
    • 中度影响:中精确性(4-7)
    • 影响很大:高精确性(5-10)

    2.3 映射到 “Complexity vs. Precision” 矩阵

    根据上面两个步骤得到的总体复杂性得分、精确性要求得分,映射到对应的四象限的某一个象限,得出适合的当前要构建的应用的选型方法:

    • 低复杂性 (1-4), 低精确性 (1-4):Simple Crews
    • 低复杂性 (1-4), 高精确性 (5-10):Flows with direct LLM calls
    • 高复杂性 (5-10), 低精确性 (1-4):Complex Crews
    • 高复杂性 (5-10), 高精确性 (5-10):Flows orchestrating Crews

    2.4 需要考虑的其他因素

    • 开发时间:Crew 一般用于快速构建原型
    • 运维要求:Flow 能够更好地支持长期可维护性
    • 团队专业性:考虑团队对其他方法的熟悉程度
    • 可扩展性要求:Flow 能够更好地支持扩展以适应复杂应用场景
    • 集成要求:考虑解决方案与现有系统怎样进行集成

    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 的最佳场景

    • 需要更智能的协作:具有不同专业化能力的多个 Agent 共同协作完成任务
    • 待解决的问题更依赖思维涌现:解决方案受益于不同的视角和方法
    • 具有创造性或分析性能力的任务:工作涉及研究、内容创建或分析
    • 强调灵活性胜过严格的结构:Workflow 受益于 Agent 的自主性
    • 输出结构具有一定的灵活性:能够接受输出结构有一定的变化

    3.4 使用 Flow 的最佳场景

    • 需要对任务执行做精确控制:Workflow 需要精确排序和状态管理
    • 应用具有复杂的状态:需要跨多个步骤对状态进行维护与转换
    • 需要结构化的、可预测的输出:应用程序要求一致性、格式化的结果
    • Workflow 包含条件逻辑:对于不同的中间结果需要有不同的执行路径
    • 需要将 AI 与过程性代码相结合:方案要求兼具 AI 能力与传统编程能力

    3.5 混合使用 Crew 与 Flow 的最佳场景

    • 复杂多阶段处理场景:使用 Flow 编排整体流程,使用 Crew 实现复杂子任务
    • 具有创意性和结构性要求的场景:使用 Crew 实现创意性的部分,使用 Flow 实现结构化处理的部分
    • 企业级 AI 应用场景:使用 Flow 管理状态和处理流程,使用 Crew 实现具有专业性要求的任务

    4. 总结

    使用 CrewAI 框架构建 AI Agent 应用程序,需要在 Crew 和 Flow 之间进行选择,或者将它们组合在一起来使用,这样一个关键的架构决策过程,能够影响到我们使用 CrewAI 应用程序的有效性、可维护性和可扩展性。通过对对应场景的复杂性和精确性进行评估,能够更好地做出与特定要求相匹配的明智决策。
    一个推荐的方法是,随着需求的不断细化而不断调整我们的决策,以满足不同阶段的不同需要。我们可以从最简单的解决方案开始,随着经验的积累和需求的明确,不断地调整和完善架构,最终达到我们期望实现的业务目标或系统目标。

    5. 参考链接

    • Evaluating Use Cases for CrewAI
    • https://docs.crewai.com/concepts/crews
    • https://docs.crewai.com/concepts/flows


沪ICP备19023445号-2号
友情链接