Home / Function/ test_model_fallback_middleware_with_agent() — langchain Function Reference

test_model_fallback_middleware_with_agent() — langchain Function Reference

Architecture documentation for the test_model_fallback_middleware_with_agent() function in test_model_fallback.py from the langchain codebase.

Entity Profile

Dependency Diagram

graph TD
  90dad567_2eec_f175_70c5_cbc86c365cbd["test_model_fallback_middleware_with_agent()"]
  c6372e75_e4e3_ed20_8230_4be219762f0f["test_model_fallback.py"]
  90dad567_2eec_f175_70c5_cbc86c365cbd -->|defined in| c6372e75_e4e3_ed20_8230_4be219762f0f
  6fcf00cc_28c5_96c2_9c24_987556d1c13e["_llm_type()"]
  90dad567_2eec_f175_70c5_cbc86c365cbd -->|calls| 6fcf00cc_28c5_96c2_9c24_987556d1c13e
  478a87ea_9f11_34e4_9905_c8e2bb1205b7["_generate()"]
  90dad567_2eec_f175_70c5_cbc86c365cbd -->|calls| 478a87ea_9f11_34e4_9905_c8e2bb1205b7
  style 90dad567_2eec_f175_70c5_cbc86c365cbd fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

libs/langchain_v1/tests/unit_tests/agents/middleware/implementations/test_model_fallback.py lines 275–327

def test_model_fallback_middleware_with_agent() -> None:
    """Test ModelFallbackMiddleware with agent.invoke and fallback models only."""

    class FailingModel(BaseChatModel):
        """Model that always fails."""

        @override
        def _generate(
            self,
            messages: list[BaseMessage],
            stop: list[str] | None = None,
            run_manager: CallbackManagerForLLMRun | None = None,
            **kwargs: Any,
        ) -> ChatResult:
            msg = "Primary model failed"
            raise ValueError(msg)

        @property
        def _llm_type(self) -> str:
            return "failing"

    class SuccessModel(BaseChatModel):
        """Model that succeeds."""

        @override
        def _generate(
            self,
            messages: list[BaseMessage],
            stop: list[str] | None = None,
            run_manager: CallbackManagerForLLMRun | None = None,
            **kwargs: Any,
        ) -> ChatResult:
            return ChatResult(
                generations=[ChatGeneration(message=AIMessage(content="Fallback success"))]
            )

        @property
        def _llm_type(self) -> str:
            return "success"

    primary = FailingModel()
    fallback = SuccessModel()

    # Only pass fallback models to middleware (not the primary)
    fallback_middleware = ModelFallbackMiddleware(fallback)

    agent = create_agent(model=primary, middleware=[fallback_middleware])

    result = agent.invoke({"messages": [HumanMessage("Test")]})

    # Should have succeeded with fallback model
    assert len(result["messages"]) == 2
    assert result["messages"][1].content == "Fallback success"

Domain

Subdomains

Frequently Asked Questions

What does test_model_fallback_middleware_with_agent() do?
test_model_fallback_middleware_with_agent() is a function in the langchain codebase, defined in libs/langchain_v1/tests/unit_tests/agents/middleware/implementations/test_model_fallback.py.
Where is test_model_fallback_middleware_with_agent() defined?
test_model_fallback_middleware_with_agent() is defined in libs/langchain_v1/tests/unit_tests/agents/middleware/implementations/test_model_fallback.py at line 275.
What does test_model_fallback_middleware_with_agent() call?
test_model_fallback_middleware_with_agent() calls 2 function(s): _generate, _llm_type.

Analyze Your Own Codebase

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

Try Supermodel Free