简介

CrewAI 提供了从最新工作组 kickoff 指定的任务开始重放的能力。当您完成一次 kickoff 后,可能想重试某些任务或无需重新获取数据时,此功能特别有用,因为您的代理已经保存了 kickoff 执行时的上下文,您只需要重放您想重放的任务即可。

您必须先运行 crew.kickoff() 才能重放任务。目前,仅支持最新的 kickoff,因此如果您使用 kickoff_for_each,则只能从最近一次工作组运行开始重放。

以下是从任务重放的示例

使用 CLI 从特定任务重放

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

1

打开您的终端或命令提示符。

2

导航到您的 CrewAI 项目所在的目录。

3

运行以下命令

要查看最新 kickoff 的 task_id,请使用

crewai log-tasks-outputs

一旦您获得了要重放的 task_id,请使用

crewai replay -t <task_id>

请确保您的开发环境中已正确安装和配置 crewai

以编程方式从任务重放

要以编程方式从任务重放,请使用以下步骤

1

指定重放过程的 `task_id` 和输入参数。

指定重放过程的 `task_id` 和输入参数。

2

在 try-except 块中执行重放命令以处理潜在错误。

在 try-except 块中执行重放命令以处理潜在错误。

  def replay():
  """
  Replay the crew execution from a specific task.
  """
  task_id = '<task_id>'
  inputs = {"topic": "CrewAI Training"}  # This is optional; you can pass in the inputs you want to replay; otherwise, it uses the previous kickoff's inputs.
  try:
      YourCrewName_Crew().crew().replay(task_id=task_id, inputs=inputs)

  except subprocess.CalledProcessError as e:
      raise Exception(f"An error occurred while replaying the crew: {e}")

  except Exception as e:
      raise Exception(f"An unexpected error occurred: {e}")

结论

通过上述增强功能和详细功能,CrewAI 中的特定任务重放变得更高效和强大。请确保您严格按照命令和步骤操作,以充分利用这些功能。