CrewAI – 开源多智能体协作框架,AI Agent编排平台使用教程:从入门到精通
从选型到落地的可执行指南,适合个人与团队快速上手。
教程正文
从选型到落地的实战步骤。
一、CrewAI 是什么?
CrewAI 是一个轻量级、开源的多智能体协作框架,专为 AI Agent 的编排与任务分配而设计。它允许你将多个具有独立角色(如研究员、写手、审查员)的 AI Agent 组织成一个“团队”,通过定义角色、目标、任务和工具,让它们协同完成复杂工作流。你无需手写复杂的异步代码或管理底层通信,CrewAI 会自动处理 Agent 之间的对话和任务委派。

二、快速开始:安装与第一个 Crew
1. 安装 Python 包
确保你已安装 Python 3.10 及以上版本。使用 pip 安装:
pip install crewai
如需使用高级特性(如嵌入模型),可安装可选依赖:
pip install crewai[embedchain]
2. 准备 API Key
CrewAI 默认使用 OpenAI 模型,需要设置环境变量 OPENAI_API_KEY。也可以在代码中直接传入 llm 参数(例如使用 Ollama 本地模型)。
export OPENAI_API_KEY="sk-xxxxxxxx"
3. 编写第一个 Crew
创建一个 Python 文件 first_crew.py:
from crewai import Agent, Task, Crew, Process
# 定义 Agent
researcher = Agent(
role='高级研究员',
goal='发现关于AI Agent的最新趋势',
backstory='你是一位技术分析师,擅长从海量信息中提炼洞见',
verbose=True,
allow_delegation=False
)
writer = Agent(
role='科技博主',
goal='将研究结果写成一篇通俗易懂的博客文章',
backstory='你是一位拥有10万粉丝的技术博主,擅长用故事化语言解释复杂概念',
verbose=True,
allow_delegation=True
)
# 定义 Task
task1 = Task(
description='搜索并整理2025年AI Agent的五个重要趋势',
expected_output='一个包含五个趋势的列表,每个趋势附带简要说明',
agent=researcher
)
task2 = Task(
description='基于研究结果撰写一篇500字的博客文章,标题要吸引人',
expected_output='完整的博客文章Markdown格式',
agent=writer
)
# 组装 Crew
crew = Crew(
agents=[researcher, writer],
tasks=[task1, task2],
verbose=2, # 输出详细信息
process=Process.sequential # 顺序执行
)
# 启动
result = crew.kickoff()
print('最终输出:', result)
运行脚本:
python first_crew.py
你会看到 Agent 之间在终端中对话,最终输出博客文章。

