Skip to content

团队:协调 Crew 和 Process

我们有智能体(执行者)和任务(工作内容)。**工作组(Crew)**是将它们整合在一起并管理执行流程的实体。

一个 Crew 通过智能体列表和任务列表进行初始化。它作为整个操作的容器。

from crewai import Crew, Process
my_crew = Crew(
agents=[researcher, writer],
tasks=[research_task, write_task],
verbose=True
)

任务应该如何执行?CrewAI 支持不同的 Process 类型。

这是“瀑布式”方法。任务按照它们在 tasks 列表中列出的顺序执行。第一个任务的输出会自动作为上下文传递给第二个任务,依此类推。这对于线性工作流非常理想。

[Task A] -> Output -> [Task B] -> Output -> [Task C]

这模拟了管理结构。你定义了一系列任务,但不是手动分配它们,而是由一个“经理”智能体(CrewAI 为你创建)分析任务并根据智能体的角色将其委派给可用的智能体。要使用此功能,你必须指定一个 manager_llm。

my_crew = Crew(
agents=[researcher, writer],
tasks=[task1, task2],
process=Process.hierarchical,
manager_llm=gpt4_llm
)

要启动流程,你需要调用 kickoff() 方法。在这里,你为任务/智能体中定义的任何变量传递输入。

inputs = {'topic': 'Quantum Computing'}
result = my_crew.kickoff(inputs=inputs)
print(result)

结果是一个 CrewOutput 对象,其中包含最终答案、token 使用统计信息和各个任务的输出。

通过在工作组配置中设置 memory=True,你可以让智能体记住过去的交互(短期记忆)并在不同运行之间回忆信息(长期记忆)。我们将在后续章节中深入探讨这一点,但请记住 Crew 类处理此持久化层。