跳转至

从特定任务重新执行

引言

CrewAI提供了从最新crew启动中指定的任务进行重放的能力。此功能在完成启动后特别有用,当你可能想要重试某些任务或不需要重新获取数据时,你的代理已经从启动执行中保存了上下文,因此你只需重放你想要的任务即可。

注意:

在重放任务之前,你必须运行crew.kickoff()。目前,仅支持最新的启动,所以如果你使用kickoff_for_each,它将只允许你从最近的crew运行中重放。

以下是如何从特定任务重放的示例:

使用CLI从特定任务重放

要使用重放功能,请按照以下步骤操作:

  1. 打开你的终端或命令提示符。
  2. 导航到你CrewAI项目所在的目录。
  3. 运行以下命令:

要查看最新的启动task_ids,使用:

crewai log-tasks-outputs

一旦你有了要重放的task_id,使用:

crewai replay -t <task_id>

注意: 确保crewai已正确安装并配置在你的开发环境中。

以编程方式从任务重放

要以编程方式从任务重放,请按照以下步骤操作:

  1. 指定task_id和重放过程的输入参数。
  2. 在try-except块中执行重放命令以处理潜在错误。
def replay():
    """
    从特定任务重放crew执行。
    """
    task_id = '<task_id>'
    inputs = {"topic": "CrewAI Training"}  # 这是可选的;你可以传入你想要重放的输入;否则,它将使用之前启动的输入。
    try:
        YourCrewName_Crew().crew().replay(task_id=task_id, inputs=inputs)
    except subprocess.CalledProcessError as e:
        raise Exception(f"在重放crew时发生错误:{e}")
    except Exception as e:
        raise Exception(f"发生意外错误:{e}")

结论

通过上述增强和详细功能,CrewAI中重放特定任务已变得更加高效和健壮。确保你准确遵循命令和步骤,以充分利用这些功能。