Flows 是 CrewAI 在 Crew 之上提供的事件驱动编排层。如果说 Crew 是"执行工作的员工",那么 Flow 就是"知道工作按什么顺序完成、失败时如何处理、上次发生了什么的管理者"。Flows 解决了纯 Crew 的三大局限:默认无状态、无分支逻辑、无编排级错误恢复。
Flows 通过三个装饰器构建工作流:
维度 | 传统图编排(如 LangGraph) | CrewAI Flows |
|---|---|---|
思维模型 | 节点、边、状态字典 | 事件、方法、装饰器 |
拓扑定义 | 显式构建有向图 | 装饰器注解自动推导 |
状态管理 | 需手动定义 TypedDict 状态 | Pydantic BaseModel 共享状态 |
持久化 | 需额外配置 Checkpointer | 内置记忆(LanceDB 支持) |
代码量 | 相同功能需要更多样板代码 | 据 DocuSign 案例,代码量减少约 14 倍 |
在生产实践中,大多数严肃的 CrewAI 系统结合两者:Flows 处理确定性的骨干逻辑(获取数据 → 验证 → 分支 → 通知),Crews 则在需要自主多智能体推理的地方嵌入。一个 Flow 可以调用单个 LLM 做快速决策,也可以启动整个 Crew 作为更大管道中的一个步骤。