CrewAI:构建 LLM 多智能体工作流的框架 2026 版
CrewAI 让你为 LLM 创建有序的智能体团队。从角色定义到任务规划到工具集成。2026 版完整实战指南。
- ⭐ 24000
- Python
- MIT
- 更新于 2026-05-18
什么是 CrewAI? #
CrewAI 是为 LLM 创建「有序智能体团队」的框架。把复杂任务拆解给不同专 Expertise 的 Agent。
核心概念 #
Agent(智能体) #
from crewai import Agent
researcher = Agent(
role='科技研究员',
goal='研究用户最新的 AI 趋势',
backstory='你是一位专注于前沿技术的研究员',
verbose=True
)
Task(任务) #
from crewai import Task
task = Task(
description='分析 Ray 框架的最新应用场景',
agent=researcher,
expected_output='200字摘要'
)
Crew(舰队) #
from crewai import Crew
crew = Crew(
agents=[researcher, writer],
tasks=[task1, task2],
verbose=True
)
result = crew.kickoff()
架构组件 #
工具集成(Tools) #
from crewai.tools import tool
@tool("Search Tool")
def search_tool(query: str) -> str:
return search_web(query)
researcher = Agent(
role='研究员',
tools=[search_tool],
...
)
角色配置 #
| 组件 | 说明 |
|---|---|
| role | 智能体角色 |
| goal | 目标 |
| backstory | 背景故事 |
| verbose | 输出详细程度 |
| tools | 可用工具 |
| memory | 是否记忆 |
| cache | 任务缓存 |
多智能体协作 #
顺序工作流程 #
crew = Crew(
agents=[planner, researcher, writer, reviewer],
tasks=[plan_task, research_task, write_task, review_task],
process=Process.sequential # 默认顺序
)
并行工作流程 #
crew = Crew(
agents=[analyst1, analyst2],
tasks=[task1, task2],
process=Process.hierarchical # 树形协作
)
工具集成 #
内置工具 #
- Search:SerpApi、DuckDuckGo
- Code:Python REPL、文件读取
- Database:SQL、MongoDB
- API:REST、GraphQL
- File:PDF、Word、Excel
自定义工具 #
from crewai.tools import tool
@tool("Custom Calculation")
def calculate(input_data: str) -> str:
"""执行自定义计算"""
return eval(input_data)
实际案例 #
市场调研舰队 #
# 1. 规划师
planner = Agent(role='项目规划师', goal='规划调研计划')
# 2. 数据收集
collector = Agent(role='数据收集员', goal='收集目标市场数据')
collector.add_tool(web_search)
collector.add_tool(api_call)
# 3. 分析师
analyzer = Agent(role='数据分析师', goal='深度分析数据')
analyzer.add_tool(calculation)
# 4. 撰稿人
writer = Agent(role='撰稿人', goal='产出报告')
writer.add_tool(document_reader)
crew = Crew(agents=[planner, collector, analyzer, writer])
result = crew.kickoff()
软件开发舰队 #
coder = Agent(role='程序员', goal='编写代码')
tester = Agent(role='测试工程师', goal='编写测试')
reviewer = Agent(role='代码审查员', goal='审查代码')
coding_task = Task(description='实现用户登录功能')
testing_task = Task(description='编写登录测试用例')
review_task = Task(description='审查代码质量')
crew = Crew(agents=[coder, tester, reviewer])
配置选项 #
语言模型 #
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(model='gpt-4', temperature=0.7)
agent = Agent(
llm=llm,
...
)
记忆组件 #
from crewai.memory import LongTermMemory, ShortTermMemory
agent = Agent(
long_term_memory=LongTermMemory(),
short_term_memory=ShortTermMemory(),
...
)
性能优化 #
- Token 控制:
max_tokens限制输出长度 - 温度调节:
temperature=0保证确定性 - 缓存:
cache=True重复任务复用 - 批处理:合并小任务批量执行
部署 #
本地部署 #
pip install crewai
export OPENAI_API_KEY=sk-xxx
python crew.py
云端部署 #
FROM python:3.10
RUN pip install crewai
CMD ["python", "main.py"]
优化服务器 #
建议 4GB+ RAM,GPU 推荐用于 OpenAI 模型。
常见问题 #
Q: CrewAI 需要哪些 API Key?
答:至少一个 LLM 提供商(OpenAI、Anthropic)。某些工具需要额外的搜索或计算 API。
Q: 多智能体会产生竞争吗?
答:不会。任务分配由框架调度,Agent 间通过共享记忆协作。
总结 #
CrewAI 让「AI 超级工程师团队」落地。按「人分工」思路设计 Agent,框架自动协调。
参考:crewai.ai 文档、GitHub 示例 更新:2026-05-18
💬 留言讨论