目录
[📍 定位](#📍 定位)
[🎯 选型指南](#🎯 选型指南)
[🏗️ 原理与架构](#🏗️ 原理与架构)
[📐 双层架构](#📐 双层架构)
[👥 Crew:Agent 团队](#👥 Crew:Agent 团队)
[🌊 Flow:生产级工作流](#🌊 Flow:生产级工作流)
[🎨 设计原则](#🎨 设计原则)
[💎 价值](#💎 价值)
[🧩 解决"单 Agent 天花板"](#🧩 解决“单 Agent 天花板”)
[🚀 从原型到生产](#🚀 从原型到生产)
[🌍 生态](#🌍 生态)
[🚀 快速入门](#🚀 快速入门)
[🧪 最小可运行 Demo](#🧪 最小可运行 Demo)
[💡 运行后你会看到](#💡 运行后你会看到)
[🎉 总结](#🎉 总结)
📍 定位
CrewAI 是一个编排多 Agent 协作的 Python 框架
核心理念:让 AI 像真实团队一样工作 👥------有角色、有分工、有流程,它不是"又一个 LLM 调用库",而是 Agent 团队的运行时
|---------|------------------------------------|
| 概念 | 含义 |
| Agent | 有 role、goal、backstory 的 LLM 实例 |
| Task | 有描述、预期输出、依赖关系的任务单元 |
| Crew | Agent + Task 的容器,控制执行策略 |
| Process | sequential(串行)或 hierarchical(层级管理) |
| Flow | 事件驱动编排,支持条件分支、状态管理 |
🎯 选型指南

✅ 选 CrewAI,如果你:
-
想要快速上手,YAML 配置 Agent,10 行代码跑起来 ⚡
-
需要明确的角色分工和任务流水线
-
需要生产级事件驱动工作流,且不想手写底层图结构
-
团队有非技术人员需要参与 Agent 行为调整
✅ 选 AutoGen,如果你:
-
需要人类深度参与 Agent 的决策过程(医疗、法律、金融)🏥
-
偏好对话式、讨论式的 Agent 协作(头脑风暴、辩论)🗣️
-
在微软技术栈(.NET / Azure)上构建
✅ 选 LangGraph,如果你:
-
需要极其精细的流程控制(每个分支、每个条件、每个循环)🎯
-
需要原生 checkpointing 和时间旅行调试
-
已经在 LangChain 生态中深度使用
-
愿意为控制力付出更多代码量的代价 💪
🏗️ 原理与架构
📐 双层架构
CrewAI 的架构分为两层:

Crew 是内层容器,负责 Agent 团队内部的任务分配和执行。
Flows 是外层编排器,负责多个 Crew 之间的调度、条件跳转和状态传递。
👥 Crew:Agent 团队
一个 Crew 由五个要素构成:

-
Agent :定义
role(角色)、goal(目标)、backstory(背景故事)。LLM 根据这三要素理解"我是谁、我要做什么",效果远好于硬编码 prompt 🧠 -
Task :定义
description(做什么)、expected_output(产出什么)、agent(谁执行),可选context、human_input(人类审批) -
Process:Sequential(顺序执行,前一个输出自动成为下一个的上下文)或 Hierarchical(自动创建 Manager Agent 负责委派和验证)
-
Tool:Agent 可调用的外部能力(搜索、代码执行、API 等)🔧
-
Memory:短期记忆(当前会话)、长期记忆(跨会话)、实体记忆(关键信息存储)💾
核心执行流程:
kickoff() → Process 决定顺序 → Agent 接收任务 → LLM 推理 + Tool 执行 → 结果传给下一个 Agent → 所有任务完成,返回最终输出 ✔️
🌊 Flow:生产级工作流
Crew 适合"智能协作"场景,但现实业务往往需要精确的控制流。Flow 的核心原语:
|-------------------------|-----------------|
| 原语 | 作用 |
| @start() | 入口函数 🚪 |
| @listen(step) | 监听某步骤完成,串行执行 👂 |
| @router(step) | 条件路由,根据返回值分支 🔀 |
| @listen(or_(s1, s2)) | 任一条件触发 ⚡ |
| @listen(and_(s1, s2)) | 所有条件满足才触发 🔗 |
状态管理通过 Pydantic BaseModel 实现,类型安全:
python
class AnalysisState(BaseModel):
sentiment: str = "neutral"
confidence: float = 0.0
recommendations: list = []
Flow 和 Crew 不是互斥的。典型用法:Flow 控制整体业务流程("先分析、再判断、再执行"),每个关键步骤内部用 Crew 完成需要智能协作的复杂子任务 🔄。
🎨 设计原则
-
语义化角色 :用
role/goal/backstory定义 Agent,而非 prompt 模板。LLM 自己理解"我是谁",效果优于硬编码 🌟 -
YAML 配置驱动:Agent 和 Task 用 YAML 管理,与 Python 代码解耦,非技术人员可参与调整 📄
-
渐进式复杂度:5 行代码跑一个简单 Crew,10 行加 Flow 做条件路由,不加 Flow 也能直接用于生产 🚀
💎 价值
🧩 解决"单 Agent 天花板"

单个 LLM 的能力边界明确:上下文窗口有限、推理能力有限、无法并行。CrewAI 通过多 Agent 协作突破:
-
上下文不膨胀:每个 Agent 只看自己的任务和必要上下文
-
角色专业化:研究员只做研究、写手只写报告、审核员只做审核
-
并行执行 :通过 Flow 的
or_触发,多个 Agent 可同时工作 ⚡
🚀 从原型到生产
多数 AI 框架原型好用、生产吃力。CrewAI 提供了平滑路径:
Flow 用于精确控制(确定性业务逻辑),Crew 用于智能协作(需要 AI 判断的创意工作),同一套代码从实验到部署 📈。
🌍 生态
-
10万+ 认证开发者,DeepLearning.AI 两门官方课程 🎓
-
官方 AI Coding Skills(为 Claude Code、Cursor 等提供结构化指令)
-
商业版 AMP Suite 提供 Tracing、控制平面、企业级安全与合规 🔐
🚀 快速入门
bash
uv pip install crewai
crewai create crew my-first-crew
生成目录:agents.yaml(Agent 定义)、tasks.yaml(Task 定义)、crew.py(组装)、main.py(入口)📂。
📄 agents.yaml:
python
researcher:
role: "{topic} Senior Data Researcher"
goal: "Uncover cutting-edge developments in {topic}"
backstory: "You're a seasoned researcher..."
📄 tasks.yaml:
python
research_task:
description: "Conduct thorough research about {topic}"
expected_output: "A list with 10 bullet points about {topic}"
agent: researcher
▶️ 运行:
python
MyFirstCrew().crew().kickoff(inputs={'topic': 'AI Agents'})
🧪 最小可运行 Demo
想立刻感受一下 CrewAI 的协作魅力吗?下面这个例子会帮你快速跑通"研究员 + 分析师"的经典组合:一个 Agent 负责搜索最新情报,另一个负责整理成报告,全程自动协作 ✨
python
import os
from crewai import Agent, Task, Crew, Process
from crewai_tools import SerperDevTool
# 🔍 1. 准备搜索工具(如不需要联网可删除此工具及相关引用)
search_tool = SerperDevTool()
# 🤖 2. 定义 Agent ------ 像组建一支虚拟梦之队
researcher = Agent(
role='高级数据研究员',
goal='发掘 AI Agents 领域的前沿进展',
backstory='你是一位经验丰富的研究员,擅长从海量信息中提炼出关于 AI Agents 的最新、最相关的洞察。',
tools=[search_tool], # 赋予研究员联网搜索能力
verbose=True # 打印详细思考过程
)
analyst = Agent(
role='报告分析师',
goal='根据研究员的数据,创建详细、清晰的总结报告',
backstory='你是一位严谨的分析师,眼光敏锐,能把复杂的数据转化为清晰易懂的 Markdown 报告。',
verbose=True
)
# 📋 3. 定义任务 ------ 告诉每位 Agent 具体要做什么
research_task = Task(
description='对 AI Agents 在 2025 年的最新发展进行深入研究,找出 5 个最关键的技术突破。',
expected_output='一份包含 5 个关键点的研究清单。',
agent=researcher # 研究员执行
)
report_task = Task(
description='根据研究清单,将其扩展为一份完整的 Markdown 报告。',
expected_output='一份格式化的 Markdown 报告,包含标题、各小节和项目符号。',
agent=analyst, # 分析师执行
output_file='report.md' # 📄 报告自动保存到本地文件
)
# ⚙️ 4. 组建 Crew 并设定执行流程
ai_crew = Crew(
agents=[researcher, analyst],
tasks=[research_task, report_task],
process=Process.sequential, # 🔁 串行执行:先研究,后报告
verbose=True # 打印整个流程的日志
)
# 🚀 5. 一键启动!
result = ai_crew.kickoff()
print("######################")
print("🎉 最终报告生成完毕:")
print(result)
💡 运行后你会看到
-
🧠 终端中会实时打印两个 Agent 的思考、搜索及写作过程
-
📄 项目目录下会生成
report.md,内容即分析师撰写的完整报告 -
🎯 控制台最后输出报告全文,方便直接预览
🎉 总结
CrewAI 的核心价值:角色化、协作化、工程化。
-
🎭 角色化:不是让 AI 做"万能助手",而是定义专业角色,各司其职
-
🤝 协作化:Agent 之间自动传递上下文、委派任务、验证结果
-
⚙️ 工程化:YAML 配置 → Flow 编排 → 企业级控制平面,覆盖原型到生产全链路
当 AI Agent 能力越来越强,真正稀缺的不是"能做什么",而是"如何组织它们高效协作"。
CrewAI 的答案:像管理一个优秀的团队一样管理你的 AI Agent 👥✨。