跳转到主要内容

简介

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 中特定任务的重放变得更加高效和健壮。请务必严格按照命令和步骤操作,以充分利用这些功能。