跳转至

使用分层流程

引言

CrewAI中的分层流程引入了一种结构化的任务管理方法,模拟传统的组织层级,以实现高效的任务分配和执行。这种系统化的工作流程通过确保任务以最佳效率和准确性处理,从而提升项目成果。

复杂性和效率

分层流程旨在利用像GPT-4这样的高级模型,优化令牌使用,同时更高效地处理复杂任务。

分层流程概述

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

关键特性

  • 任务分配:管理代理根据成员的角色和能力分配任务。
  • 结果验证:管理代理评估结果,确保其符合要求的标准。
  • 高效工作流程:模拟公司结构,提供组织化的任务管理方法。
  • 系统提示处理:可选地指定系统是否应使用预定义提示。
  • 停用词控制:可选地指定是否应使用停用词,支持包括o1模型在内的各种模型。
  • 上下文窗口尊重:通过启用尊重上下文窗口来优先考虑重要上下文,这现在是默认行为。
  • 分配控制:分配现在默认禁用,以给予用户明确的控制权。
  • 每分钟最大请求:可配置选项,用于设置每分钟的最大请求次数。
  • 最大迭代次数:限制获取最终答案的最大迭代次数。

实施分层流程

要利用分层流程,必须明确将流程属性设置为Process.hierarchical,因为默认行为是Process.sequential。定义一个带有指定管理员的团队,并建立清晰的指挥链。

工具和代理分配

在代理级别分配工具,以便在管理员的指导下,由指定的代理进行任务分配和执行。工具也可以在任务级别指定,以在任务执行期间精确控制工具的可用性。

管理员LLM要求

配置manager_llm参数对分层流程至关重要。系统需要设置一个管理员LLM以正常工作,确保量身定制的决策。

from langchain_openai import ChatOpenAI
from crewai import Crew, Process, Agent

# 代理定义时带有背景故事、缓存和详细模式等属性

researcher = Agent(
    role='研究员',
    goal='进行深入分析',
    backstory='经验丰富的数据分析师,擅长发现隐藏趋势。',
    cache=True,
    verbose=False,
    # tools=[]  # 这可以可选指定;默认为空列表
    use_system_prompt=True,  # 为此代理启用或禁用系统提示
    max_rpm=30,  # 每分钟请求次数的限制
    max_iter=5  # 获取最终答案的最大迭代次数
)
writer = Agent(
    role='作家',
    goal='创作吸引人的内容',
    backstory='热爱技术领域故事创作的创意作家。',
    cache=True,
    verbose=False,
    # tools=[]  # 可选指定工具;默认为空列表
    use_system_prompt=True,  # 为此代理启用或禁用系统提示
    max_rpm=30,  # 每分钟请求次数的限制
    max_iter=5  # 获取最终答案的最大迭代次数
)

# 建立具有分层流程和额外配置的团队
project_crew = Crew(
    tasks=[...],  # 在管理员监督下分配和执行的任务
    agents=[researcher, writer],
    manager_llm=ChatOpenAI(temperature=0, model="gpt-4"),  # 如果未设置manager_agent,则为必填项
    process=Process.hierarchical,  # 指定分层管理方法
    respect_context_window=True,  # 为任务启用尊重上下文窗口
    memory=True,  # 启用内存使用以增强任务执行
    manager_agent=None,  # 可选:明确设置特定代理作为管理员,而不是manager_llm
    planning=True,  # 启用预执行策略规划功能
)

工作流程实战

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

结论

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