CrewAI:多智能体协作框架,让 AI 团队自主工作
📖 简介
📝 详细介绍
CrewAI:多智能体协作框架,让 AI 团队自主工作
CrewAI 解决的问题很直接:把多个 LLM 驱动的 agent 编排成一个有角色的团队,让它们自主分工、对话、执行任务,最终产出可验证的结果。你不再需要手动管理每个 agent 的上下文和调用顺序。
| Stars | 语言 | 协议 | 最近更新 |
|---|---|---|---|
| 31.2k | Python | MIT | 2025-02-18 |
项目背景
CrewAI 由 João Moura 于 2024 年初创建,最初是为了解决个人项目中 Agent 协调难 的痛点:单个 agent 能力有限,多个 agent 各管一段时,互通信、共享上下文、结果聚合全靠手写胶水代码。核心痛点在于:缺乏一套轻量、可复用的多 agent 编排原语。CrewAI 抽象了 角色(Role)、任务(Task)、工具(Tool) 三个概念,让开发者像搭积木一样定义 AI 团队。
核心功能解析
角色驱动的 Agent 定义
每个 agent 有自己的 角色、目标、背景故事,框架会把它作为系统提示注入 LLM。你可以用自然语言精确描述 agent 的行为边界,比如“资深数据分析师,只输出 SQL 和图表”。
from crewai import Agent
analyst = Agent(
role="数据分析师",
goal="分析销售数据,找出趋势与异常",
backstory="你是一名有10年经验的数据分析师,擅长用 Python 和 SQL。",
verbose=True,
allow_delegation=False
)
任务与依赖编排
任务可以指定 上下文任务,前序任务的输出会自动成为后序任务的输入。框架内置 协作模式:当 agent 需要其他 agent 的信息时,它会自动发起对话并等待结果。
from crewai import Task, Crew
task1 = Task(description="收集本周销售数据", expected_output="CSV文件路径", agent=analyst)
task2 = Task(description="基于数据生成分析报告", expected_output="Markdown报告",
agent=analyst, context=[task1])
crew = Crew(agents=[analyst], tasks=[task1, task2], verbose=2)
result = crew.kickoff()
工具集成与中间结果预览
Agent 可以使用任何 LangChain 工具 或自定义函数。框架还提供了 crew.kickoff() 的中间回调,让你实时查看每个 agent 的思考过程和中间输出。
agent1 = Agent(
role="研究员",
tools=[SearchTool(), WebScraper()],
allow_delegation=True
)
快速上手
pip install crewai
# 或者使用 Poetry
poetry add crewai
# 基本示例(来自官方文档)
from crewai import Agent, Task, Crew, Process
# 定义两个 Agent
researcher = Agent(role="研究员", goal="收集 AI 行业最新动态", backstory="资深科技记者")
writer = Agent(role="写手", goal="将研究结果写成简洁报告", backstory="专业技术文档作者")
# 定义任务
research_task = Task(description="搜索2025年AI Agent 主要进展", expected_output="要点列表", agent=researcher)
write_task = Task(description="将要点整理为300字摘要", expected_output="Markdown 摘要", agent=writer)
# 创建团队并执行
crew = Crew(agents=[researcher, writer], tasks=[research_task, write_task], process=Process.sequential)
result = crew.kickoff()
print(result)
技术亮点
深入看架构,CrewAI 有几个值得关注的设计决策:
- Process 抽象:提供
sequential、hierarchical、consensual三种协作模式。sequential 最简单,按顺序执行;hierarchical 引入一个“管理者”agent 来分配和仲裁任务,类似人团队的 leader;consensual 让多个 agent 并行投票决策,适合需要共识的场景。 - 记忆机制:每个 agent 内部维护 短期记忆(当前任务上下文)和 长期记忆(跨任务的积累知识)。框架使用向量数据库存储长期记忆,agent 可以回忆之前合作过的信息,而不每次从头解释。
- 任务委托与消息传递:当 agent 设置了
allow_delegation=True,如果它觉得当前任务需要别的 agent 帮助,会主动发送“委托请求”。框架底层用事件循环管理消息队列,避免死锁。 - 可观测性:内置
verbose和callback机制,可以 hook 每一步 agent 的输入输出,方便调试和监控。
一个值得注意的设计是:CrewAI 没有把 agent 之间的通信协议暴露给用户,而是用 “context + delegation” 隐式解决。对于大多数业务场景来说,这种高层次的抽象比手动编排消息传递要安全得多。
同类对比
| 项目 | 定位 | 编排粒度 | 工具生态 | 学习成本 |
|---|---|---|---|---|
| CrewAI | 纯 Python 多 agent 协作框架 | task + agent 级别 | 兼容 LangChain 工具 | 低(API 简洁) |
| AutoGen | Microsoft 的对话编排 | 消息级别(更细) | 仅内置工具 | 中(需理解对话图) |
| LangChain (Agent) | 单 agent 链式框架 | 单 agent + 工具 | 海量工具 | 中(概念较多) |
| MetaGPT | 模拟软件公司角色 | 软件工程流水线 | 预设角色多 | 高 |
总结
CrewAI 是目前在 多 agent 协作 领域最轻量、最 Pythonic 的选择。如果你需要快速搭建一个由多个 LLM 角色组成的“AI 团队”来完成复杂任务(如调研 + 写作、数据提取 + 分析 + 报告),且不希望被底层通信细节拖累,选它准没错。特别适合 AI 应用开发者、自动化工程师、以及想实验 Multi-Agent 架构的研究者。
AI 项目推荐
智能体- 标签
- #多智能体 #协作框架 #自动化 #AI Agent
- 浏览
- 👁️ 3
- 发布日期
- 2026-07-30