CrewAI是一个强大的多智能体框架,让你能像组建团队一样,指派不同的AI角色协作完成复杂任务。这份入门指南会帮你理清核心概念,并提供一个可以直接上手的实践路径。

🧱 CrewAI 四大核心组件

理解这四个基本概念,就能掌握CrewAI的核心逻辑。

组件

是什么

举个例子

Agent (智能体)

团队中的具体"员工",拥有明确的角色目标背景故事

"高级研究员":目标"发现最新AI趋势"

Task (任务)

指派给一个Agent去完成的具体工作,包含清晰描述和预期产出。

"AI趋势调研":产出10个要点的调研报告

Tool (工具)

为Agent配备的"超能力",使其能执行具体操作,如搜索、代码运行等。

​SerperDevTool​​:用于进行网络搜索的工具

Crew (团队)

统筹调度AgentsTasksProcess的管理层,是执行单元。

包含研究员、分析师等多个Agent的团队

Process (流程)

定义Agents如何协作和执行任务的策略。

顺序(sequential)层级(hierarchical) 流程

💻 快速上手实战:从零到一搭建AI研究团队

接下来,我们通过一个实际的AI研究项目来跑通整个流程。

1. 准备工作
  • Python环境:确保已安装Python 3.10至3.13版本。
  • API密钥:注册OpenAI等大模型服务商并获取API密钥。如使用网络搜索功能,需准备Serper.dev的API密钥。
2. 安装与创建项目

CrewAI推荐使用 ​​uv​​ 作为包管理工具。用以下命令安装​​uv​​、CrewAI CLI,并创建一个名为 ​​latest-ai-development​​ 的新项目。

# 1. 安装 uv 包管理器 (macOS/Linux)
curl -LsSf https://astral.sh/uv/install.sh | sh

# 2. 安装 CrewAI CLI
uv tool install crewai

# 3. 创建新项目,CLI会引导你选择LLM提供商(如OpenAI)并输入API Key
crewai create crew latest-ai-development

# 4. 进入项目目录
cd latest-ai-development
3. 配置智能体

在 ​​src/latest_ai_development/config/agents.yaml​​ 文件中,定义两个智能体的角色、目标和背景故事。你还可以直接为他们指定工具。

# agents.yaml
researcher:
  role: >
    {topic}高级数据研究员
  goal: >
    发现{topic}领域的前沿发展
  backstory: >
    你是一位经验丰富的研究员,擅长发现{topic}领域的最新发展。
    你以能够找到最相关信息并以清晰简洁的方式呈现而闻名。
  tools:
     - serper_dev_tool  # 为研究员配备搜索工具

reporting_analyst:
  role: >
    {topic}报告分析师
  goal: >
    基于{topic}数据分析和研究发现创建详细报告
  backstory: >
    你是一位细致入微的分析师,对细节有着敏锐的洞察力。
    你擅长将复杂数据转化为清晰简洁的报告。
4. 定义任务

在 ​​src/latest_ai_development/config/tasks.yaml​​ 文件中,为每个智能体分配一个具体任务,并定义期望的输出格式。

# tasks.yaml
research_task:
  description: >
    对{topic}进行深入研究。确保找到所有有趣且相关的信息,考虑到当前年份是2025年。
  expected_output: >
    一个包含10个关于{topic}最相关信息的要点列表。
  agent: researcher  # 指定此任务由researcher执行

reporting_task:
  description: >
    审查获得的内容,并将每个主题扩展为报告的完整部分。
    确保报告详细且包含所有相关信息。
  expected_output: >
    一份完整的报告,包含主要主题,每个主题都有完整的信息部分。
    以不带'```'的markdown格式呈现。
  agent: reporting_analyst  # 指定此任务由reporting_analyst执行
  output_file: report.md    # 将报告输出到文件
5. 编排团队

在 ​​src/latest_ai_development/crew.py​​ 中,将定义好的智能体和任务组合成一个Crew,并设置执行流程为顺序执行(​​Process.sequential​​)。

# crew.py
from crewai import Agent, Crew, Process, Task
from crewai.project import CrewBase, agent, crew, task
from crewai_tools import SerperDevTool

