介绍

CrewAI 提供了一个灵活的框架,用于以结构化的方式执行任务,支持顺序和分层流程。 本指南概述了如何有效实施这些流程,以确保任务执行和项目完成的高效性。

顺序流程概述

顺序过程确保任务按照线性进展一个接一个地执行。 这种方法非常适合需要按特定顺序完成任务的项目。

主要特点

  • 线性任务流:通过按预定顺序处理任务来确保有序进展。
  • 简单性:最适合具有明确、逐步任务的项目。
  • 轻松监控:便于轻松跟踪任务完成情况和项目进度。

实现顺序流程

要使用顺序流程,请组织您的团队并按照需要执行的顺序定义任务。

Code
from crewai import Crew, Process, Agent, Task, TaskOutput, CrewOutput

# Define your agents
researcher = Agent(
  role='Researcher',
  goal='Conduct foundational research',
  backstory='An experienced researcher with a passion for uncovering insights'
)
analyst = Agent(
  role='Data Analyst',
  goal='Analyze research findings',
  backstory='A meticulous analyst with a knack for uncovering patterns'
)
writer = Agent(
  role='Writer',
  goal='Draft the final report',
  backstory='A skilled writer with a talent for crafting compelling narratives'
)

# Define your tasks
research_task = Task(
  description='Gather relevant data...', 
  agent=researcher, 
  expected_output='Raw Data'
)
analysis_task = Task(
  description='Analyze the data...', 
  agent=analyst, 
  expected_output='Data Insights'
)
writing_task = Task(
  description='Compose the report...', 
  agent=writer, 
  expected_output='Final Report'
)

# Form the crew with a sequential process
report_crew = Crew(
  agents=[researcher, analyst, writer],
  tasks=[research_task, analysis_task, writing_task],
  process=Process.sequential
)

# Execute the crew
result = report_crew.kickoff()

# Accessing the type-safe output
task_output: TaskOutput = result.tasks[0].output
crew_output: CrewOutput = result.output

注意:

在顺序流程中的每个任务必须分配一个代理。确保每个Task都包含一个agent参数。

工作流程在行动

  1. 初始任务: 在一个顺序流程中,第一个代理完成他们的任务并发出完成信号。
  2. 后续任务: 代理根据流程类型选择他们的任务,前面的任务结果或指令指导他们的执行。
  3. 完成: 一旦执行了最终任务,过程就结束了,从而完成项目。

高级功能

任务委派

在顺序流程中,如果代理的allow_delegation设置为True,他们可以将任务委托给团队中的其他代理。 当团队中有多个代理时,此功能会自动设置。

异步执行

任务可以异步执行,允许在适当的时候进行并行处理。 要创建一个异步任务,在定义任务时设置async_execution=True

内存和缓存

CrewAI 支持内存和缓存功能:

  • 内存: 在创建Crew时通过设置memory=True来启用。这允许代理在任务之间保留信息。
  • 缓存: 默认情况下,缓存是启用的。设置 cache=False 来禁用它。

回调

您可以在任务和步骤级别设置回调:

  • task_callback: 在每个任务完成后执行。
  • step_callback: 在代理执行的每一步之后执行。

使用指标

CrewAI 跟踪所有任务和代理的令牌使用情况。执行后,您可以访问这些指标。

顺序流程的最佳实践

  1. 顺序很重要:将任务按逻辑顺序排列,每个任务都建立在前一个任务的基础上。
  2. 清晰的任务描述: 为每个任务提供详细的描述,以有效地指导代理。
  3. 适当的代理选择: 将代理的技能和角色与每个任务的要求相匹配。
  4. 使用上下文: 利用之前任务的上下文来指导后续任务。

这份更新的文档确保细节准确反映了代码库中的最新变化,并清楚地描述了如何利用新功能和配置。 内容保持简洁直接,以确保易于理解。

这个页面有帮助吗?