Am I approaching this correctly? I feel like I'm wrong, but if I'm not, it seems like it lacks intelligence since it involves simple if-else logic. I was expecting Crewai to automatically perform entity extraction from the user's question and, based on the tool's input parameters, prompt the user for any missing information. Even regular function calls can achieve that. So, what exactly does Crewai solve in this scenario? question = self.inputs.get("question", "Show me product information for Bosch A1242G") # Classify the query using the LLM query_type = self.classify_query(question) print(f"Classified query type: {query_type}") # Dynamically select the task sequence based on the classified query type if query_type == "info": tasks_to_run = [ self.product_info_task(), self.replacement_check_task() ] elif query_type == "match": tasks_to_run = [ self.product_matching_task(), self.replacement_on_match_task(), self.replacement_info_task() ] elif query_type == "compare": tasks_to_run = [ self.multi_product_info_task(), self.comparison_task() ] elif query_type == "replacement": tasks_to_run = [ self.get_replacement_task() ] else: tasks_to_run = [ self.product_info_task(), self.replacement_check_task() ] return Crew( agents=self.agents, tasks=tasks_to_run, process=Process.sequential, verbose=True, memory=True )