1.2 KiB
1.2 KiB
ADR 007: Model Router Fallback Semantics
Status
Accepted
Context
В проекте уже зафиксирована идея:
- сначала weak;
- затем retry weak;
- затем strong fallback;
- external models не запрещаются кодом, а регулируются конфигом и policy.
Decision
Fallback pipeline:
- slot resolution выбирает provider и model для requested slot;
- weak model вызывается первой;
- если ответ невалиден по output contract, выполняется ограниченный retry weak;
- если weak исчерпан, router проверяет доступность strong;
- если strong разрешен config+policy, выполняется strong fallback;
- если strong недоступен, возвращается structured degraded result.
Notes
- “невалиден” означает нарушение response schema, parser failure или явный quality rejection;
- fallback trail сохраняется в invocation log;
- внешняя strong model не вызывается, если
allow_external_models=falseили policy запрещает.