Fallback Models: Callback Notification

Register a FallbackConfig callback that fires when a fallback model serves the request.

Use the callback parameter on FallbackConfig to get notified when a fallback model is activated. This is useful for metrics, alerting, or logging which model actually served a request.

fallback_callback.py
"""
Fallback Models — Callback Notification
==========================================

Use the ``callback`` parameter on FallbackConfig to get notified
when a fallback model is activated. This is useful for metrics,
alerting, or logging which model actually served a request.

The callback fires *after* the fallback model succeeds (including
after the full stream completes for streaming calls).
"""

from agno.agent import Agent
from agno.models.anthropic import Claude
from agno.models.fallback import FallbackConfig
from agno.models.openai import OpenAIChat


# ---------------------------------------------------------------------------
# Define a callback
# ---------------------------------------------------------------------------
def on_fallback(
    primary_model_id: str, fallback_model_id: str, error: Exception
) -> None:
    print(f"[fallback] {primary_model_id} -> {fallback_model_id} (reason: {error})")


# ---------------------------------------------------------------------------
# Create Agent with callback
# ---------------------------------------------------------------------------
agent = Agent(
    model=OpenAIChat(id="gpt-5.6-luna", base_url="http://localhost:1/v1", retries=0),
    fallback_config=FallbackConfig(
        on_error=[Claude(id="claude-sonnet-4-20250514")],
        callback=on_fallback,
    ),
)

# ---------------------------------------------------------------------------
# Run Agent
# ---------------------------------------------------------------------------
if __name__ == "__main__":
    agent.print_response("What is the meaning of life?", stream=True)

Use a current fallback model

Before running, replace every Claude(id="claude-sonnet-4-20250514") with Claude(id="claude-sonnet-4-6"). The original Sonnet 4 API model retired on June 15, 2026; see Claude model deprecations. The source is preserved above, and the setup still requires both providers' API keys.

Run the Example

Set up your virtual environment

uv venv --python 3.12
source .venv/bin/activate

Install dependencies

uv pip install -U agno anthropic openai

Export your API keys

export ANTHROPIC_API_KEY="your_anthropic_api_key_here"
export OPENAI_API_KEY="your_openai_api_key_here"

Run the example

Save the code above as fallback_callback.py, then run:

python fallback_callback.py

Full source: cookbook/02_agents/17_fallback_models/04_fallback_callback.py