@CrewBase
class LatestAiDevelopmentCrew():
    """最新AI发展研究团队"""
    agents_config = 'config/agents.yaml'
    tasks_config = 'config/tasks.yaml'

    @agent
    def researcher(self) -> Agent:
        return Agent(
            config=self.agents_config['researcher'],
            verbose=True,
            tools=[SerperDevTool()]  # 实例化并使用工具
        )

    @agent
    def reporting_analyst(self) -> Agent:
        return Agent(
            config=self.agents_config['reporting_analyst'],
            verbose=True
        )

    @task
    def research_task(self) -> Task:
        return Task(config=self.tasks_config['research_task'])

    @task
    def reporting_task(self) -> Task:
        return Task(config=self.tasks_config['reporting_task'])

    @crew
    def crew(self) -> Crew:
        """创建最新AI发展研究团队"""
        return Crew(
            agents=self.agents,
            tasks=self.tasks,
            process=Process.sequential,  # 设置流程为顺序执行
            verbose=True,
        )
6. 运行并验证

一切准备就绪,在项目根目录下运行命令即可启动你的AI团队。

crewai run

系统会提示你输入研究主题(​​topic​​),比如"量子计算"。随后,你将在控制台看到"研究员"进行搜索,然后"分析师"整理报告的完整协作过程。最终的报告将保存在项目根目录的 ​​report.md​​ 文件中。

⚙️ 核心组件进阶指南

掌握了基础之后,你可以通过以下配置,让AI团队更加强大和可控。

1. Agent:定制团队成员

除了​​role​​、​​goal​​和​​backstory​​,Agent还有许多高级配置选项,可以精细化控制其行为。

参数

作用

示例

​llm​

可为每个Agent指定不同的大语言模型。

​llm = "gpt-4-turbo"​

​tools​

给Agent赋予具体能力,如搜索、计算、调用API等。

​tools = [SerperDevTool()]​

​allow_delegation​

允许Agent将任务委派给其他Agent。

​allow_delegation = True​

​max_iter​

设置Agent在给出最终答案前的最大推理步数,防止陷入死循环。

​max_iter = 15​

​verbose​

开启详细日志,有助于调试。

​verbose = True​

2. Process:定义团队协作模式

CrewAI主要支持两种协作模式。

  • Sequential Process (顺序流程):任务按列表顺序执行,下一个任务可依赖上一个任务的输出,适合有明确上下游依赖的工作流。
  • Hierarchical Process (层级流程):引入一个"管理Agent",由它负责规划、分配和验证任务,模拟现实世界中的管理模式。
3. Task:设计清晰的工作指令

一个精心设计的任务,能让Agent的目标更明确。

  • description​:清晰、具体地描述任务要求,可以包含步骤提示。
  • expected_output​:明确输出格式(如Markdown、JSON列表),有助于提升结果质量。
  • agent​:将任务分配给某个特定的Agent。
  • context​:通过设置任务间的依赖关系,实现工作流的串联。
  • output_file​:直接将结果保存到指定文件,便于后续使用。
4. Tool:扩展Agent的“超能力”

工具是让Agent与现实世界交互的桥梁。

  • 内置工具:​​crewai_tools​​包提供 ​​SerperDevTool​​ (网页搜索) 、​​PDFSearchTool​​ (文档检索) 等常用工具。
  • 自定义工具:可通过继承 ​​BaseTool​​ 类,或使用 ​​@tool​​ 装饰器来封装自己的函数为Agent工具。
💡 实用技巧与最佳实践
  • 设置"护栏":为防止Agent产生幻觉或陷入死循环,设置​​max_iter​​、​​max_execution_time​​等限制。
  • 启用"记忆":通过设置​​memory=True​​让Agent拥有短期、长期和实体记忆,这对于处理多轮对话和长上下文任务非常关键。
  • 任务拆分原则:确保每个任务粒度适中,指令清晰,以便获得高质量的产出。
  • 善用回调函数:利用​​step_callback​​等函数,实时监控每个Agent的执行步骤,方便调试。
📚 学习资源
  • 🚀 官方文档:提供从快速入门核心概念API参考的完整指南。
  • 💻 GitHub仓库:可以在这里找到官方示例、源码,并跟踪项目更新。
  • 🎬 视频教程:推荐​​Codebasics​​等频道的系列教程,适合跟着动手实践。
  • 📝 社区博客:许多开发者会分享深入的实战教程和踩坑经验。
  • 💬 社区论坛:加入CrewAI的Discord等社区,与其他开发者交流并解决开发中遇到的问题。

CrewAI为构建复杂、可扩展的AI应用提供了一个清晰的蓝图。上手之后,如果对某个具体功能或应用场景有更深入的问题,随时都可以再来问我~

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