diff --git a/libs/core/langchain_core/tools.py b/libs/core/langchain_core/tools.py index b83a5cc8a7b..a536da4c791 100644 --- a/libs/core/langchain_core/tools.py +++ b/libs/core/langchain_core/tools.py @@ -312,7 +312,6 @@ class ChildTool(BaseTool): **kwargs: Any, ) -> Any: """Run the tool.""" - parsed_input = self._parse_input(tool_input) if not self.verbose and verbose is not None: verbose_ = verbose else: @@ -341,6 +340,7 @@ class ChildTool(BaseTool): **kwargs, ) try: + parsed_input = self._parse_input(tool_input) tool_args, tool_kwargs = self._to_args_and_kwargs(parsed_input) observation = ( self._run(*tool_args, run_manager=run_manager, **tool_kwargs) @@ -392,7 +392,6 @@ class ChildTool(BaseTool): **kwargs: Any, ) -> Any: """Run the tool asynchronously.""" - parsed_input = self._parse_input(tool_input) if not self.verbose and verbose is not None: verbose_ = verbose else: @@ -416,6 +415,7 @@ class ChildTool(BaseTool): **kwargs, ) try: + parsed_input = self._parse_input(tool_input) # We then call the tool on the tool input to get an observation tool_args, tool_kwargs = self._to_args_and_kwargs(parsed_input) observation = (