跳到主要内容

在 CrewAI 中实现分层流程

介绍

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

!!! note "复杂性和效率" 分层流程旨在利用像 GPT-4 这样的先进模型,优化令牌使用,同时以更高效的方式处理复杂任务。

分层流程概述

在 CrewAI 中,默认情况下,任务是通过顺序流程管理的。然而,采用分层方法允许在任务管理中建立清晰的层级结构,其中“经理”代理协调工作流程,委派任务,并验证结果,以实现流畅和有效的执行。这个经理代理是由 CrewAI 自动创建的,所以您不需要担心它。

主要特点

  • 任务委派:经理代理根据成员的角色和能力分配任务。
  • 结果验证:经理评估结果,以确保其符合要求的标准。
  • 高效工作流:模拟企业结构,提供了一种组织良好的任务管理方法。

实施分层流程

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

!!! note "工具和代理分配" 在代理级别分配工具,以便在经理指导下由指定代理执行任务。还可以在任务级别指定工具,以精确控制任务执行期间的工具可用性。

!!! note "经理 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=[] # 这是可选的;默认为空列表
)
writer = Agent(
role='作家',
goal='创作引人入胜的内容',
backstory='对技术领域中的叙事充满激情的创意作家。',
cache=True,
verbose=False,
# tools=[] # 可选指定工具;默认为空列表
)

# 使用分层流程和额外配置建立团队
project_crew = Crew(
tasks=[...], # 在经理监督下委派和执行的任务
agents=[researcher, writer],
manager_llm=ChatOpenAI(temperature=0, model="gpt-4"), # 分层流程必需
process=Process.hierarchical, # 指定分层管理方法
memory=True, # 启用内存使用以增强任务执行
)

工作流程实例

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

结论

在 CrewAI 中采用分层流程,正确配置并了解系统的能力,有助于实现项目管理的组织化和高效化。