Home / File/ model_fallback.py — langchain Source File

model_fallback.py — langchain Source File

Architecture documentation for model_fallback.py, a python file in the langchain codebase. 6 imports, 0 dependents.

File python LangChainCore LanguageModelBase 6 imports 1 functions 1 classes

Entity Profile

Dependency Diagram

graph LR
  66325212_2762_82c6_b317_a5ec6547806c["model_fallback.py"]
  feec1ec4_6917_867b_d228_b134d0ff8099["typing"]
  66325212_2762_82c6_b317_a5ec6547806c --> feec1ec4_6917_867b_d228_b134d0ff8099
  a681398d_ed44_c914_1a44_5d174223b069["langchain.agents.middleware.types"]
  66325212_2762_82c6_b317_a5ec6547806c --> a681398d_ed44_c914_1a44_5d174223b069
  86772f84_002d_6acf_1cd7_c03ca452c4b1["langchain.chat_models"]
  66325212_2762_82c6_b317_a5ec6547806c --> 86772f84_002d_6acf_1cd7_c03ca452c4b1
  2bf6d401_816d_d011_3b05_a6114f55ff58["collections.abc"]
  66325212_2762_82c6_b317_a5ec6547806c --> 2bf6d401_816d_d011_3b05_a6114f55ff58
  f77bacd6_1087_c145_d5d5_68e6f3937f9d["langchain_core.language_models.chat_models"]
  66325212_2762_82c6_b317_a5ec6547806c --> f77bacd6_1087_c145_d5d5_68e6f3937f9d
  9444498b_8066_55c7_b3a2_1d90c4162a32["langchain_core.messages"]
  66325212_2762_82c6_b317_a5ec6547806c --> 9444498b_8066_55c7_b3a2_1d90c4162a32
  style 66325212_2762_82c6_b317_a5ec6547806c fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

"""Model fallback middleware for agents."""

from __future__ import annotations

from typing import TYPE_CHECKING

from langchain.agents.middleware.types import (
    AgentMiddleware,
    AgentState,
    ContextT,
    ModelRequest,
    ModelResponse,
    ResponseT,
)
from langchain.chat_models import init_chat_model

if TYPE_CHECKING:
    from collections.abc import Awaitable, Callable

    from langchain_core.language_models.chat_models import BaseChatModel
    from langchain_core.messages import AIMessage


class ModelFallbackMiddleware(AgentMiddleware[AgentState[ResponseT], ContextT, ResponseT]):
    """Automatic fallback to alternative models on errors.

    Retries failed model calls with alternative models in sequence until
    success or all models exhausted. Primary model specified in `create_agent`.

    Example:
        ```python
        from langchain.agents.middleware.model_fallback import ModelFallbackMiddleware
        from langchain.agents import create_agent

        fallback = ModelFallbackMiddleware(
            "openai:gpt-4o-mini",  # Try first on error
            "anthropic:claude-sonnet-4-5-20250929",  # Then this
        )

        agent = create_agent(
            model="openai:gpt-4o",  # Primary model
            middleware=[fallback],
        )

        # If primary fails: tries gpt-4o-mini, then claude-sonnet-4-5-20250929
        result = await agent.invoke({"messages": [HumanMessage("Hello")]})
        ```
    """

    def __init__(
        self,
        first_model: str | BaseChatModel,
        *additional_models: str | BaseChatModel,
    ) -> None:
        """Initialize model fallback middleware.

        Args:
            first_model: First fallback model (string name or instance).
            *additional_models: Additional fallbacks in order.
        """
// ... (79 more lines)

Domain

Subdomains

Functions

Dependencies

  • collections.abc
  • langchain.agents.middleware.types
  • langchain.chat_models
  • langchain_core.language_models.chat_models
  • langchain_core.messages
  • typing

Frequently Asked Questions

What does model_fallback.py do?
model_fallback.py is a source file in the langchain codebase, written in python. It belongs to the LangChainCore domain, LanguageModelBase subdomain.
What functions are defined in model_fallback.py?
model_fallback.py defines 1 function(s): collections.
What does model_fallback.py depend on?
model_fallback.py imports 6 module(s): collections.abc, langchain.agents.middleware.types, langchain.chat_models, langchain_core.language_models.chat_models, langchain_core.messages, typing.
Where is model_fallback.py in the architecture?
model_fallback.py is located at libs/langchain_v1/langchain/agents/middleware/model_fallback.py (domain: LangChainCore, subdomain: LanguageModelBase, directory: libs/langchain_v1/langchain/agents/middleware).

Analyze Your Own Codebase

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

Try Supermodel Free