开源精选 CrewAI多Agent编排协作开源

CrewAI深度解析:多Agent角色扮演式协作框架

“一个人可以走得很快,一群人可以走得很远。“CrewAI把这个团队协作的智慧应用到了AI Agent世界。在这里,每个Agent都有自己的角色、目标和性格。

项目速览

维度详情
GitHubcrewAIInc/crewAI
Stars~48K
语言Python
许可证MIT
定位多Agent角色扮演式协作框架

核心思想:像组建团队一样构建Agent

CrewAI的团队隐喻

人类团队              CrewAI
───────────          ───────────
CEO(定方向)   →    管理者Agent
研究员(搜集)  →    研究员Agent
分析师(提炼)  →    分析师Agent
写作者(产出)  →    写作者Agent
审校(把关)    →    审校Agent

每个Agent不仅有任务,还有角色背景、做事风格和个人目标——这让Agent的行为更加自然和可预测。

核心概念

Agent(智能体)

from crewai import Agent

researcher = Agent(
    role="资深研究员",
    goal="对指定课题进行深度调研,收集全面可靠的信息",
    backstory="""你是一名有15年经验的管理咨询研究员,
    曾在麦肯锡工作。你擅长在海量信息中识别关键信号,
    对数据来源的可信度有敏锐的判断力。
    你追求真相,不会被表面的公关语言迷惑。""",
    tools=[search_tool, scrape_tool, pdf_reader],
    llm="gpt-4",
    verbose=True,
    allow_delegation=True,  # 可以委托子任务
    max_iter=10
)

RoleGoalBackstory是CrewAI最独特的设计——它们不只是参数,而是塑造Agent行为方式的核心。

Task(任务)

from crewai import Task

research_task = Task(
    description="""
    调研2026年Q2全球SaaS行业的并购动态。

    要求:
    1. 至少覆盖5笔重要交易
    2. 每笔交易分析:金额、战略意图、对行业的影响
    3. 识别并购趋势和背后的驱动因素
    4. 标注信息来源

    输出:结构化的调研报告
    """,
    expected_output="一份包含交易清单、趋势分析和战略洞察的研究报告",
    agent=researcher,  # 分配给指定Agent
    async_execution=False,  # 是否与其他任务并行
    context=[previous_task],  # 依赖的前置任务
    output_file="mna_report.md"  # 输出文件
)

Crew(团队)

from crewai import Crew, Process

# 组建团队
content_crew = Crew(
    agents=[researcher, analyst, writer, reviewer],
    tasks=[research_task, analysis_task, writing_task, review_task],
    process=Process.sequential,  # 顺序执行
    # process=Process.hierarchical,  # 层级执行(有Manager自主分配)
    verbose=True,
    memory=True  # 启用跨任务的记忆
)

# 启动
result = content_crew.kickoff(inputs={
    "topic": "AI Agent对SaaS行业的影响",
    "target_audience": "企业高管",
    "word_count": 3000
})

两种执行模式

Sequential(顺序模式)

Agent 1 完成任务 → Agent 2 基于1的输出继续 → Agent 3 → ...

适合任务之间有明确先后顺序的场景。

Hierarchical(层级模式)

         Manager Agent
        /      |      \
   Agent 1  Agent 2  Agent 3
   (研究)   (分析)   (写作)
        \      |      /
        Manager 汇总输出

Manager Agent自动分配任务、协调进度、汇总结果。这是CrewAI最具创新性的设计——用户不需要手动编排每个步骤,Manager会像真正的团队领导一样工作。

核心机制

1. 角色注入(Role Injection)

# CrewAI在每次Agent推理时会注入角色上下文
role_context = f"""
你是 {agent.role}
你的核心目标是 {agent.goal}
你的背景:{agent.backstory}

在当前任务中,你应该:
1. 以你角色特有的方式思考问题
2. 利用你的专业知识和经验
3. 与团队其他成员协作(如果需要)
4. 专注于你的核心职责,不越界
"""

2. 跨Agent上下文传递

