Home / Class/ TestMultipleMiddlewareChaining Class — langchain Architecture

TestMultipleMiddlewareChaining Class — langchain Architecture

Architecture documentation for the TestMultipleMiddlewareChaining class in test_system_message.py from the langchain codebase.

Entity Profile

Dependency Diagram

graph TD
  df87c006_f0fb_9a0b_32d6_ec8fc84e317b["TestMultipleMiddlewareChaining"]
  a610b8e2_10fe_f60e_5de4_dde05dd5afb7["test_system_message.py"]
  df87c006_f0fb_9a0b_32d6_ec8fc84e317b -->|defined in| a610b8e2_10fe_f60e_5de4_dde05dd5afb7
  61e77994_e1f1_8690_1d25_b5eb47a45e00["test_multiple_middleware_can_chain_modifications()"]
  df87c006_f0fb_9a0b_32d6_ec8fc84e317b -->|method| 61e77994_e1f1_8690_1d25_b5eb47a45e00
  83a76975_5645_0981_63b9_391dcf80e263["test_middleware_can_mix_string_and_system_message_updates()"]
  df87c006_f0fb_9a0b_32d6_ec8fc84e317b -->|method| 83a76975_5645_0981_63b9_391dcf80e263

Relationship Graph

Source Code

libs/langchain_v1/tests/unit_tests/agents/test_system_message.py lines 452–570

class TestMultipleMiddlewareChaining:
    """Test multiple middleware modifying system message in sequence."""

    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)),
        )

    def test_middleware_can_mix_string_and_system_message_updates(self) -> None:
        """Test mixing string and SystemMessage updates across middleware."""

        def string_middleware(

Frequently Asked Questions

What is the TestMultipleMiddlewareChaining class?
TestMultipleMiddlewareChaining is a class in the langchain codebase, defined in libs/langchain_v1/tests/unit_tests/agents/test_system_message.py.
Where is TestMultipleMiddlewareChaining defined?
TestMultipleMiddlewareChaining is defined in libs/langchain_v1/tests/unit_tests/agents/test_system_message.py at line 452.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free