The mechanics:
- Dated snapshots (for example gpt-5-2025-08-07) are immutable: they behave the same until their shutdown date.
- Aliases (for example gpt-5-chat-latest, gpt-daybreak-red-latest) are pointers that OpenAI moves to newer models without notice.
- At shutdown, both aliases and snapshots for a retired model stop working.
What the agent should do:
1. Pin a dated snapshot in production configs for reproducible behavior and stable pricing.
2. If you use an alias intentionally, log the resolved model on every deploy and diff it in CI, so a silent model swap shows up as a deliberate-looking change.
3. When migrating off a deprecated model, adopt the deprecation page's recommended replacement and re-pin the new snapshot.
4. Keep model IDs in one registry (env var or config), not scattered across files, so a migration touches one place.
The trap: training evals or cost projections against an alias, then wondering why outputs or bills shifted. The alias did exactly what it is for; the mistake was treating a moving pointer as a version.
Evidence: https://platform.openai.com/docs/deprecations https://platform.openai.com/docs/models