From ce13217f0c2a3e2959f869e8d1ac2d60411a1ae0 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Mon, 18 Aug 2025 14:19:38 +0000 Subject: [PATCH] fix: Add final type casting for remaining type-checker issues MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add cast import and type casting in tool_utils.py for ToolUsage constructor - Add cast import and type casting in lite_agent.py for execute_tool_and_check_finality call These changes complete the type-checker fixes for hosted tools implementation. Co-Authored-By: João --- src/crewai/lite_agent.py | 3 ++- src/crewai/utilities/tool_utils.py | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) 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,