1. 概述

CrewAI 是一个以角色驱动为核心设计理念的多Agent协作框架。 它让你像组建一个真实团队一样定义Agent:每个Agent有明确的角色(Role)、目标(Goal)、背景故事(Backstory), 然后按照设定的流程(Process)协作完成任务。

💡 CrewAI 设计哲学

"组建你的AI梦之队" —— 为每个Agent赋予鲜明的角色特征和使命,让Agent像人类团队成员一样各司其职、高效协作。

2. 核心概念

2.1 Agent(角色驱动)

CrewAI的Agent定义非常直观,围绕角色展开:

🎭 Agent定义要素

属性说明示例
roleAgent的专业角色"Senior Data Analyst"
goalAgent的核心目标"Extract actionable insights from data"
backstory角色背景故事(增强行为一致性)"You've worked at a top consulting firm..."
toolsAgent可用的工具列表[search_tool, calculator_tool]
allow_delegation是否允许委派任务给其他AgentTrue / False
verbose是否输出详细执行日志True / False

2.2 Task(任务)

Task定义了需要完成的具体工作。每个Task可以指定:

  • description:任务的详细描述
  • expected_output:期望的输出格式和内容
  • agent:负责执行的Agent
  • context:依赖的前置任务(自动建立执行顺序)
  • async_execution:是否异步并行执行

2.3 Crew(团队)

Crew 是 Agent 和 Task 的容器,定义了协作流程:

🔄 Crew 协作流程类型

流程类型说明适用场景
Sequential(顺序) 按Task定义的先后顺序依次执行 线性流水线任务,如:研究→分析→撰写报告
Hierarchical(层级) 由一个Manager Agent分配和监督任务 复杂项目,需要统一协调和动态分配
自定义流程 通过 @listen 装饰器实现自定义执行流 特殊的协作模式,超出内置流程能力

3. 工具集成

CrewAI内置了丰富的工具生态系统,也支持LangChain工具和自定义工具:

🔧 内置工具

SerperDevTool(搜索)、ScrapeWebsiteTool(网页抓取)、FileReadTool、DirectoryReadTool、CodeDocsSearchTool 等

🔗 LangChain工具

直接使用LangChain生态中的任何Tool,无缝集成

🛠️ 自定义工具

继承 BaseTool,实现 _run() 方法即可创建自己的工具

4. CrewAI vs AutoGen 对比

维度CrewAIAutoGen
设计理念角色驱动,团队分工对话驱动,自由交流
流程控制预定义顺序/层级动态路由,自由选择speaker
学习曲线低,概念直觉中,需理解对话机制
代码执行依赖外部工具内置代码执行沙箱
确定性高(预定义流程)低(动态决策)
灵活性中(流程固定)高(对话式动态适应)
生态规模快速增长中微软背靠,企业级支持
典型场景内容创作、研究分析代码生成、自动化开发
🎯 选型建议
  • 需要可控、可预测的流程,选 CrewAI
  • 需要灵活的多Agent协商和动态适应,选 AutoGen
  • 两者可以互补:CrewAI 管理整体流程,AutoGen 处理需要灵活协商的子任务

5. 适用场景

✅ 适合

  • 内容创作流水线(研究→撰写→审核→发布)
  • 市场调研与竞争分析
  • 需要明确角色分工的团队协作
  • 快速原型验证多Agent方案
  • 对确定性要求较高的任务流程

❌ 不适合

  • 需要动态协商的开放式任务(用AutoGen)
  • 需要代码自主执行与调试的场景(用AutoGen)
  • 超大规模Agent集群(层级Manager有瓶颈)
  • 对实时性要求极高的系统