团队:协调 Crew 和 Process
团队:编排工作组与流程
Section titled “团队:编排工作组与流程”我们有智能体(执行者)和任务(工作内容)。**工作组(Crew)**是将它们整合在一起并管理执行流程的实体。
一个 Crew 通过智能体列表和任务列表进行初始化。它作为整个操作的容器。
from crewai import Crew, Process
my_crew = Crew( agents=[researcher, writer], tasks=[research_task, write_task], verbose=True)流程:工作流风格
Section titled “流程:工作流风格”任务应该如何执行?CrewAI 支持不同的 Process 类型。
1. 顺序执行(默认)
Section titled “1. 顺序执行(默认)”这是“瀑布式”方法。任务按照它们在 tasks 列表中列出的顺序执行。第一个任务的输出会自动作为上下文传递给第二个任务,依此类推。这对于线性工作流非常理想。
[Task A] -> Output -> [Task B] -> Output -> [Task C]2. 分层执行
Section titled “2. 分层执行”这模拟了管理结构。你定义了一系列任务,但不是手动分配它们,而是由一个“经理”智能体(CrewAI 为你创建)分析任务并根据智能体的角色将其委派给可用的智能体。要使用此功能,你必须指定一个 manager_llm。
my_crew = Crew( agents=[researcher, writer], tasks=[task1, task2], process=Process.hierarchical, manager_llm=gpt4_llm)启动:引擎启动
Section titled “启动:引擎启动”要启动流程,你需要调用 kickoff() 方法。在这里,你为任务/智能体中定义的任何变量传递输入。
inputs = {'topic': 'Quantum Computing'}result = my_crew.kickoff(inputs=inputs)
print(result)结果是一个 CrewOutput 对象,其中包含最终答案、token 使用统计信息和各个任务的输出。
通过在工作组配置中设置 memory=True,你可以让智能体记住过去的交互(短期记忆)并在不同运行之间回忆信息(长期记忆)。我们将在后续章节中深入探讨这一点,但请记住 Crew 类处理此持久化层。