core: dont mutate tool_kwargs during tool run (#28824)

fixes https://github.com/langchain-ai/langchain/issues/24621
This commit is contained in:
Erick Friis
2024-12-19 10:11:56 -08:00
committed by GitHub
parent 033ac41760
commit 6a37899b39
2 changed files with 19 additions and 2 deletions

View File

@@ -687,9 +687,9 @@ class ChildTool(BaseTool):
context.run(_set_config_context, child_config)
tool_args, tool_kwargs = self._to_args_and_kwargs(tool_input, tool_call_id)
if signature(self._run).parameters.get("run_manager"):
tool_kwargs["run_manager"] = run_manager
tool_kwargs = tool_kwargs | {"run_manager": run_manager}
if config_param := _get_runnable_config_param(self._run):
tool_kwargs[config_param] = config
tool_kwargs = tool_kwargs | {config_param: config}
response = context.run(self._run, *tool_args, **tool_kwargs)
if self.response_format == "content_and_artifact":
if not isinstance(response, tuple) or len(response) != 2: