CrewAI – 开源多智能体协作框架,AI Agent编排平台使用教程:从入门到精通

从选型到落地的可执行指南,适合个人与团队快速上手。

教程正文

从选型到落地的实战步骤。

一、CrewAI 是什么?

CrewAI 是一个轻量级、开源的多智能体协作框架,专为 AI Agent 的编排与任务分配而设计。它允许你将多个具有独立角色(如研究员、写手、审查员)的 AI Agent 组织成一个“团队”,通过定义角色、目标、任务和工具,让它们协同完成复杂工作流。你无需手写复杂的异步代码或管理底层通信,CrewAI 会自动处理 Agent 之间的对话和任务委派。

AI机械手网络
AI技术教程

二、快速开始:安装与第一个 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 之间在终端中对话,最终输出博客文章。

AI辅助创作
AI辅助教程

三、核心概念详解

3.1 Agent(智能体)

每个 Agent 需要定义以下属性:

3.2 Task(任务)

任务包含清晰的描述和预期输出格式。任务可以指定 agent(强制分配),也可以留空让系统自动分配。任务支持 context 参数传递历史信息。

3.3 Crew(团队)与 Process(流程)

Crew 管理多个 Agent 和 Task。Process 有几种模式:

四、进阶:使用工具与自定义 LLM

4.1 内置工具

CrewAI 自带一系列工具,例如 SerperDevTool(Google 搜索)、ScrapeWebsiteTool(网页抓取)、FileReadToolPDFSearchTool 等。安装工具包:

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 测试逻辑。

五、实战案例:自动生成竞品分析报告

目标:每周自动生成一份行业竞品分析简报,包含市场动态、功能对比、趋势预测。

步骤:

  1. 定义 3 个 Agent:
    • DataCollector:使用搜索工具收集竞品新闻和更新
    • Analyzer:分析收集到的数据,生成对比表格和关键发现
    • ReportWriter:将分析结果转化为结构化报告(含图表占位)
  2. 创建 3 个 Task,分别指派给对应 Agent
  3. 设置 Crew 的 Process 为 sequential,确保数据先收集再分析最后撰写
  4. 使用 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)
AI编程代码
AI教程

六、常见问题与技巧(Tips)

七、总结

CrewAI 让多智能体协作变得简单易懂。只需定义角色、分配任务,就能构建出强大的自动化工作流。从个人博客自动化到企业级市场分析,CrewAI 都能胜任。下一步可以尝试集成 LangChain 的更多工具,或接入自己的数据库 API。开始动手吧!

参考资源: 官方文档 https://docs.crewai.com | GitHub https://github.com/joaomdmoura/crewai

相关教程推荐

继续学习相关主题。