跳转到主要内容

简介

CrewAI 中的分层流程引入了一种结构化的任务管理方法,模拟传统的组织层级以实现高效的任务委派和执行。这种系统化的工作流通过确保任务以最佳效率和准确性处理,从而提高项目成果。
分层流程旨在利用 GPT-4 等高级模型,优化令牌使用,同时更高效地处理复杂任务。

分层流程概述

默认情况下,CrewAI 中的任务通过顺序流程管理。然而,采用分层方法可以在任务管理中建立清晰的层级,其中“经理”代理协调工作流、委派任务并验证结果,从而实现简化和高效的执行。此经理代理现在可以由 CrewAI 自动创建或由用户明确设置。

主要特点

  • 任务委派:经理代理根据船员的角色和能力在船员之间分配任务。
  • 结果验证:经理评估结果以确保它们符合所需的标准。
  • 高效工作流:模仿企业结构,提供有组织的任务管理方法。
  • 系统提示处理:可选择指定系统是否使用预定义提示。
  • 停用词控制:可选择指定是否使用停用词,支持包括 o1 模型在内的各种模型。
  • 尊重上下文窗口:通过启用对上下文窗口的尊重来优先处理重要上下文,这现在是默认行为。
  • 委派控制:委派现在默认禁用,以便用户可以明确控制。
  • 每分钟最大请求数:可配置选项,用于设置每分钟最大请求数。
  • 最大迭代次数:限制获取最终答案的最大迭代次数。

实施分层流程

要利用分层流程,必须将流程属性明确设置为 Process.hierarchical,因为默认行为是 Process.sequential。定义一个具有指定经理的团队,并建立清晰的指挥链。
在代理级别分配工具,以促进指定代理在经理指导下的任务委派和执行。工具也可以在任务级别指定,以便在任务执行期间精确控制工具的可用性。
配置 manager_llm 参数对于分层流程至关重要。系统需要设置经理 LLM 才能正常运行,确保量身定制的决策。
代码
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, 
)

使用自定义经理代理

或者,您可以创建一个具有特定属性的自定义经理代理,以满足您项目的管理需求。这使您可以更好地控制经理的行为和功能。
# 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,
)
有关创建和自定义经理代理的更多详细信息,请查看自定义经理代理文档

工作流程实践

  1. 任务分配:经理战略性地分配任务,考虑每个代理的能力和可用工具。
  2. 执行和审查:代理完成任务,可以选择异步执行和回调函数,以简化工作流。
  3. 顺序任务进展:尽管是分层流程,但任务遵循逻辑顺序以实现平稳进展,由经理监督促进。

结论

在 CrewAI 中采用分层流程,通过正确的配置和对系统功能的理解,有助于实现有组织和高效的项目管理方法。利用高级功能和自定义来根据您的特定需求调整工作流,确保最佳任务执行和项目成功。