跳到主要内容

CrewAI 流程管理

理解流程

!!! note "核心概念" 在 CrewAI 中,流程通过协调代理执行任务,类似于人类团队中的项目管理。这些流程确保任务被有效地分配和执行,与预定义的策略保持一致。

流程实现

  • 顺序执行: 顺序执行任务,确保任务按照有序的进展完成。
  • 分级: 将任务组织在管理层级中,任务根据结构化的指挥链被委派和执行。在船员中必须指定一个管理语言模型 (manager_llm) 来启用分级流程,通过经理人便于创建和管理任务。
  • 共识流程(计划中): 旨在实现代理在任务执行中的协作决策,这种流程类型在 CrewAI 中引入了一种民主的任务管理方法。这是计划中的未来开发内容,目前尚未在代码库中实施。

流程在团队合作中的作用

流程使各个代理能够作为一个有机整体运作,简化他们的努力,以高效和协调的方式实现共同目标。

将流程分配给船员

要将流程分配给船员,在创建船员时指定流程类型以设置执行策略。对于分级流程,确保为经理代理定义 manager_llm

from crewai import Crew
from crewai.process import Process
from langchain_openai import ChatOpenAI

# 示例:创建一个具有顺序流程的船员
crew = Crew(
agents=my_agents,
tasks=my_tasks,
process=Process.sequential
)

# 示例:创建一个具有分级流程的船员
# 确保提供 manager_llm
crew = Crew(
agents=my_agents,
tasks=my_tasks,
process=Process.hierarchical,
manager_llm=ChatOpenAI(model="gpt-4")
)

注意: 确保在创建 Crew 对象之前定义了 my_agentsmy_tasks,对于分级流程,还需要 manager_llm

顺序流程

该方法模拟动态团队工作流程,以深思熟虑和系统化的方式进行任务。任务执行遵循任务列表中预定义的顺序,一个任务的输出作为下一个任务的上下文。

要自定义任务上下文,可以利用 Task 类中的 context 参数指定应作为后续任务上下文使用的输出。

分级流程

模拟企业层级结构,CrewAI 会自动为您创建一个经理,需要为经理代理指定一个管理语言模型 (manager_llm)。该代理负责监督任务执行,包括规划、委派和验证。任务不是预分配的;经理根据代理的能力分配任务,审查输出,并评估任务完成情况。

流程类:详细概述

Process 类被实现为一个枚举 (Enum),确保类型安全并将流程值限制为定义的类型 (sequential, hierarchical)。共识流程计划在未来包含,强调我们对持续发展和创新的承诺。

附加任务特性

  • 异步执行: 现在任务可以异步执行,允许并行处理和提高效率。此功能旨在使任务能够同时进行,增强船员的整体生产力。
  • 人工输入审查: 一项可选功能,允许人类审查任务输出,以确保质量和准确性在最终确定之前。这一额外步骤引入了一层监督,为人类干预和验证提供了机会。
  • 输出定制: 任务支持各种输出格式,包括 JSON (output_json)、Pydantic 模型 (output_pydantic) 和文件输出 (output_file),灵活地捕获和利用任务结果。这允许各种输出可能性,满足不同的需求和要求。

结论

在 CrewAI 中由流程促进的结构化协作对于实现代理之间的系统化团队合作至关重要。本文档已更新以反映最新功能、增强功能以及共识流程的计划集成,确保用户可以访问最新和全面的信息。