假设你正在用 CrewAI 搭一个内容团队:一个 Agent 负责调研,一个负责写初稿,一个负责润色。你可能会纠结一个问题:这三个 Agent 是像流水线一样依次干活,还是需要一个“领导”来指挥?这就是 Process 模型要回答的问题。CrewAI 给了你两个选项:Sequential 和 Hierarchical。我最早以为这只是个执行顺序的开关,后来踩了几个坑才明白,它背后是两种完全不同的组织哲学。

Process 是什么?一句话:团队的工作流
在 CrewAI 里,Crew 是一个团队,Process 是团队的工作流。它决定了任务在 Agent 之间怎么流转。比如你给 Crew 一个目标:“写一篇关于 AI 的博客”。如果没有 Process,Agent 们就不知道该谁先干谁后干。有了 Process,Crew 才知道是让调研 Agent 先跑,还是让写作 Agent 先跑。CrewAI 官方文档把 Process 描述为“决定任务如何执行和 Agent 如何协作的执行逻辑”。
from crewai import Crew, Process, Agent, Task
research_agent = Agent(name='Researcher', ...)
writer_agent = Agent(name='Writer', ...)
crew = Crew(
agents=[research_agent, writer_agent],
tasks=[research_task, write_task],
process=Process.sequential # 默认
)
Sequential:一条流水线走到底
Sequential 的逻辑很简单:任务按你定义的顺序一个接一个执行,前一个任务的输出会自动作为后一个任务的上下文。CrewAI 会把之前的输出拼接到后续任务中,让后面的 Agent 知道前面发生了什么。
你可以把它想象成工厂流水线。每个工人只做自己那一步,做完就传给下一个人。如果某个环节发现前面做错了,流水线不会自动倒回去——你必须自己重新跑一遍。
优点也很明显:简单、可预测、容易调试。每个任务的输入输出都是明确的,出了问题你顺着链路就能找到原因。这也是为什么它是默认选项。
但缺点同样明显:流程固定,无法动态调整。如果你的任务需要根据中间结果决定下一步做什么,Sequential 就无能为力了。
Hierarchical:请一个项目经理来指挥
Hierarchical 引入了一个额外的角色:Manager(经理)。这个 Manager 可以是一个专门的 Agent,也可以直接用一个 LLM(通过 manager_llm 指定)。它会接收你的最终目标,自己拆解成子任务,分配给团队里的 Agent,然后审核每个 Agent 的结果,决定是否通过或需要修改。
crew = Crew(
agents=[research_agent, writer_agent, editor_agent],
tasks=[final_blog_task],
process=Process.hierarchical,
manager_llm='gpt-4o'
)
注意:在 Hierarchical 模式下,你通常只需要定义一个最终任务。Manager 会负责把任务拆开。而且每个 Agent 的 description 和 goal 必须写清楚,否则 Manager 根本不知道该让谁干什么。
这就像一个项目经理,他对每个成员的擅长领域很敏感,能根据临时情况调整分工。比如调研 Agent 突然发现某个数据源不可用,Manager 可以重新分配任务给另一个 Agent 去补位。
代价是:每次任务分配和结果审核,都要额外调用一次 LLM。一次完整流程可能多出好几倍的 token 消耗。而且 Manager 的决策质量直接取决于模型能力——如果模型本身规划能力差,整个协作就会乱套。
一张表说清两种模型的区别
| 维度 | Sequential | Hierarchical |
|---|---|---|
| 执行方式 | 预定义顺序,一个接一个 | 由 Manager 动态规划和分配 |
| 任务定义 | 每个任务明确指定 | 通常只定义最终目标 |
| 上下文传递 | 前一个任务的输出自动作为后一个的输入 | Manager 决定谁需要什么上下文 |
| 额外成本 | 无 | 每次分配/审核多一次 LLM 调用 |
| 灵活性 | 低,流程固定 | 高,可动态调整 |
| 适用场景 | 流程清晰、步骤固定的任务 | 任务复杂、需要动态规划的场景 |
| 调试难度 | 简单,链路清晰 | 困难,Manager 决策不透明 |
我踩过的两个坑
我第一次用 Hierarchical 时,给每个 Agent 的 description 写得很模糊,比如“你是负责写作的”。结果 Manager 让写作 Agent 去调研,让调研 Agent 去写作,最后产出的文章完全不能用。后来我才明白,Manager 就像一个刚入职的项目经理,它对你的 Agent 一无所知,全靠你写在 description 里的信息来判断。你写不清楚,它就只能瞎猜。
另一个坑是成本。我以为 Hierarchical 只是多了一层调度,后来看了日志才发现,Manager 每分配一个任务,就要调用一次 LLM,而且还要审核结果。一个三步的流程,实际可能产生了七次以上的 LLM 调用。如果你的任务只有三步且顺序明确,用 Hierarchical 就是杀鸡用牛刀。
到底怎么选?我的判断
- 任务步骤固定、依赖明确:用 Sequential。比如“爬取网页 -> 提取要点 -> 生成摘要”。
- 任务需要根据中间结果动态决策:用 Hierarchical。比如客服 Crew,要根据用户问题决定调用哪个 Agent。
- 团队规模大(超过 3 个 Agent)且任务相互依赖复杂:Hierarchical 更合适。
- 对成本敏感、希望每个步骤可控:Sequential。
另外补充一点:在 Sequential 中,你也能通过任务之间的 context 参数手动指定依赖,但流程本身还是线性的。它无法做到“根据结果决定下一步”。
FAQ:三个常见问题
为什么我的 Hierarchical 没有跑 Manager?
很可能你忘了设置 manager_llm 或 manager_agent。CrewAI 不会默认给你一个 Manager。如果你两个都没设,它会抛异常。
Sequential 和 Pipeline 有什么关系?
Pipeline 是数据处理领域的通用术语,指一串串行处理步骤。Sequential 是 CrewAI 对 Pipeline 思想的具体实现,只不过每个步骤变成了 Agent。
能不能在 Hierarchical 里让 Manager 也执行任务?
可以,但建议不要。Manager 的主要职责是协调,如果它自己也去干活,容易顾此失彼,而且会进一步增加 LLM 调用次数。
边界与局限
Sequential 的边界在于它没有“意外处理”能力——如果某个 Agent 的输出不符合预期,后续步骤不会自动调整。Hierarchical 的边界在于它把决策交给了一个可能同样会犯错的 Manager,而且开销明显。我的看法是:如果你能预先把流程写清楚,就用 Sequential;如果你真的需要动态决策,再上 Hierarchical。CrewAI 的 Process 模型不是一个越高级越好的选择,它只是一个组织工具,关键是匹配你的任务复杂度。参考 CrewAI 官方文档 可以查看更多细节。
原创文章,作者:guanweilu,如若转载,请注明出处:https://guanweilu.cn/article/276.html