异步启动团队
简介¶
CrewAI提供了异步启动crew的能力,允许您以非阻塞方式开始crew执行。此功能在您想要同时运行多个crew或需要在crew执行时执行其他任务时特别有用。
异步Crew执行¶
要异步启动一个crew,使用kickoff_async()方法。此方法在单独的线程中启动crew执行,允许主线程继续执行其他任务。
方法签名¶
参数¶
inputs(dict): 包含任务所需输入数据的字典。
返回值¶
CrewOutput: 表示crew执行结果的对象。
潜在使用案例¶
-
并行内容生成:异步启动多个独立的crew,每个crew负责生成不同主题的内容。例如,一个crew可能研究和撰写关于AI趋势的文章,而另一个crew生成关于新产品发布的社交媒体帖子。每个crew独立操作,允许内容生产高效扩展。
-
并发市场研究任务:异步启动多个crew以并行进行市场研究。一个crew可能分析行业趋势,另一个检查竞争对手策略,还有一个评估消费者情绪。每个crew独立完成任务,从而更快地获得更全面的洞察。
-
独立旅行规划模块:执行单独的crew来独立规划旅行的不同方面。一个crew可能处理航班选项,另一个处理住宿,第三个规划活动。每个crew异步工作,允许旅行的各个组成部分同时且独立规划,以获得更快的结果。
示例:单个异步Crew执行¶
以下是如何使用asyncio异步启动crew并等待结果的示例:
import asyncio
from crewai import Crew, Agent, Task
# 创建一个启用代码执行的agent
coding_agent = Agent(
role="Python数据分析师",
goal="使用Python分析数据并提供洞察",
backstory="你是一位经验丰富的数据分析师,拥有强大的Python技能。",
allow_code_execution=True
)
# 创建一个需要代码执行的任务
data_analysis_task = Task(
description="分析给定数据集并计算参与者的平均年龄。年龄:{ages}",
agent=coding_agent
)
# 创建一个crew并添加任务
analysis_crew = Crew(
agents=[coding_agent],
tasks=[data_analysis_task]
)
# 异步函数以异步启动crew
async def async_crew_execution():
result = await analysis_crew.kickoff_async(inputs={"ages": [25, 30, 35, 40, 45]})
print("Crew结果:", result)
# 运行异步函数
asyncio.run(async_crew_execution())