From 2faa2dbddb6dcd2997b4d16f2341c164a408c4b7 Mon Sep 17 00:00:00 2001 From: Lorenze Jay Date: Wed, 17 Jul 2024 08:39:57 -0700 Subject: [PATCH] code cleanup --- src/crewai/crew.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/crewai/crew.py b/src/crewai/crew.py index d7277884c..dca18c93c 100644 --- a/src/crewai/crew.py +++ b/src/crewai/crew.py @@ -635,16 +635,13 @@ class Crew(BaseModel): last_sync_output = task.output continue - self._prepare_task(task, manager) - if self.process == Process.hierarchical: - agent_to_use = manager - else: - agent_to_use = task.agent + agent_to_use = self._get_agent_to_use(task, manager) if agent_to_use is None: raise ValueError( f"No agent available for task: {task.description}. Ensure that either the task has an assigned agent or a manager agent is provided." ) - self._log_task_start(task, agent_to_use) + self._prepare_agent_tools(task, manager) + self._log_task_start(task, agent_to_use.role) if isinstance(task, ConditionalTask): skipped_task_output = self._handle_conditional_task( @@ -711,7 +708,7 @@ class Crew(BaseModel): return skipped_task_output return None - def _prepare_task(self, task: Task, manager: Optional[BaseAgent]): + def _prepare_agent_tools(self, task: Task, manager: Optional[BaseAgent]): if self.process == Process.hierarchical: if manager: self._update_manager_tools(task, manager) @@ -720,6 +717,13 @@ class Crew(BaseModel): elif task.agent and task.agent.allow_delegation: self._add_delegation_tools(task) + def _get_agent_to_use( + self, task: Task, manager: Optional[BaseAgent] + ) -> Optional[BaseAgent]: + if self.process == Process.hierarchical: + return manager + return task.agent + def _add_delegation_tools(self, task: Task): agents_for_delegation = [agent for agent in self.agents if agent != task.agent] if len(self.agents) > 1 and len(agents_for_delegation) > 0 and task.agent: