From 665792bbd26ce676297257494b4fa303d90b6ffd Mon Sep 17 00:00:00 2001 From: "open-swe[bot]" Date: Mon, 11 Aug 2025 20:07:49 +0000 Subject: [PATCH] Apply patch [skip ci] --- .../langgraph/prebuilt/chat_agent_executor.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/libs/prebuilt/langgraph/prebuilt/chat_agent_executor.py b/libs/prebuilt/langgraph/prebuilt/chat_agent_executor.py index 260e1f5e5..d1e5bb83f 100644 --- a/libs/prebuilt/langgraph/prebuilt/chat_agent_executor.py +++ b/libs/prebuilt/langgraph/prebuilt/chat_agent_executor.py @@ -586,9 +586,24 @@ def create_react_agent( """Async resolve the model to use, handling both static and dynamic models.""" if is_async_dynamic_model: resolved_model = await model(state, runtime) # type: ignore[misc,operator] + if ( + _should_bind_tools(resolved_model, tool_classes, num_builtin=len(llm_builtin_tools)) # type: ignore[arg-type] + and len(tool_classes + llm_builtin_tools) > 0 + ): + resolved_model = cast(BaseChatModel, resolved_model).bind_tools( + tool_classes + llm_builtin_tools # type: ignore[operator] + ) return _get_prompt_runnable(prompt) | resolved_model elif is_dynamic_model: - return _get_prompt_runnable(prompt) | model(state, runtime) # type: ignore[operator] + resolved_model = model(state, runtime) # type: ignore[operator] + if ( + _should_bind_tools(resolved_model, tool_classes, num_builtin=len(llm_builtin_tools)) # type: ignore[arg-type] + and len(tool_classes + llm_builtin_tools) > 0 + ): + resolved_model = cast(BaseChatModel, resolved_model).bind_tools( + tool_classes + llm_builtin_tools # type: ignore[operator] + ) + return _get_prompt_runnable(prompt) | resolved_model else: return static_model @@ -978,3 +993,4 @@ __all__ = [ ] +