Processes

关于 CrewAI 中通过流程进行工作流管理的详细指南,包含更新后的实现细节。

概述

Processes 用于协调 agent 执行任务,类似于人类团队中的项目管理。 这些流程可确保任务按照预定义策略被高效分配和执行。

Process 实现方式

  • Sequential:按顺序执行任务,确保任务以有序的方式逐步完成。
  • Hierarchical:以管理层级方式组织任务,任务会基于结构化的指挥链进行委派和执行。要在 crew 中启用 hierarchical process,必须指定管理者语言模型(manager_llm)或自定义 manager agent(manager_agent),以便由管理者创建和管理任务。
  • Consensual Process(计划中):旨在让 agents 围绕任务执行进行协作式决策,这种流程类型为 CrewAI 中的任务管理引入了一种更民主的方式。该功能计划在未来开发,目前尚未在代码库中实现。

Processes 在团队协作中的作用

Processes 使单个 agents 能够作为一个有凝聚力的整体运作,从而以高效且一致的方式协同实现共同目标。

为 Crew 指定 Process

要为 crew 指定 process,请在创建 crew 时指定 process 类型,以设置执行策略。对于 hierarchical process,请确保定义 manager_llmmanager_agent 作为 manager agent。

  1. from crewai import Crew, Process
  2. # Example: Creating a crew with a sequential process
  3. crew = Crew(
  4. agents=my_agents,
  5. tasks=my_tasks,
  6. process=Process.sequential
  7. )
  8. # Example: Creating a crew with a hierarchical process
  9. # Ensure to provide a manager_llm or manager_agent
  10. crew = Crew(
  11. agents=my_agents,
  12. tasks=my_tasks,
  13. process=Process.hierarchical,
  14. manager_llm="gpt-4o"
  15. # or
  16. # manager_agent=my_manager_agent
  17. )

注意: 在创建 Crew 对象之前,请确保已经定义好 my_agentsmy_tasks;对于 hierarchical process,还必须额外提供 manager_llmmanager_agent 之一。

Sequential Process

这种方式模拟了动态团队工作流,以审慎且系统化的方式推进任务。任务执行遵循任务列表中的预定义顺序,前一个任务的输出会作为下一个任务的上下文。

如需自定义任务上下文,可在 Task 类中使用 context 参数,指定哪些输出应作为后续任务的上下文。

Hierarchical Process

CrewAI 模拟企业层级结构,允许指定自定义 manager agent,或在提供管理者语言模型(manager_llm)的情况下自动创建一个 manager agent。该 agent 负责监督任务执行,包括规划、委派和校验。任务不会被预先分配;manager 会根据各 agent 的能力分配任务、审查输出,并评估任务完成情况。

Process 类:详细说明

Process 类以枚举(Enum)形式实现,从而确保类型安全,并将 process 的可选值限制为已定义类型(sequentialhierarchical)。consensual process 计划于未来加入,这也体现了我们对持续开发与创新的承诺。

结论

CrewAI 中通过 processes 实现的结构化协作,对于使 agents 之间开展系统化团队协作至关重要。