test_multiple_middleware_can_chain_modifications() — langchain Function Reference
Architecture documentation for the test_multiple_middleware_can_chain_modifications() function in test_system_message.py from the langchain codebase.
Entity Profile
Dependency Diagram
graph TD 61e77994_e1f1_8690_1d25_b5eb47a45e00["test_multiple_middleware_can_chain_modifications()"] df87c006_f0fb_9a0b_32d6_ec8fc84e317b["TestMultipleMiddlewareChaining"] 61e77994_e1f1_8690_1d25_b5eb47a45e00 -->|defined in| df87c006_f0fb_9a0b_32d6_ec8fc84e317b style 61e77994_e1f1_8690_1d25_b5eb47a45e00 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
libs/langchain_v1/tests/unit_tests/agents/test_system_message.py lines 455–527
def test_multiple_middleware_can_chain_modifications(self) -> None:
"""Test that multiple middleware can modify system message sequentially."""
def first_middleware(
request: ModelRequest, handler: Callable[[ModelRequest], ModelResponse]
) -> ModelResponse:
"""First middleware sets base system message."""
new_request = request.override(
system_message=SystemMessage(
content="Base prompt",
additional_kwargs={"middleware_1": "applied"},
)
)
return handler(new_request)
def second_middleware(
request: ModelRequest, handler: Callable[[ModelRequest], ModelResponse]
) -> ModelResponse:
"""Second middleware appends to system message."""
assert request.system_message is not None
current_content = request.system_message.text
current_kwargs = request.system_message.additional_kwargs
new_request = request.override(
system_message=SystemMessage(
content=current_content + " + middleware 2",
additional_kwargs={**current_kwargs, "middleware_2": "applied"},
)
)
return handler(new_request)
def third_middleware(
request: ModelRequest, handler: Callable[[ModelRequest], ModelResponse]
) -> ModelResponse:
"""Third middleware appends to system message."""
assert request.system_message is not None
current_content = request.system_message.text
current_kwargs = request.system_message.additional_kwargs
new_request = request.override(
system_message=SystemMessage(
content=current_content + " + middleware 3",
additional_kwargs={**current_kwargs, "middleware_3": "applied"},
)
)
return handler(new_request)
model = GenericFakeChatModel(messages=iter([AIMessage(content="response")]))
request = ModelRequest(
model=model,
system_message=None,
messages=[],
tool_choice=None,
tools=[],
response_format=None,
state=AgentState(messages=[]),
runtime=Runtime(),
)
def final_handler(req: ModelRequest) -> ModelResponse:
# Verify all middleware applied
assert req.system_message is not None
assert req.system_message.text == "Base prompt + middleware 2 + middleware 3"
assert req.system_message.additional_kwargs["middleware_1"] == "applied"
assert req.system_message.additional_kwargs["middleware_2"] == "applied"
assert req.system_message.additional_kwargs["middleware_3"] == "applied"
return ModelResponse(result=[AIMessage(content="response")])
# Chain middleware calls
first_middleware(
request,
lambda req: second_middleware(req, lambda req2: third_middleware(req2, final_handler)),
)
Domain
Subdomains
Source
Frequently Asked Questions
What does test_multiple_middleware_can_chain_modifications() do?
test_multiple_middleware_can_chain_modifications() is a function in the langchain codebase, defined in libs/langchain_v1/tests/unit_tests/agents/test_system_message.py.
Where is test_multiple_middleware_can_chain_modifications() defined?
test_multiple_middleware_can_chain_modifications() is defined in libs/langchain_v1/tests/unit_tests/agents/test_system_message.py at line 455.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free