model_fallback.py — langchain Source File
Architecture documentation for model_fallback.py, a python file in the langchain codebase. 6 imports, 0 dependents.
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
Classes
Dependencies
- collections.abc
- langchain.agents.middleware.types
- langchain.chat_models
- langchain_core.language_models.chat_models
- langchain_core.messages
- typing
Source
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