🎭 CrewAI

给 AI 派角色 —— 像导演一样编排多 Agent 协作系统

"下午2点,我同时打开了三个 GPT 窗口:一个负责写代码,一个负责写文档,一个负责找 Bug。我像一个手忙脚乱的导演,在三个演员之间来回喊'Action'。后来我发现,有个东西叫 CrewAI——它替你当导演,让每个 AI 各就各位,各司其职。"

什么是 CrewAI?

CrewAI是一个开源的 Python 框架,用于构建多角色 AI Agent 协作系统。它的核心理念是:给每个 Agent 一个明确的"角色"(role),让它们像团队一样分工合作完成任务。

打个比方:

核心概念:三大基石

┌─────────────────────────────────────────────────────────────────┐ │ CrewAI 核心架构 │ ├─────────────────────────────────────────────────────────────────┤ │ │ │ ┌─────────────────────────────────────────────────────────┐ │ │ │ CREW(剧组) │ │ │ │ 定义流程、协调任务、管理 Agent │ │ │ │ │ │ │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ │ │ Agent │ │ Agent │ │ Agent │ │ │ │ │ │ 研究员 │ │ 作家 │ │ 审稿人 │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ • Role │ │ • Role │ │ • Role │ │ │ │ │ │ • Goal │ │ • Goal │ │ • Goal │ │ │ │ │ │ • LLM │ │ • LLM │ │ • LLM │ │ │ │ │ │ • Tools │ │ • Tools │ │ • Tools │ │ │ │ │ └────┬─────┘ └────┬─────┘ └────┬─────┘ │ │ │ │ │ │ │ │ │ │ │ ┌────▼─────┐ ┌────▼─────┐ ┌────▼─────┐ │ │ │ │ │ Task │ │ Task │ │ Task │ │ │ │ │ │ 研究 │ │ 写作 │ │ 审核 │ │ │ │ │ └──────────┘ └──────────┘ └──────────┘ │ │ │ └─────────────────────────────────────────────────────────┘ │ │ │ │ 流程: 研究员搜索 → 作家写作 → 审稿人审核 │ └─────────────────────────────────────────────────────────────────┘

1. Agent(演员)

每个 Agent 有四个核心属性:

属性 描述 示例
role 角色名称 "高级数据分析师"
goal 目标 "提供准确、有洞察的数据分析"
backstory 背景故事 "10年数据分析经验,擅长从复杂数据中发现趋势"
tools 可用工具 搜索工具、计算器、文件读写

2. Task(任务)

Task 是 Agent 需要完成的具体工作单元,包含描述、预期输出和分配的 Agent。

3. Crew(剧组/团队)

Crew 是 Agent 和 Task 的容器,定义了执行流程(顺序/并行)和协作方式。

代码示例:完整的 CrewAI 应用

from crewai import Agent, Task, Crew, Process # 1. 定义 Agent researcher = Agent( role='资深技术研究员', goal='搜索并整理最新 AI 技术动态', backstory=''' 你是一位拥有15年经验的技术研究员。 你善于从海量信息中提炼关键趋势, 擅长用通俗语言解释复杂技术概念。 ''', tools=[search_tool, web_scrape_tool], llm="gpt-4o" ) writer = Agent( role='技术作家', goal='将研究成果转化为高质量的技术文章', backstory=''' 你是一位经验丰富的技术作家, 擅长把复杂概念讲得有趣又易懂。 你的写作风格幽默但不失专业。 ''', tools=[file_write_tool], llm="gpt-4o" ) reviewer = Agent( role='技术审稿人', goal='审核文章的准确性和可读性', backstory=''' 你是一位严格的审稿人, 对技术事实错误零容忍, 同时注重文章的可读性和结构。 ''', llm="gpt-4o" ) # 2. 定义 Task research_task = Task( description=''' 搜索2026年最新的 AI Agent 框架动态, 包括 CrewAI、LangGraph、AutoGen 的最新版本和特性。 整理成结构化的研究笔记。 ''', expected_output='一份包含最新动态的研究笔记(Markdown)', agent=researcher ) writing_task = Task( description=''' 根据研究笔记,写一篇面向开发者的技术文章。 主题:2026年 AI Agent 框架选型指南。 要求:有趣、实用、有代码示例。 ''', expected_output='一篇完整的 Markdown 技术文章', agent=writer, context=[research_task] # 依赖研究任务的结果 ) review_task = Task( description=''' 审核技术文章: 1. 检查事实是否准确 2. 代码示例是否正确 3. 建议改进点 ''', expected_output='审稿意见和修改后的文章', agent=reviewer, context=[writing_task] ) # 3. 组装 Crew tech_crew = Crew( agents=[researcher, writer, reviewer], tasks=[research_task, writing_task, review_task], process=Process.sequential, # 顺序执行 verbose=True ) # 4. 启动! result = tech_crew.kickoff() print(result)

