跳转至

异步启动团队

简介

CrewAI提供了异步启动crew的能力,允许您以非阻塞方式开始crew执行。此功能在您想要同时运行多个crew或需要在crew执行时执行其他任务时特别有用。

异步Crew执行

要异步启动一个crew,使用kickoff_async()方法。此方法在单独的线程中启动crew执行,允许主线程继续执行其他任务。

方法签名

def kickoff_async(self, inputs: dict) -> CrewOutput:

参数

  • 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())