_chain_tool_call_wrappers() — langchain Function Reference
Architecture documentation for the _chain_tool_call_wrappers() function in factory.py from the langchain codebase.
Entity Profile
Dependency Diagram
graph TD 0d0f80a1_fa92_e582_4a35_948953b3da45["_chain_tool_call_wrappers()"] fd7a28b1_3772_169b_6524_1342f35143b1["factory.py"] 0d0f80a1_fa92_e582_4a35_948953b3da45 -->|defined in| fd7a28b1_3772_169b_6524_1342f35143b1 f4b66c38_651c_807a_caca_41f73fbbe516["create_agent()"] f4b66c38_651c_807a_caca_41f73fbbe516 -->|calls| 0d0f80a1_fa92_e582_4a35_948953b3da45 style 0d0f80a1_fa92_e582_4a35_948953b3da45 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
libs/langchain_v1/langchain/agents/factory.py lines 541–586
def _chain_tool_call_wrappers(
wrappers: Sequence[ToolCallWrapper],
) -> ToolCallWrapper | None:
"""Compose wrappers into middleware stack (first = outermost).
Args:
wrappers: Wrappers in middleware order.
Returns:
Composed wrapper, or `None` if empty.
Example:
```python
wrapper = _chain_tool_call_wrappers([auth, cache, retry])
# Request flows: auth -> cache -> retry -> tool
# Response flows: tool -> retry -> cache -> auth
```
"""
if not wrappers:
return None
if len(wrappers) == 1:
return wrappers[0]
def compose_two(outer: ToolCallWrapper, inner: ToolCallWrapper) -> ToolCallWrapper:
"""Compose two wrappers where outer wraps inner."""
def composed(
request: ToolCallRequest,
execute: Callable[[ToolCallRequest], ToolMessage | Command[Any]],
) -> ToolMessage | Command[Any]:
# Create a callable that invokes inner with the original execute
def call_inner(req: ToolCallRequest) -> ToolMessage | Command[Any]:
return inner(req, execute)
# Outer can call call_inner multiple times
return outer(request, call_inner)
return composed
# Chain all wrappers: first -> second -> ... -> last
result = wrappers[-1]
for wrapper in reversed(wrappers[:-1]):
result = compose_two(wrapper, result)
return result
Domain
Subdomains
Called By
Source
Frequently Asked Questions
What does _chain_tool_call_wrappers() do?
_chain_tool_call_wrappers() is a function in the langchain codebase, defined in libs/langchain_v1/langchain/agents/factory.py.
Where is _chain_tool_call_wrappers() defined?
_chain_tool_call_wrappers() is defined in libs/langchain_v1/langchain/agents/factory.py at line 541.
What calls _chain_tool_call_wrappers()?
_chain_tool_call_wrappers() is called by 1 function(s): create_agent.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free