CrewAI 的 Process 模型:Sequential vs Hierarchical——多 Agent 协作的两种组织形态

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

AI technology illustration

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 的 descriptiongoal 必须写清楚,否则 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_llmmanager_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

(0)
上一篇 2026年8月24日
下一篇 2026年8月25日

相关推荐