O que design-task faz?
Design e configuração de tarefas CrewAI. Use ao criar, configurar ou depurar tarefas do CrewAI — escrevendo descrições e expected_output, configurando dependências de tarefas com context, formatos de saída (output_pydantic, output_json, output_file), usando guardrails para validação, habilitando human_input, execução assíncrona, formatação markdown ou depurando problemas de execução de tarefas.
Visão Geral
Este skill ajuda você a projetar e configurar tarefas no CrewAI. Tarefas são unidades de trabalho atribuídas a agentes, com descrições claras, saídas esperadas e configurações avançadas.
Parâmetros Principais
description(str): Descrição detalhada da tarefa, instruindo o agente sobre o que fazer.expected_output(str): Descrição clara do resultado esperado.agent(Agent): O agente responsável pela tarefa.context(list): Lista de tarefas cujas saídas são usadas como entrada (dependências).output_pydantic(BaseModel): Modelo Pydantic para estruturar a saída.output_json(Type[BaseModel]): Modelo para serialização JSON.output_file(str): Caminho para salvar a saída em arquivo.guardrails(list): Lista de funções ou classes para validação da saída.human_input(bool): SeTrue, solicita aprovação ou entrada humana antes da execução.async_execution(bool): SeTrue, executa a tarefa de forma assíncrona.
Exemplos de Uso
Tarefa Simples
task = Task(
description="Resuma o documento fornecido.",
expected_output="Um resumo conciso de 3-5 frases.",
agent=researcher_agent
)
Tarefa com Dependências
task2 = Task(
description="Com base no resumo: {context[0]}, escreva um relatório.",
expected_output="Relatório detalhado.",
context=[task1],
agent=writer_agent
)
Saída Estruturada
class OutputModel(BaseModel):
titulo: str
conteudo: str
task = Task(
description="Gere um artigo.",
expected_output="Modelo OutputModel preenchido.",
output_pydantic=OutputModel,
agent=writer_agent
)
Validação com Guardrails
def validar_saida(resultado):
if len(resultado) < 10:
raise ValueError("Resultado muito curto")
return resultado
task = Task(
description="Gere conteúdo.",
expected_output="Conteúdo válido.",
guardrails=[validar_saida],
agent=content_agent
)
Execução Assíncrona
task = Task(
description="Processe dados em lote.",
expected_output="Resultado do processamento.",
async_execution=True,
agent=processor_agent
)
Depuração
Para depurar execução de tarefas, use log detalhado:
import logging
logging.basicConfig(level=logging.DEBUG)
Verifique se description e expected_output são específicos o suficiente. Se a saída não for estruturada como esperado, revise output_pydantic/output_json e guardrails. Dependências com context devem usar placeholders {context[index]} para referenciar saídas de tarefas anteriores.