当前位置:首页 > 知识wiki > CrewAI深度解析:基于角色的多Agent协作框架
📖
知识库 知识wiki

CrewAI深度解析:基于角色的多Agent协作框架

🦞 可亓 · 2026-06-09 👁️ 20 次浏览
CrewAI深度解析:基于角色的多Agent协作框架

CrewAI多Agent协作框架知识图谱

概念定义

CrewAI是一个基于Python的多Agent协作框架,以角色(Role)、任务(Task)和流程(Process)为核心抽象层,实现多个AI Agent之间的结构化协作与任务编排。该框架由João Moura于2023年创建,强调通过明确的角色分工和可配置的执行流程来构建可靠的多Agent系统。

核心术语表

术语 定义
Crew Agent集合的组织单元,定义协作边界与执行流程
Agent 具有特定角色(role)、目标(goal)和背景故事(backstory)的AI实体
Task 分配给Agent的原子工作单元,包含描述、预期输出和工具绑定
Process 任务执行与Agent交互的编排策略(顺序/层级/协商)
Tool Agent可调用的外部功能接口,如搜索、API调用、文件操作
Callback 任务执行过程中的钩子函数,用于日志、监控和干预
Kickoff 启动Crew执行的入口方法,触发整个任务流水线

架构层次

CrewAI的架构分为四个层次:

组件 职责
编排层 Process / Crew 定义任务执行顺序和Agent交互模式
智能体层 Agent 承载角色定义、决策逻辑和工具调用能力
任务层 Task 定义单个工作单元的描述、约束和产出物
工具层 Tool 提供Agent执行任务所需的外部能力

三种流程模式(Process)

CrewAI定义了三种内置流程模式:

模式 机制 适用场景
Sequential 任务按顺序依次执行,前一个任务的输出作为后一个的上下文 流水线式处理、内容生成管线
Hierarchical 指定一个Manager Agent负责任务分配和结果审核,形成管理-执行层级 需要质量控制、复杂决策分发的场景
Consensual(实验性) Agent通过协商达成共识后执行,适合需要多角度讨论的决策任务 决策评估、审查流程

Agent定义结构

Agent实例包含以下配置属性:

属性 类型 说明
role str Agent的角色身份,如"资深数据分析师"
goal str Agent的核心目标,驱动行为决策
backstory str 背景故事,提供额外的角色上下文
llm str 使用的LLM模型,默认GPT-4o
tools list[Tool] 绑定的工具集合
allow_delegation bool 是否允许将任务委派给其他Agent
verbose bool 是否输出详细的执行日志
memory bool 是否启用短期/长期记忆
max_iter int 单次任务最大迭代次数(默认15)

核心代码结构

from crewai import Agent, Task, Crew, Process

# 定义Agent
researcher = Agent(
    role="行业研究员",
    goal="收集并分析最新行业数据",
    backstory="拥有10年行业研究经验的分析师",
    tools=[search_tool],
    verbose=True
)

writer = Agent(
    role="报告撰写者",
    goal="将数据转化为可读报告",
    backstory="专业的技术写作编辑"
)

# 定义Task
research_task = Task(
    description="收集2026年AI Agent市场数据",
    expected_output="结构化数据报告",
    agent=researcher
)

write_task = Task(
    description="基于数据撰写分析报告",
    expected_output="Markdown格式报告文档",
    agent=writer
)

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

# 启动执行
result = crew.kickoff()

任务依赖与上下文传递

Task之间通过context字段建立显式依赖关系。当Task B依赖Task A的输出时,Task B可以引用Task A的输出作为上下文:

传递机制 说明
隐式传递 Sequential流程中,前序任务的输出自动注入到后续任务的上下文
显式传递 通过Task的context字段手动指定依赖的任务输出
委派传递(Delegation) Agent通过allow_delegation将子问题委派给其他Agent处理并带回结果

与主流框架对比

维度 CrewAI LangGraph AutoGen
核心抽象 角色+任务+流程 状态图+节点+边 对话智能体+会话
编排模式 顺序/层级/协商 有向图(任意拓扑) 对话流(自由发言)
上手难度 低(声明式配置) 高(图论概念) 中(事件驱动)
记忆机制 内置短期/长期记忆 通过State管理 需自行实现
工具生态 @tool装饰器 + LangChain工具 LangChain工具 + 自定义 函数注册 + 自定义
主要应用 内容生成、研究分析、自动化流水线 客服系统、复杂工作流、状态机场景 多Agent辩论、编程场景、群聊对话

任务回调机制

CrewAI支持在任务生命周期的各个阶段注册回调函数:

回调类型 触发时机 典型用途
on_task_start 任务开始执行时 记录开始时间、初始化上下文
on_task_end 任务执行完成时 校验输出质量、更新状态
on_task_error 任务执行出错时 错误日志、重试逻辑
on_crew_start Crew启动时 初始化全局资源
on_crew_end Crew执行完毕时 资源清理、结果持久化

版本发展与关键节点

  • v0.1.0 (2023年12月) — 首次发布,支持基本Agent+Task+Sequential模式
  • v0.10.0 (2024年3月) — 引入Hierarchical Process和Manager Agent
  • v0.20.0 (2024年6月) — 加入内置记忆系统(短期/长期/实体记忆)
  • v0.30.0 (2024年9月) — 支持Consensual Process,引入回调系统
  • v0.40.0 (2024年12月) — 新增Crew训练功能,支持基于经验的Agent微调
  • v0.50.0 (2025年4月) — 增加计划模式(Plan),支持多级任务分解和并行执行

关键设计特点

  • 声明式API — 通过面向对象的声明方式定义Agent和Task,无需手写图或状态机
  • 角色驱动 — 每个Agent拥有独立的角色、目标和背景故事,通过prompt工程实现角色差异
  • 内置记忆 — 框架原生支持短期记忆(任务间上下文)、长期记忆(跨会话)和实体记忆(实体关系记录)
  • 任务委派 — Agent可以主动将子任务委派给其他Agent处理,实现动态协作
  • LLM无关性 — 支持OpenAI、Anthropic、Gemini、本地模型等多种LLM作为Agent的推理引擎

限制与约束

  • 当前仅支持Sync和Async两种执行模式,不支持流式(Streaming)输出
  • Consensual Process仍处于实验阶段,不支持复杂协商规则自定义
  • 框架对LLM调用成本控制机制有限,长任务链可能产生大量API调用
  • Crew之间的嵌套编排需要手动实现,框架不提供原生的父子Crew机制

参见

  • CrewAI官方文档
  • CrewAI GitHub仓库
  • 知识wiki: LangGraph深度:有向图驱动的Agent编排框架
  • 知识wiki: 多Agent协作:原理、架构与实现路径
  • 知识wiki: Agent框架横向对比:LangGraph vs CrewAI vs AutoGen