跳转到主要内容

简介

CrewAI 提供了从最新 crew kickoff 中指定任务开始重播的功能。当您完成一次 kickoff 后,可能想重试某些任务,或者您的智能体已经从 kickoff 执行中保存了上下文,无需重新获取数据,只需重播您想要的任务时,此功能特别有用。
在重播任务之前,您必须先运行 `crew.kickoff()`。目前,仅支持最新的 kickoff,因此如果您使用 `kickoff_for_each`,它将只允许您从最近一次的 crew 运行中重播。
以下是如何从一个任务开始重播的示例

使用 CLI 从特定任务重播

要使用重播功能,请遵循以下步骤
1

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

2

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

3

运行以下命令

要查看最新的 kickoff 任务 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 中重播特定任务已变得更加高效和稳健。请确保您精确遵循命令和步骤,以充分利用这些功能。