Most AI applications begin with a direct model integration.

Install an SDK, add an API key and send a prompt. This works well until the application needs a second provider.

A coding task may work better with one model, while another may be more suitable for vision, reasoning, long context or low-cost processing. At that point, model access becomes an architecture problem.

The dependency problem

When provider-specific logic lives inside product code, the application becomes responsible for: