Home / Class/ TestSystemMessageMiddlewareIntegration Class — langchain Architecture

TestSystemMessageMiddlewareIntegration Class — langchain Architecture

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

Entity Profile

Dependency Diagram

graph TD
  6469df6a_13d0_be79_9859_f2030c6dde8c["TestSystemMessageMiddlewareIntegration"]
  6fa433a2_9c9f_67de_68d3_cb5b777bdb82["SystemMessage"]
  6469df6a_13d0_be79_9859_f2030c6dde8c -->|extends| 6fa433a2_9c9f_67de_68d3_cb5b777bdb82
  a610b8e2_10fe_f60e_5de4_dde05dd5afb7["test_system_message.py"]
  6469df6a_13d0_be79_9859_f2030c6dde8c -->|defined in| a610b8e2_10fe_f60e_5de4_dde05dd5afb7
  57030076_d52c_2940_d236_8eba32d0da84["test_multiple_middleware_can_modify_system_message()"]
  6469df6a_13d0_be79_9859_f2030c6dde8c -->|method| 57030076_d52c_2940_d236_8eba32d0da84
  5f863f41_40c9_f677_68e7_c3a22be2d478["test_middleware_preserves_system_message_metadata()"]
  6469df6a_13d0_be79_9859_f2030c6dde8c -->|method| 5f863f41_40c9_f677_68e7_c3a22be2d478
  28228df4_c0c0_245e_1ce8_eea57ba07fec["test_backward_compatibility_with_string_system_prompt()"]
  6469df6a_13d0_be79_9859_f2030c6dde8c -->|method| 28228df4_c0c0_245e_1ce8_eea57ba07fec
  db2826b6_74f5_b2ea_5379_e9651ccf3239["test_middleware_can_switch_between_formats()"]
  6469df6a_13d0_be79_9859_f2030c6dde8c -->|method| db2826b6_74f5_b2ea_5379_e9651ccf3239

Relationship Graph

Source Code

libs/langchain_v1/tests/unit_tests/agents/test_system_message.py lines 860–991

class TestSystemMessageMiddlewareIntegration:
    """Test integration of SystemMessage with middleware chain."""

    def test_multiple_middleware_can_modify_system_message(self) -> None:
        """Test that multiple middleware can modify system message in sequence."""

        def first_middleware(request: ModelRequest) -> ModelRequest:
            """First middleware adds base system message."""
            new_message = SystemMessage(
                content="You are an assistant.",
                additional_kwargs={"middleware_1": "applied"},
            )
            return request.override(system_message=new_message)

        def second_middleware(request: ModelRequest) -> ModelRequest:
            """Second middleware appends to system message."""
            assert request.system_message is not None
            current_content = request.system_message.text
            new_content = current_content + " Be helpful."

            merged_kwargs = {
                **request.system_message.additional_kwargs,
                "middleware_2": "applied",
            }

            new_message = SystemMessage(
                content=new_content,
                additional_kwargs=merged_kwargs,
            )
            return request.override(system_message=new_message)

        request = _make_request(system_message=None)

        # Apply middleware in sequence
        request = first_middleware(request)
        assert request.system_message is not None
        assert len(request.system_message.content_blocks) == 1
        assert request.system_message.content_blocks[0].get("text") == "You are an assistant."
        assert request.system_message.additional_kwargs["middleware_1"] == "applied"

        request = second_middleware(request)
        assert request.system_message is not None
        assert len(request.system_message.content_blocks) == 1
        assert (
            request.system_message.content_blocks[0].get("text")
            == "You are an assistant. Be helpful."
        )
        assert request.system_message.additional_kwargs["middleware_1"] == "applied"
        assert request.system_message.additional_kwargs["middleware_2"] == "applied"

    def test_middleware_preserves_system_message_metadata(self) -> None:
        """Test that metadata is preserved when middleware modifies system message."""
        base_message = SystemMessage(
            content="Base prompt",
            additional_kwargs={"key1": "value1", "key2": "value2"},
            response_metadata={"model": "gpt-4"},
        )

        def preserving_middleware(request: ModelRequest) -> ModelRequest:
            """Middleware that preserves existing metadata."""
            assert request.system_message is not None
            new_message = SystemMessage(
                content=request.system_message.text + " Extended.",
                additional_kwargs=request.system_message.additional_kwargs,
                response_metadata=request.system_message.response_metadata,
            )
            return request.override(system_message=new_message)

        request = _make_request(system_message=base_message)
        new_request = preserving_middleware(request)

        assert new_request.system_message is not None
        assert len(new_request.system_message.content_blocks) == 1
        assert new_request.system_message.content_blocks[0].get("text") == "Base prompt Extended."
        assert new_request.system_message.additional_kwargs == {
            "key1": "value1",
            "key2": "value2",
        }
        assert new_request.system_message.response_metadata == {"model": "gpt-4"}

    def test_backward_compatibility_with_string_system_prompt(self) -> None:

Extends

Frequently Asked Questions

What is the TestSystemMessageMiddlewareIntegration class?
TestSystemMessageMiddlewareIntegration is a class in the langchain codebase, defined in libs/langchain_v1/tests/unit_tests/agents/test_system_message.py.
Where is TestSystemMessageMiddlewareIntegration defined?
TestSystemMessageMiddlewareIntegration is defined in libs/langchain_v1/tests/unit_tests/agents/test_system_message.py at line 860.
What does TestSystemMessageMiddlewareIntegration extend?
TestSystemMessageMiddlewareIntegration extends SystemMessage.

Analyze Your Own Codebase

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

Try Supermodel Free