Writing
The Model Is Becoming a Replaceable Backend
Choosing a provider used to mean choosing an architecture. A stable interface makes replacement possible and evaluation makes it safe.
Writing
Choosing a provider used to mean choosing an architecture. A stable interface makes replacement possible and evaluation makes it safe.
Notes
For the last few years, choosing an AI model has often meant choosing an application architecture.
Use one provider and you inherit its message format, tool schema, streaming behaviour, structured-output rules and deployment assumptions. Moving to another model can require more than changing an endpoint because model-specific behaviour leaks into the product around it.
Apple's WWDC26 updates point toward a cleaner boundary. The Foundation Models framework can now work with Apple's on-device model, Private Cloud Compute, local models, or third-party providers through a common LanguageModel protocol. A session can keep the same conversation while a Dynamic Profile changes the model, tools and instructions used for the next part of the task.
I think this is a useful direction for AI application design. The model should increasingly behave like a replaceable compute backend rather than the architecture the whole product is built around.
A few years ago, the default model decision was mostly about quality.
Which API produces the best answer?
That is no longer enough. A short private classification task may fit an on-device model, while a harder reasoning problem may need a cloud backend with a larger context window. A company may need a self-hosted model for sensitive data and a frontier provider elsewhere.
Apple's current stack makes these differences explicit. Its on-device system model is available directly through the Foundation Models framework. Private Cloud Compute provides a larger 32K context window and stronger reasoning for workloads that need more capacity. Core AI and MLX give developers ways to run their own models locally. The new LanguageModel protocol lets third-party or server-hosted providers conform to the same framework.
The product can choose a model because of the task rather than because the codebase was written around that vendor.
The interesting piece is not that Apple supports more model providers. Applications have been able to call several APIs for years.
The difference is putting them behind one programming contract.
Apple's WWDC session describes two main protocol pieces. LanguageModel declares what a model can do and provides the configuration required to create it. LanguageModelExecutor performs inference and streams the response back to the session. The surrounding Foundation Models framework can keep handling sessions, tool calling and generated structured values above that boundary.
That separation means the application's business logic does not have to know every detail of the model implementation.
This resembles ordinary software architecture: product logic should depend on a stable capability boundary where one exists, not every detail of the implementation behind it. AI applications need the same discipline.
There is an obvious limit to this idea: language models are not interchangeable databases.
One model may support images while another accepts only text. One may call tools reliably while another struggles with the same schema. Context windows differ. Reasoning modes differ. Latency, price and safety behaviour differ. Even two versions of the same on-device model can respond differently to an unchanged prompt.
Apple acknowledges this directly. Its developer documentation warns that the system language model can change when the operating system updates and recommends testing prompts against each new version.
That means a common API cannot pretend every model behaves identically.
The abstraction has to expose capability while hiding unnecessary implementation detail.
This is why the LanguageModel protocol includes capability declarations. The application can share one interface while still deciding explicitly which backend suits the task.
Replaceable does not mean equivalent.
Apple's Dynamic Profiles are an interesting extension of this idea.
A single LanguageModelSession can change its active instructions, tools and model while preserving the conversation. Apple's WWDC example uses one profile for quick analysis and another backed by Private Cloud Compute for deeper reasoning.
That creates a more flexible architecture than assigning one model to the entire feature.
An app could begin with an on-device model for a fast private interaction. If the task becomes more complex, a profile can move the next step to a stronger backend. Another branch could expose a different tool set without rebuilding the whole session.
This connects to the routing direction I wrote about with GPT-5 last year. Compute allocation can become part of application behaviour rather than a choice the user makes first.
The difference here is that the routing boundary is moving into a general application framework rather than staying inside one provider's product.
On-device models make this architecture more useful because local and cloud inference have very different operating properties.
A local model can avoid a network round trip and keep data on the device. It has tighter memory and context constraints. A server model can offer more compute and a larger working set but introduces network latency, availability and privacy considerations.
Those trade-offs are reasons to choose per task rather than permanently.
For a creative application, lightweight metadata extraction or project search may belong on-device. A heavier analysis of a large production document may move to a cloud model. A studio with its own internal model could expose that model through the same interface for private assets.
The application feature can remain conceptually the same while the execution backend changes according to policy.
There is a trap here. If switching models becomes technically easy, teams may assume it is behaviourally safe.
It is not.
Apple introduced an Evaluations framework at the same WWDC for exactly this reason. Generative systems do not preserve the deterministic input-output contract of ordinary software, so developers need datasets and evaluators that measure behaviour statistically rather than relying only on unit tests.
That becomes even more valuable when several models can sit behind one interface.
If I can switch a production feature from an on-device model to a cloud model with one configuration change, I need an evaluation suite that tells me what changed. It has to tell me whether tool selection improved, whether structured output regressed, whether the new model kept to project terminology, and whether latency fell far enough to justify a quality trade.
The interface makes replacement possible. Evaluation makes it safe enough to trust.
The same pattern makes sense for the kind of Blender, game-development and automation systems I build.
I would not let the pipeline depend on one model's exact prompt format. I would define the domain operations first: inspect asset metadata, validate a scene, summarise a build log, classify an export error, generate a structured task plan.
Then I would decide which model class is appropriate for each operation.
Some work can run locally for privacy and responsiveness. Other work may need a larger hosted or internal model. The rest of the production code should not care more than necessary.
Model generations move quickly; production pipelines do not. A Blender validation system might live for years while the model behind one advisory step changes several times. Tying the pipeline to the model rather than the capability creates avoidable maintenance work.
I think model abstraction will become a normal layer in AI application architecture.
Not because models become commodities. Their differences will remain large and sometimes product-defining. But applications will increasingly separate the capability they need from the specific backend that provides it.
The stack may look familiar: product logic defines the task, an evaluation layer defines acceptable behaviour, routing policy chooses the backend, and a model protocol handles execution.
On-device, private cloud, self-hosted and frontier APIs can then compete inside the same product rather than forcing separate product architectures.
Apple's framework is one implementation of that idea, not proof that its protocol becomes an industry standard. The broader signal is more useful than the specific API.
The model is moving downward in the stack.
It is still the intelligence engine.
It does not have to be the application architecture.
More