Introdução

O CrewAI oferece a capacidade de reexecutar uma tarefa especificada a partir do último crew kickoff. Esse recurso é particularmente útil quando você concluiu um kickoff e deseja tentar novamente determinadas tarefas, ou não precisa buscar dados novamente porque seus agentes já possuem o contexto salvo da execução do kickoff, sendo necessário apenas reexecutar as tarefas desejadas.

Você deve executar crew.kickoff() antes de poder reexecutar uma tarefa. Atualmente, apenas o kickoff mais recente é suportado, então se você utilizar kickoff_for_each, será possível reexecutar apenas a partir da execução de crew mais recente.

Aqui está um exemplo de como reexecutar a partir de uma tarefa:

Reexecutando a partir de uma Tarefa Específica Usando o CLI

Para utilizar o recurso de reexecução, siga estes passos:

1

Abra seu terminal ou prompt de comando.

2

Navegue até o diretório onde está localizado seu projeto CrewAI.

3

Execute os seguintes comandos:

Para visualizar os task_ids do último kickoff, utilize:

crewai log-tasks-outputs

Após identificar o task_id que deseja reexecutar, utilize:

crewai replay -t <task_id>

Certifique-se de que o crewai está instalado e devidamente configurado no seu ambiente de desenvolvimento.

Reexecutando uma Tarefa Programaticamente

Para reexecutar uma tarefa programaticamente, siga os passos abaixo:

1

Especifique o `task_id` e os parâmetros de entrada para o processo de reexecução.

Especifique o task_id e os parâmetros de entrada para o processo de reexecução.

2

Execute o comando de reexecução dentro de um bloco try-except para lidar com possíveis erros.

Execute o comando de reexecução dentro de um bloco try-except para lidar com possíveis erros.

  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}")

Conclusão

Com as melhorias acima e funcionalidades detalhadas, a reexecução de tarefas específicas no CrewAI ficou mais eficiente e robusta. Certifique-se de seguir exatamente os comandos e passos para aproveitar ao máximo esses recursos.