CachingMiddleware Class — langchain Architecture
Architecture documentation for the CachingMiddleware class in test_wrap_model_call.py from the langchain codebase.
Entity Profile
Dependency Diagram
graph TD b6308618_2187_2085_2b1e_f959020cbaa6["CachingMiddleware"] 949c7cf4_56fe_f3b4_cd89_9631a7e9cb1e["AgentMiddleware"] b6308618_2187_2085_2b1e_f959020cbaa6 -->|extends| 949c7cf4_56fe_f3b4_cd89_9631a7e9cb1e 573473e5_eb93_a7d7_84ba_c975071c09af["test_wrap_model_call.py"] b6308618_2187_2085_2b1e_f959020cbaa6 -->|defined in| 573473e5_eb93_a7d7_84ba_c975071c09af 25d2f3f4_3deb_a45a_aff7_eba99885f9d4["wrap_model_call()"] b6308618_2187_2085_2b1e_f959020cbaa6 -->|method| 25d2f3f4_3deb_a45a_aff7_eba99885f9d4
Relationship Graph
Source Code
libs/langchain_v1/tests/unit_tests/agents/middleware/core/test_wrap_model_call.py lines 504–519
class CachingMiddleware(AgentMiddleware):
def wrap_model_call(
self,
request: ModelRequest,
handler: Callable[[ModelRequest], ModelResponse],
) -> ModelCallResult:
# Simple cache key based on last message
cache_key = str(request.messages[-1].content) if request.messages else ""
if cache_key in cache:
# Short-circuit with cached result
return cache[cache_key]
# Execute and cache
result = handler(request)
cache[cache_key] = result
return result
Extends
Source
Frequently Asked Questions
What is the CachingMiddleware class?
CachingMiddleware is a class in the langchain codebase, defined in libs/langchain_v1/tests/unit_tests/agents/middleware/core/test_wrap_model_call.py.
Where is CachingMiddleware defined?
CachingMiddleware is defined in libs/langchain_v1/tests/unit_tests/agents/middleware/core/test_wrap_model_call.py at line 504.
What does CachingMiddleware extend?
CachingMiddleware extends AgentMiddleware.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free