三、核心概念详解
3.1 Agent(智能体)
每个 Agent 需要定义以下属性:
role:角色名称,影响 LLM 的行为风格goal:具体目标backstory:背景故事,进一步塑造角色allow_delegation:是否允许将子任务委派给其他 Agent(需配合 Manager Agent)tools:可以调用的工具,如搜索、计算、API 调用等(见下节)
3.2 Task(任务)
任务包含清晰的描述和预期输出格式。任务可以指定 agent(强制分配),也可以留空让系统自动分配。任务支持 context 参数传递历史信息。
3.3 Crew(团队)与 Process(流程)
Crew 管理多个 Agent 和 Task。Process 有几种模式:
Process.sequential:顺序执行,每个 Agent 依次完成自己的任务Process.hierarchical:层级模式,需要一个 Manager Agent 来分配和协调任务Process.plane:自定义工作流(需更高级的编排)
四、进阶:使用工具与自定义 LLM
4.1 内置工具
CrewAI 自带一系列工具,例如 SerperDevTool(Google 搜索)、ScrapeWebsiteTool(网页抓取)、FileReadTool、PDFSearchTool 等。安装工具包:
pip install crewai[tools]
示例:让研究员使用搜索工具获取实时数据。
from crewai_tools import SerperDevTool
search_tool = SerperDevTool()
researcher = Agent(
...
tools=[search_tool]
)
4.2 自定义工具
你可以通过继承 Tool 基类构建自己的工具。比如一个计算器工具:
from crewai.tools import tool
@tool('Calculator')
def calculator(expression: str) -> str:
"""计算数学表达式,例如 '2+3*4'"""
try:
return str(eval(expression))
except:
return '表达式错误'
# 在 Agent 中使用
agent = Agent(
...
tools=[calculator]
)
4.3 使用本地模型(Ollama)
如果想完全离线运行,可以搭配 Ollama:
from langchain_community.llms import Ollama
llm = Ollama(model='llama3')
agent = Agent(
...
llm=llm
)
注意:本地模型可能不适合复杂任务,建议先用 GPT-4 测试逻辑。
五、实战案例:自动生成竞品分析报告
目标:每周自动生成一份行业竞品分析简报,包含市场动态、功能对比、趋势预测。
步骤:
- 定义 3 个 Agent:
- DataCollector:使用搜索工具收集竞品新闻和更新
- Analyzer:分析收集到的数据,生成对比表格和关键发现
- ReportWriter:将分析结果转化为结构化报告(含图表占位)
- 创建 3 个 Task,分别指派给对应 Agent
- 设置 Crew 的 Process 为
sequential,确保数据先收集再分析最后撰写 - 使用
crew.kickoff()运行
from crewai import Agent, Task, Crew, Process
from crewai_tools import SerperDevTool, ScrapeWebsiteTool
search_tool = SerperDevTool()
scrape_tool = ScrapeWebsiteTool()
# Agent 定义略…
# Task 定义略…
crew = Crew(
agents=[collector, analyzer, writer],
tasks=[task_collect, task_analyze, task_write],
process=Process.sequential,
verbose=True
)
result = crew.kickoff()
# 输出结果保存为文件
with open('report.md', 'w') as f:
f.write(result)

六、常见问题与技巧(Tips)
- Tip 1: 角色设定越详细,输出质量越高。 给 Agent 丰富的 backstory 和明确的约束(如“只能使用中文回复”)。
- Tip 2: 使用
verbose=2调试。 可以查看每个 Agent 的思考过程和工具调用。 - Tip 3: 任务描述中明确
expected_output。 比如“输出 JSON 格式”或“输出 Markdown 列表”,能减少幻觉。 - Tip 4: 处理大任务时,拆分成多个小任务。 一个 Agent 只干一件事,让大模型聚焦。
- Tip 5: 如需并行处理,使用
Process.plane并自定义 DAG。 或者用多个 Crew 分别启动。 - Tip 6: 注意 Token 消耗。 多轮对话会大量消耗上下文窗口,建议定期清空或使用
max_tokens限制。
七、总结
CrewAI 让多智能体协作变得简单易懂。只需定义角色、分配任务,就能构建出强大的自动化工作流。从个人博客自动化到企业级市场分析,CrewAI 都能胜任。下一步可以尝试集成 LangChain 的更多工具,或接入自己的数据库 API。开始动手吧!
参考资源: 官方文档 https://docs.crewai.com | GitHub https://github.com/joaomdmoura/crewai
相关教程推荐
继续学习相关主题。
Spline AI(斯普林AI 3D设计助手)深度评测:从文本到3D,开启零门槛三维创意时代使用教程:从入门到精通
从注册到导出,手把手教你用Spline AI通过文字描述生成3D模型,包含提示词技巧、材质调整、动画交互等实用操作,零基础也能快速上手。
Bolt.new(博尔特)AI全栈应用生成器深度评测:从自然语言到完整Web应用的革命性工具使用教程:从入门到精通
Bolt.new 是 StackBlitz 推出的 AI 全栈应用生成器,通过自然语言即可生成完整 Web 应用。本文从注册到部署,手把手教你用提示词构建真实项目,附高级技巧和常见问题。
Google Vids(谷歌Vids)深度评测:一键生成AI营销视频的云端神器使用教程:从入门到精通
Google Vids深度评测:从入门到精通。本文详解AI一键生成营销视频的步骤、高级技巧与避坑指南,适合零基础用户快速掌握云端视频制作。
Rows AI(行智能表格)深度评测:AI驱动的智能电子表格与数据分析平台使用教程:从入门到精通
本教程从注册到高级功能,详细讲解Rows AI智能表格的使用方法,包括AI公式生成、数据分析、可视化和自动化,适合初学者快速上手。