CrewAI 入门指南:从零开始构建多 Agent 协作系统

学习路径: Day 1-2 | 难度: ⭐ | 前置知识: Python 基础

📖 什么是 CrewAI?

CrewAI 是一个基于 LangChain 构建的多 Agent 协作框架,它让多个 AI 智能体能够像真实团队一样分工合作,共同完成复杂任务。

核心优势

  • 🎯 角色明确: 每个 Agent 有清晰的角色、目标和背景
  • 🤝 协作灵活: 支持顺序执行和层级管理两种模式
  • 🛠️ 工具丰富: Agent 可以使用各种工具扩展能力
  • 💡 易于上手: API 简洁,几行代码就能跑起来

🏗️ 三大核心概念

1. Agent(智能体)

Agent 是团队中的"员工",有自己的角色和专业技能。

from crewai import Agent

researcher = Agent(
    role='AI 技术研究员',
    goal='搜集和整理最新 AI 技术信息',
    backstory='你是一位资深的 AI 技术研究员,有 10 年行业经验。',
    verbose=True,
    allow_delegation=False,
)

关键参数:

  • role: 角色名称,要具体(如"高级 Python 工程师"而非"助手")
  • goal: 明确的目标,可衡量
  • backstory: 背景故事,增加专业性和上下文
  • verbose: 是否输出详细过程
  • allow_delegation: 是否允许委派任务

2. Task(任务)

Task 是要完成的具体工作,分配给特定的 Agent。

from crewai import Task

research_task = Task(
    description="""
    研究当前 AI 大模型领域的最新进展。
    
    重点关注:
    1. 主流大模型的特点
    2. 技术创新点
    3. 应用场景和趋势
    """,
    expected_output="一份 500 字左右的 AI 技术研究报告",
    agent=researcher,
)

关键参数:

  • description: 任务描述,越详细越好
  • expected_output: 期望的输出格式
  • agent: 执行任务的 Agent

3. Crew(团队)

Crew 是将 Agent 和 Task 组织在一起的团队。

from crewai import Crew, Process

crew = Crew(
    agents=[researcher, writer],
    tasks=[research_task, writing_task],
    verbose=True,
    process=Process.sequential,  # 顺序执行
)

关键参数:

  • agents: Agent 列表
  • tasks: Task 列表
  • process: 执行流程(sequential 或 hierarchical)

🚀 第一个 CrewAI 程序

环境准备

# 安装依赖
pip install crewai crewai-tools langchain langchain-openai

# 设置 API Key(以 DeepSeek 为例)
export DEEPSEEK_API_KEY=your-api-key

完整示例

from crewai import Agent, Task, Crew, Process

# 配置 LLM
llm = "deepseek/deepseek-chat"

# 创建 Agent
researcher = Agent(
    role='AI 技术研究员',
    goal='搜集和整理最新 AI 技术信息',
    backstory='你是一位资深的 AI 技术研究员。',
    verbose=True,
    llm=llm,
)

writer = Agent(
    role='技术作家',
    goal='将技术信息转化为通俗易懂的文章',
    backstory='你是一位专业的技术作家。',
    verbose=True,
    llm=llm,
)

# 创建 Task
research_task = Task(
    description="研究当前 AI 大模型领域的最新进展。",
    expected_output="一份 AI 技术研究报告",
    agent=researcher,
)

writing_task = Task(
    description="根据研究报告,撰写一篇面向初学者的科普文章。",
    expected_output="一篇 AI 大模型科普文章",
    agent=writer,
)

# 创建 Crew
crew = Crew(
    agents=[researcher, writer],
    tasks=[research_task, writing_task],
    verbose=True,
    process=Process.sequential,
)

# 执行
result = crew.kickoff()
print(result)

💡 最佳实践

1. Agent 角色设计

不好的设计:

agent = Agent(
    role='助手',
    goal='帮忙做事',
    backstory='你是一个助手',
)

好的设计:

agent = Agent(
    role='高级 Python 工程师',
    goal='编写高质量、可维护的代码',
    backstory='你有 8 年 Python 开发经验,擅长代码优化和最佳实践。',
)

2. 任务描述要具体

不够具体:

task = Task(
    description="研究 AI",
    expected_output="报告",
)

具体清晰:

task = Task(
    description="""
    研究 AI 在医疗领域的应用。
    
    请包含:
    1. 主要应用场景
    2. 技术实现方式
    3. 挑战和未来趋势
    """,
    expected_output="一份 800 字的医疗 AI 应用报告",
)

3. 使用 verbose 调试

开发阶段设置 verbose=True,可以看到:

  • Agent 的思考过程
  • 工具调用情况
  • 任务执行状态

生产环境可以设为 False 减少输出。

🎯 执行流程

顺序模式(Sequential)

Task 1 → Task 2 → Task 3

每个任务按顺序执行,前一个任务的输出可以作为后一个的输入。

层级模式(Hierarchical)

        Manager
     ↙    ↓    ↘
Agent1 Agent2 Agent3

Manager 负责任务分解和分配,员工执行具体工作。

📝 总结

通过本文,你学会了:

  • ✅ CrewAI 的三大核心概念(Agent、Task、Crew)
  • ✅ 如何创建第一个多 Agent 协作程序
  • ✅ Agent 角色设计的最佳实践
  • ✅ 两种执行流程的区别
Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