Resilience
Fallback chains that keep the conversation alive.
Give any agent an ordered list of backends. The router tries each in turn and falls through on any failure — HTTP error, unreachable host, out of credits, missing key — logging a warning each time. Set it once for chat, TTS, or a shared defaults block.
served
fell through
failed
tts chain · agent: dante
01
elevenlabs
error
02
openai · kokoro (local)
served
warn elevenlabs unreachable, falling back
ok tts_provider=openai/kokoro
ok tts_provider=openai/kokoro
Shared defaults
One chain, inherited by every agent that needs it.
Any agent that omits llm/a2a inherits defaults.llm; any agent that omits tts inherits defaults.tts. An agent can still carry its own chain instead of the shared one — an agent with no chat backend anywhere is a config error at startup, not a silent failure.
defaults:
llm:
- base_url: http://host.docker.internal:11434/v1
model: llama3.2
# fallback if the local server is down
- base_url: https://api.openai.com/v1
model: gpt-4o-mini
api_key: ${OPENAI_API_KEY}
tts:
- provider: minimax
voice_id: ${MINIMAX_DEFAULT_VOICE_ID}