文档索引
获取完整文档索引: https://docs.crewai.com.cn/llms.txt
在深入了解之前,请使用此文件来浏览所有可用页面。
CrewAI 提供了一个灵活的框架,用于以结构化的方式执行任务,支持顺序流程和层级流程。本指南概述了如何有效地实施这些流程,以确保任务的高效执行和项目的顺利完成。
顺序流程概述
顺序流程确保任务按照线性进程依次执行。这种方法非常适合需要按特定顺序完成任务的项目。
主要特点
- 线性任务流:通过按预定顺序处理任务,确保有序进展。
- 简单性:最适合具有清晰、分步任务的项目。
- 易于监控:便于跟踪任务完成情况和项目进度。
实施顺序流程
要使用顺序流程,请组建您的团队并按照需要执行的顺序定义任务。
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 参数。
工作流程实践
- 初始任务:在顺序流程中,第一个代理完成其任务并发出完成信号。
- 后续任务:代理根据流程类型接收各自的任务,并根据前序任务的结果或指令来执行。
- 完成:流程在最终任务执行完毕后结束,从而完成项目。
高级功能
任务委派
在顺序流程中,如果代理的 allow_delegation 设置为 True,他们可以将任务委派给团队中的其他代理。当团队中有多个代理时,此功能会自动设置。
异步执行
任务可以异步执行,从而在适当的情况下进行并行处理。要创建异步任务,请在定义任务时设置 async_execution=True。
记忆与缓存
CrewAI 支持记忆和缓存功能
- 记忆:通过在创建 Crew 时设置
memory=True 来启用。这允许代理在不同任务之间保留信息。
- 缓存:默认情况下已启用缓存。设置
cache=False 可将其禁用。
您可以在任务级和步骤级设置回调
task_callback:在每个任务完成后执行。
step_callback:在代理执行的每个步骤后执行。
使用指标
CrewAI 会跟踪所有任务和代理的 Token 使用情况。执行后您可以访问这些指标。
顺序流程的最佳实践
- 顺序很重要:按照逻辑顺序安排任务,使每个任务都建立在前一个任务的基础上。
- 清晰的任务描述:为每个任务提供详细的描述,以有效地指导代理。
- 合适的代理选择:根据每个任务的需求匹配代理的技能和角色。
- 利用上下文:利用前序任务的上下文信息来指导后续任务。
这份更新后的文档确保了详细信息能够准确反映代码库的最新变化,并清晰地描述了如何利用新特性和配置。内容保持简洁直接,以确保易于理解。