CrewAI vs 其他框架

对比维度 CrewAI LangGraph AutoGen OpenClaw
核心理念 角色扮演协作 图状状态机 对话式协作 全能 Agent + Skills
上手难度 ⭐⭐ 简单 ⭐⭐⭐⭐ 较难 ⭐⭐⭐ 中等 ⭐ 最简单
状态管理 基础 ✅ 非常强大 中等 ✅ 内置 Memory
MCP 支持 ✅ 支持 ✅ 支持 ✅ 支持 ✅ 原生支持
部署方式 Python 应用 Python 应用 Python 应用 自托管 Gateway
最佳场景 内容创作团队 复杂工作流 研究/对话 日常自动化

OpenClaw 中的等价实现

在 OpenClaw 中,可以用 sessions_spawn 实现类似 CrewAI 的多角色协作:

# OpenClaw 实现 CrewAI 风格的多 Agent 协作 # Step 1: 研究员 Agent research_result = await sessions_spawn( task=""" 角色:资深技术研究员 任务:搜索2026年最新 AI Agent 框架动态 输出:结构化研究笔记(Markdown) """, runtime="subagent", mode="run" ) # Step 2: 作家 Agent(传入研究上下文) article = await sessions_spawn( task=f""" 角色:技术作家 任务:根据以下研究笔记写一篇技术文章 【研究笔记】 {research_result} 要求:有趣、实用、有代码示例 """, runtime="subagent", mode="run" ) # Step 3: 审稿人 Agent final = await sessions_spawn( task=f""" 角色:严格的技术审稿人 任务:审核并改进以下文章 【文章】 {article} """, runtime="subagent", mode="run" )
💡 CrewAI vs OpenClaw:怎么选?
选 CrewAI:你需要精细控制每个 Agent 的角色、背景、工具,且团队协作逻辑较复杂
选 OpenClaw:你需要一个开箱即用的全能 Agent,日常自动化、内容生成、定时任务
最佳实践:在 OpenClaw 的 Skill 中引用 CrewAI 概念,用 prompt 给 Agent "角色感"

CrewAI 的流程模式

1. Sequential(顺序执行)

Agent 按顺序完成任务,前一个的输出是后一个的输入。适合线性工作流。

2. Hierarchical(层级执行)

一个"Manager" Agent 负责分配任务、协调其他 Agent。适合复杂多步任务。

# 层级模式 crew = Crew( agents=[researcher, writer, reviewer], tasks=[research_task, writing_task, review_task], process=Process.hierarchical, manager_llm="gpt-4o" # Manager 用更强的模型 )

3. Consensual(共识模式)

多个 Agent 讨论达成共识。适合需要多方观点的任务(如决策分析)。

⚠️ CrewAI 常见踩坑
1. Token 爆炸:多 Agent + 多轮对话 = token 消耗指数增长。3个 Agent 跑一次可能消耗 10 倍 token
2. 角色串味:如果 prompt 不够清晰,Agent 可能忘记自己的角色,开始干别人的活
3. 速度慢:顺序模式下,每个 Agent 都要等前一个完成。多 Agent 并行要注意任务独立性
4. 调试困难:出问题时很难定位是哪个 Agent 的锅

总结

CrewAI 的精髓在于角色感。它不是简单地"开3个 GPT",而是给每个 AI 一个清晰的身份、目标和人设。就像拍电影一样——好导演不一定自己会演戏,但他知道该选谁来演什么角色。

"下午2点那三个 GPT 窗口,后来被 CrewAI 收编了。研究员搜索、作家写作、审稿人审核,各司其职,井然有序。唯一的问题是——token 账单让我差点心肌梗塞。但这事儿,咱不说也罢。"