主题
层级流程
一份关于在 CrewAI 项目中理解和应用层级流程的全面指南,已更新以反映最新的编码实践和功能。
引言
CrewAI 中的层级流程引入了一种结构化的任务管理方法,模拟传统组织层级,以实现高效的任务委派和执行。 这种系统化工作流通过确保任务以最佳效率和准确性得到处理,来提升项目成果。
TIP
层级流程旨在利用 GPT-4 等高级模型,在处理复杂任务时优化 token 使用并提高效率。
层级流程概览
默认情况下,CrewAI 中的任务通过顺序流程进行管理。然而,采用层级方法可以在任务管理中形成清晰的层级, 其中“管理者”智能体协调工作流、委派任务并验证结果,以实现精简且有效的执行。现在,该管理者智能体既可以 由 CrewAI 自动创建,也可以由用户显式设置。
主要特性
- 任务委派:管理者智能体根据团队成员的角色和能力在其之间分配任务。
- 结果验证:管理者评估结果,以确保其满足所需标准。
- 高效工作流:模拟企业结构,为任务管理提供有条理的方法。
- 系统提示词处理:可选地指定系统是否应使用预定义提示词。
- 停用词控制:可选地指定是否应使用停用词,支持包括 o1 模型在内的各种模型。
- 上下文窗口遵循:通过启用对上下文窗口的遵循来优先处理重要上下文,这现在是默认行为。
- 委派控制:委派现在默认禁用,以便用户进行显式控制。
- 每分钟最大请求数:可配置选项,用于设置每分钟的最大请求数。
- 最大迭代次数:限制获取最终答案的最大迭代次数。
实现层级流程
要使用层级流程,必须将 process 属性显式设置为 Process.hierarchical,因为默认行为是 Process.sequential。 定义一个指定管理者的团队,并建立清晰的指挥链。
TIP
在智能体级别分配工具,以便在管理者指导下促进指定智能体进行任务委派和执行。 也可以在任务级别指定工具,以便精确控制任务执行期间的工具可用性。
TIP
配置 manager_llm 参数对层级流程至关重要。 系统需要设置管理者 LLM 才能正常运行,从而确保量身定制的决策。
python
from crewai import Crew, Process, Agent
# Agents are defined with attributes for backstory, cache, and verbose mode
researcher = Agent(
role='Researcher',
goal='Conduct in-depth analysis',
backstory='Experienced data analyst with a knack for uncovering hidden trends.',
)
writer = Agent(
role='Writer',
goal='Create engaging content',
backstory='Creative writer passionate about storytelling in technical domains.',
)
# Establishing the crew with a hierarchical process and additional configurations
project_crew = Crew(
tasks=[...], # Tasks to be delegated and executed under the manager's supervision
agents=[researcher, writer],
manager_llm="gpt-4o", # Specify which LLM the manager should use
process=Process.hierarchical,
planning=True,
)使用自定义管理者智能体
或者,你可以创建一个自定义管理者智能体,并为其设置针对项目管理需求量身定制的特定属性。这让你能更好地控制管理者的行为和能力。
python
# Define a custom manager agent
manager = Agent(
role="Project Manager",
goal="Efficiently manage the crew and ensure high-quality task completion",
backstory="You're an experienced project manager, skilled in overseeing complex projects and guiding teams to success.",
allow_delegation=True,
)
# Use the custom manager in your crew
project_crew = Crew(
tasks=[...],
agents=[researcher, writer],
manager_agent=manager, # Use your custom manager agent
process=Process.hierarchical,
planning=True,
)TIP
有关创建和自定义管理者智能体的更多详细信息,请查看 自定义管理者智能体文档。
工作流实战
- 任务分配:管理者会战略性分配任务,考虑每个智能体的能力和可用工具。
- 执行与审查:智能体完成任务,并可选支持异步执行和回调函数,以简化工作流。
- 顺序任务推进:尽管是层级流程,任务仍遵循逻辑顺序以顺利推进,并由管理者的监督来促进。
结论
在 CrewAI 中采用层级流程,并配合正确的配置以及对系统能力的理解,有助于形成有条理且高效的项目管理方法。 利用高级功能和自定义项,根据你的特定需求调整工作流,确保最佳的任务执行和项目成功。