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

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
)

Role、Goal和Backstory是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