Reasoning
Visão Geral
Seção intitulada “Visão Geral”O reasoning do agente é um recurso que permite que agentes reflitam sobre uma tarefa e criem um plano antes da execução. Isso ajuda os agentes a abordarem tarefas de forma mais metódica e garante que estejam preparados para realizar o trabalho atribuído.
Para habilitar o reasoning para um agente, basta definir reasoning=True ao criar o agente:
from crewai import Agent
analista = Agent( role="Analista de Dados", goal="Analisar dados e fornecer insights", backstory="Você é um analista de dados especialista.", reasoning=True, max_reasoning_attempts=3 # Opcional: Defina um limite de tentativas de reasoning)Como Funciona
Seção intitulada “Como Funciona”Quando o reasoning está habilitado, antes de executar uma tarefa, o agente irá:
- Refletir sobre a tarefa e criar um plano detalhado
- Avaliar se está pronto para executar a tarefa
- Refinar o plano conforme necessário até estar pronto ou até o limite de max_reasoning_attempts ser atingido
- Inserir o plano de reasoning na descrição da tarefa antes da execução
Esse processo ajuda o agente a dividir tarefas complexas em etapas gerenciáveis e identificar potenciais desafios antes de começar.
Opções de Configuração
Seção intitulada “Opções de Configuração”reasoning bool default: False Ativa ou desativa o reasoning
max_reasoning_attempts int default: None Número máximo de tentativas para refinar o plano antes de prosseguir com a execução. Se None (padrão), o agente continuará refinando até que esteja pronto.
Exemplo
Seção intitulada “Exemplo”Aqui está um exemplo completo:
from crewai import Agent, Task, Crew
# Create an agent with reasoning enabledanalista = Agent( role="Analista de Dados", goal="Analisar dados e fornecer insights", backstory="Você é um analista de dados especialista.", reasoning=True, max_reasoning_attempts=3 # Opcional: Defina um limite de tentativas de reasoning)
# Create a taskanalysis_task = Task( description="Analise os dados de vendas fornecidos e identifique as principais tendências.", expected_output="Um relatório destacando as 3 principais tendências de vendas.", agent=analista)
# Create a crew and run the taskcrew = Crew(agents=[analista], tasks=[analysis_task])result = crew.kickoff()
print(result)Tratamento de Erros
Seção intitulada “Tratamento de Erros”O processo de reasoning foi projetado para ser robusto, com tratamento de erros integrado. Se ocorrer um erro durante o reasoning, o agente prosseguirá com a execução da tarefa sem o plano de reasoning. Isso garante que as tarefas ainda possam ser executadas mesmo que o processo de reasoning falhe.
Veja como lidar com possíveis erros no seu código:
from crewai import Agent, Taskimport logging
# Set up logging to capture any reasoning errorslogging.basicConfig(level=logging.INFO)
# Create an agent with reasoning enabledagent = Agent( role="Analista de Dados", goal="Analisar dados e fornecer insights", reasoning=True, max_reasoning_attempts=3)
# Create a tasktask = Task( description="Analise os dados de vendas fornecidos e identifique as principais tendências.", expected_output="Um relatório destacando as 3 principais tendências de vendas.", agent=agent)
# Execute the task# If an error occurs during reasoning, it will be logged and execution will continueresult = agent.execute_task(task)Exemplo de Saída de reasoning
Seção intitulada “Exemplo de Saída de reasoning”Veja um exemplo de como pode ser um plano de reasoning para uma tarefa de análise de dados:
Task: Analise os dados de vendas fornecidos e identifique as principais tendências.
Reasoning Plan:I'll analyze the sales data to identify the top 3 trends.
1. Understanding of the task: I need to analyze sales data to identify key trends that would be valuable for business decision-making.
2. Key steps I'll take: - First, I'll examine the data structure to understand what fields are available - Then I'll perform exploratory data analysis to identify patterns - Next, I'll analyze sales by time periods to identify temporal trends - I'll also analyze sales by product categories and customer segments - Finally, I'll identify the top 3 most significant trends
3. Approach to challenges: - If the data has missing values, I'll decide whether to fill or filter them - If the data has outliers, I'll investigate whether they're valid data points or errors - If trends aren't immediately obvious, I'll apply statistical methods to uncover patterns
4. Use of available tools: - I'll use data analysis tools to explore and visualize the data - I'll use statistical tools to identify significant patterns - I'll use knowledge retrieval to access relevant information about sales analysis
5. Expected outcome: A concise report highlighting the top 3 sales trends with supporting evidence from the data.
READY: I am ready to execute the task.Esse plano de reasoning ajuda o agente a organizar sua abordagem para a tarefa, considerar possíveis desafios e garantir que entregará o resultado esperado.