Home / Function/ test_middleware_can_mix_string_and_system_message_updates() — langchain Function Reference

test_middleware_can_mix_string_and_system_message_updates() — langchain Function Reference

Architecture documentation for the test_middleware_can_mix_string_and_system_message_updates() function in test_system_message.py from the langchain codebase.

Entity Profile

Dependency Diagram

graph TD
  83a76975_5645_0981_63b9_391dcf80e263["test_middleware_can_mix_string_and_system_message_updates()"]
  df87c006_f0fb_9a0b_32d6_ec8fc84e317b["TestMultipleMiddlewareChaining"]
  83a76975_5645_0981_63b9_391dcf80e263 -->|defined in| df87c006_f0fb_9a0b_32d6_ec8fc84e317b
  style 83a76975_5645_0981_63b9_391dcf80e263 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

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

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

        def string_middleware(
            request: ModelRequest, handler: Callable[[ModelRequest], ModelResponse]
        ) -> ModelResponse:
            """Use string-based update."""
            new_request = request.override(system_message=SystemMessage(content="String prompt"))
            return handler(new_request)

        def system_message_middleware(
            request: ModelRequest, handler: Callable[[ModelRequest], ModelResponse]
        ) -> ModelResponse:
            """Use SystemMessage-based update."""
            current_content = request.system_message.text if request.system_message else ""
            new_request = request.override(
                system_message=SystemMessage(
                    content=current_content + " + SystemMessage",
                    additional_kwargs={"metadata": "added"},
                )
            )
            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:
            assert req.system_message is not None
            assert req.system_message.text == "String prompt + SystemMessage"
            assert req.system_message.additional_kwargs.get("metadata") == "added"
            return ModelResponse(result=[AIMessage(content="response")])

        string_middleware(request, lambda req: system_message_middleware(req, final_handler))

Domain

Subdomains

Frequently Asked Questions

What does test_middleware_can_mix_string_and_system_message_updates() do?
test_middleware_can_mix_string_and_system_message_updates() is a function in the langchain codebase, defined in libs/langchain_v1/tests/unit_tests/agents/test_system_message.py.
Where is test_middleware_can_mix_string_and_system_message_updates() defined?
test_middleware_can_mix_string_and_system_message_updates() is defined in libs/langchain_v1/tests/unit_tests/agents/test_system_message.py at line 529.

Analyze Your Own Codebase

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

Try Supermodel Free