From dd9031fc8218bb3a5a34818110ebffb3f251cdfb Mon Sep 17 00:00:00 2001 From: "xzq.xu" <1325732643@qq.com> Date: Wed, 26 Mar 2025 23:06:43 +0800 Subject: [PATCH] =?UTF-8?q?=5Fprep=5Frun=5Fargs=EF=BC=8Ctool=5Finput=20cop?= =?UTF-8?q?y,=20Exception?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libs/core/langchain_core/tools/base.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/libs/core/langchain_core/tools/base.py b/libs/core/langchain_core/tools/base.py index b73511ec7d2..74476a71a67 100644 --- a/libs/core/langchain_core/tools/base.py +++ b/libs/core/langchain_core/tools/base.py @@ -945,7 +945,14 @@ def _prep_run_args( tool_input: Union[str, dict] = cast(ToolCall, input)["args"].copy() else: tool_call_id = None - tool_input = cast(Union[str, dict], input).copy() + tool_input = cast(Union[str, dict], input) + if not isinstance(tool_input, str): + try: + tool_input = tool_input.copy() + except Exception as e: + import copy + tool_input = copy.deepcopy(tool_input) + return ( tool_input, dict(