diff --git a/src/crewai/agents/agent_builder/base_agent.py b/src/crewai/agents/agent_builder/base_agent.py index cf4fca304..4277e8145 100644 --- a/src/crewai/agents/agent_builder/base_agent.py +++ b/src/crewai/agents/agent_builder/base_agent.py @@ -371,7 +371,7 @@ class BaseAgent(ABC, BaseModel): self.create_agent_executor() def configure_executor( - self, cache_handler: CacheHandler, rpm_controller: RPMController + self, cache_handler: CacheHandler, rpm_controller: Optional[RPMController] ) -> None: """Configure the agent's executor with both cache and RPM handling. diff --git a/src/crewai/crew.py b/src/crewai/crew.py index 733f8f4c6..66698dd71 100644 --- a/src/crewai/crew.py +++ b/src/crewai/crew.py @@ -89,7 +89,7 @@ class Crew(BaseModel): __hash__ = object.__hash__ # type: ignore _execution_span: Any = PrivateAttr() - _rpm_controller: RPMController = PrivateAttr() + _rpm_controller: Optional[RPMController] = PrivateAttr() _logger: Logger = PrivateAttr() _file_handler: FileHandler = PrivateAttr() _cache_handler: InstanceOf[CacheHandler] = PrivateAttr(default=CacheHandler()) @@ -274,7 +274,10 @@ class Crew(BaseModel): # Now inject these external dependencies into each agent for agent in self.agents: agent.crew = self # ensure the agent's crew reference is set - agent.configure_executor(self._cache_handler, self._rpm_controller) + # If cache is disabled (_cache_handler is None) provide a new CacheHandler instance + agent.configure_executor( + self._cache_handler or CacheHandler(), self._rpm_controller + ) return self