diff --git a/src/crewai/lite_agent.py b/src/crewai/lite_agent.py index d3e14969f..e70d64e1a 100644 --- a/src/crewai/lite_agent.py +++ b/src/crewai/lite_agent.py @@ -564,9 +564,10 @@ class LiteAgent(FlowTrackable, BaseModel): if isinstance(formatted_answer, AgentAction): try: + from typing import cast tool_result = execute_tool_and_check_finality( agent_action=formatted_answer, - tools=self._parsed_tools, # type: ignore[arg-type] + tools=cast(List[Union[CrewStructuredTool, dict]], self._parsed_tools), i18n=self.i18n, agent_key=self.key, agent_role=self.role, diff --git a/src/crewai/utilities/tool_utils.py b/src/crewai/utilities/tool_utils.py index 94740c9a4..3a574b535 100644 --- a/src/crewai/utilities/tool_utils.py +++ b/src/crewai/utilities/tool_utils.py @@ -54,10 +54,11 @@ def execute_tool_and_check_finality( raise ValueError(f"Failed to set fingerprint: {e}") # Create tool usage instance - filter to only CrewStructuredTool instances for ToolUsage + from typing import cast crew_structured_tools = [tool for tool in tools if hasattr(tool, 'name') and hasattr(tool, 'result_as_answer') and not isinstance(tool, dict)] tool_usage = ToolUsage( tools_handler=tools_handler, - tools=crew_structured_tools, + tools=cast(List[CrewStructuredTool], crew_structured_tools), function_calling_llm=function_calling_llm, task=task, agent=agent,