研究员输出        分析师输入
─────────        ─────────
结构化研究报告  →  收到研究报告
+ 数据                    ↓
+ 来源            将"数据"转化为"洞察"
+ 置信度标注       标注分析的不确定性

            输出分析报告

            写作者收到

            将"洞察"转化为"叙事"

每次交接时,前一个Agent的输出会作为结构化的上下文传给下一个Agent。

3. 记忆机制

# CrewAI的记忆系统
crew = Crew(
    agents=[...],
    tasks=[...],
    memory=True,
    memory_config={
        "provider": "mem0",  # 或 chromadb, weaviate
        "config": {
            "user_id": "content_team",
            "short_term_capacity": 20,
            "long_term_store": "chromadb"
        }
    }
)
  • 短期记忆:当前crew执行期间的任务上下文
  • 长期记忆:跨crew执行的历史经验积累
  • 实体记忆:关于用户/项目/领域的持久化信息

对比CrewAI vs AutoGen vs MetaGPT

维度CrewAIAutoGenMetaGPT
核心理念角色扮演团队对话式多Agent模拟软件公司
Agent定义Role+Goal+Backstory对话Agent+工具角色类(PM/Engineer)
编排方式顺序+层级对话图/GroupChat固定SOP
学习曲线低(1天上手)
适用场景内容创作、研究对话密集型软件开发
社区热度🔥🔥🔥🔥🔥🔥
中文支持一般

实战:构建行业分析团队

# 组建一个行业分析"梦之队"

# 1. 定义Agents
data_collector = Agent(
    role="数据采集员",
    goal="收集行业最新的数据、财报、新闻",
    backstory="前彭博社数据分析师,对数字极其敏感",
    tools=[serper_search, sec_filing_reader, statista_api],
    llm="gpt-4-mini"  # 数据收集不需要最强模型
)

strategist = Agent(
    role="战略分析师",
    goal="从数据中提炼战略洞察",
    backstory="前BCG顾问,擅长用波特五力等框架分析行业",
    tools=[excel_analyzer, chart_generator],
    llm="gpt-4"  # 深度分析需要强模型
)

copywriter = Agent(
    role="财经撰稿人",
    goal="将分析转化为打动人心的商业叙事",
    backstory="前《财经》杂志主笔,擅长让复杂问题变得生动",
    tools=[],
    llm="claude-sonnet-4-6"  # 写作场景Claude表现更好
)

# 2. 定义Tasks
tasks = [
    Task(description="采集 [行业名] 的最新数据...", agent=data_collector),
    Task(description="基于数据做深度战略分析...", agent=strategist),
    Task(description="撰写行业分析文章...", agent=copywriter)
]

# 3. 组建Crew并执行
crew = Crew(
    agents=[data_collector, strategist, copywriter],
    tasks=tasks,
    process=Process.sequential,
    verbose=True
)

result = crew.kickoff(inputs={"industry": "新能源汽车"})

适合什么场景

✅ CrewAI的最佳场景:
├── 内容创作Pipeline(研究→分析→撰写→审校)
├── 行业研究报告自动化
├── 多视角分析(让不同角色评估同一问题)
├── 教育/培训情景模拟
└── 需要结构化输出的复杂任务

❌ CrewAI不擅长的:
├── 实时交互场景(延迟太高)
├── 单个简单任务(杀鸡用牛刀)
├── 需要高确定性输出的场景
└── Agent数量>10的超大规模协作(编排开销太大)

发展趋势

  1. CrewAI Enterprise — 企业版增加SSO、RBAC、审计日志
  2. Crew Marketplace — 预置的Agent和Task模板交易市场
  3. Crew Flows — 更灵活的多crew嵌套编排
  4. 与LangGraph集成 — 在LangGraph图结构中调用CrewAI

CrewAI的哲学是:AI协作不应该只是技术问题,还应该是”组织设计”问题。给Agent赋予角色、背景和性格,不仅让它们的输出更像人类专家,也让编排变得更加直观——毕竟,“管理一个团队”是每个管理者每天都在做的事情。

GitHub: https://github.com/crewAIInc/crewAI