Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 4 additions & 29 deletions libs/langchain_v1/langchain/agents/factory.py
Original file line number Diff line number Diff line change
Expand Up @@ -677,24 +677,11 @@ def check_weather(location: str) -> str:

# Chain all wrap_tool_call handlers into a single composed handler
wrap_tool_call_wrapper = None
awrap_tool_call_wrapper = None
if middleware_w_wrap_tool_call:
wrappers = [m.wrap_tool_call for m in middleware_w_wrap_tool_call]
wrap_tool_call_wrapper = _chain_tool_call_wrappers(wrappers)

# Collect middleware with awrap_tool_call or wrap_tool_call hooks
# Include middleware with either implementation to ensure NotImplementedError is raised
# when middleware doesn't support the execution path
middleware_w_awrap_tool_call = [
m
for m in middleware
if m.__class__.awrap_tool_call is not AgentMiddleware.awrap_tool_call
or m.__class__.wrap_tool_call is not AgentMiddleware.wrap_tool_call
]

# Chain all awrap_tool_call handlers into a single composed async handler
awrap_tool_call_wrapper = None
if middleware_w_awrap_tool_call:
async_wrappers = [m.awrap_tool_call for m in middleware_w_awrap_tool_call]
async_wrappers = [m.awrap_tool_call for m in middleware_w_wrap_tool_call]
awrap_tool_call_wrapper = _chain_async_tool_call_wrappers(async_wrappers)

# Setup tools
Expand Down Expand Up @@ -763,26 +750,14 @@ def check_weather(location: str) -> str:
if m.__class__.wrap_model_call is not AgentMiddleware.wrap_model_call
or m.__class__.awrap_model_call is not AgentMiddleware.awrap_model_call
]
# Collect middleware with awrap_model_call or wrap_model_call hooks
# Include middleware with either implementation to ensure NotImplementedError is raised
# when middleware doesn't support the execution path
middleware_w_awrap_model_call = [
m
for m in middleware
if m.__class__.awrap_model_call is not AgentMiddleware.awrap_model_call
or m.__class__.wrap_model_call is not AgentMiddleware.wrap_model_call
]

# Compose wrap_model_call handlers into a single middleware stack (sync)
wrap_model_call_handler = None
awrap_model_call_handler = None
if middleware_w_wrap_model_call:
sync_handlers = [m.wrap_model_call for m in middleware_w_wrap_model_call]
wrap_model_call_handler = _chain_model_call_handlers(sync_handlers)

# Compose awrap_model_call handlers into a single middleware stack (async)
awrap_model_call_handler = None
if middleware_w_awrap_model_call:
async_handlers = [m.awrap_model_call for m in middleware_w_awrap_model_call]
async_handlers = [m.awrap_model_call for m in middleware_w_wrap_model_call]
awrap_model_call_handler = _chain_async_model_call_handlers(async_handlers)

state_schemas = {m.state_schema for m in middleware}
Expand Down