AI Strategy · 2026-06-10 · 7 min read

Buying AI One Year at a Time: How I Keep Vendor Lock-In Out of What I Ship

Companies are buying AI one year at a time. Here is how I think about AI provider lock-in risk, and how I architect so swapping a model is a config change.

Buying AI One Year at a Time: How I Keep Vendor Lock-In Out of What I Ship
Fig. 01 · AI Strategy

This month handed operators a useful signal. Reporting from CNBC noted that companies like MongoDB are buying AI products one year at a time instead of signing longer deals, and that developers routinely test multiple coding tools with very little vendor lock-in. At the same time, VentureBeat framed the real competitive front as the agent control plane: security, permissions, and task reliability, not raw model quality alone.

Read those two things together and the message is clear. Nobody serious wants to bet their business on one lab right now, and the labs themselves know the fight has moved up the stack.

I think the nervousness is rational. I also think most teams respond to it the wrong way. So here is how I actually handle it when I build.

The fear is rational, the usual response is not

The instinct, when you are worried about getting locked in, is to try to pick the winner. Read the benchmarks, decide which lab is ahead, standardize on it, and hope you chose right.

I do the opposite, because the premise is broken. The model layer is churning too fast to bet a company on a single provider. Just look at the last few weeks. Anthropic shipped a 1 million token default context on Claude Opus. Google reset Gemini token quotas after developer pushback. The thing you would be standardizing on is moving under your feet while you read this.

So I stopped asking which lab will win. That is the wrong question, and it is unanswerable on the timeline that matters. The better question is: how do I stay able to switch? If I can move providers cheaply, I never have to be right about the future. I just have to keep my options open.

That reframe changes everything downstream, because it turns a high-stakes prediction into an architecture decision I actually control.

Where AI lock-in actually hides

Here is the part most operators get backwards. The lock-in is rarely the model. The model is the easiest thing to swap. A prompt is portable. What traps you is everything you built around the model.

The real exit costs hide in two places:

Your data, trapped in a vendor's format. If your embeddings were generated by one provider's model and live in a vector store keyed to that provider, moving means re-embedding everything and re-indexing it. That is not a config change. That is a project, and it gets more expensive every month you add data.

Your logic, fused to one provider's SDK quirks. If your application code is threaded through with one vendor's specific tool-calling schema, their streaming format, their particular way of handling structured output, then the provider name is not a setting. It is a dependency baked into hundreds of call sites.

That is the trap. If switching a model means rewriting your app, the model was never the lock-in. Your architecture was. And the uncomfortable truth is that this kind of lock-in is almost always self-inflicted, built one convenient shortcut at a time.

How I design so a swap is a config change

The fix is not exotic. It is discipline applied early, before the shortcuts pile up. There are three things I hold to on every build.

Keep the model behind one interface. The provider name should be a setting in one place, not a dependency threaded through the codebase. The application asks for a completion or a structured response from an internal boundary, and which lab fulfills that request is a configuration detail. When a new model ships, I change a setting, not a thousand lines. This is the single highest-leverage decision, and it costs almost nothing to make on day one and a fortune to retrofit on day three hundred.

Own your data and your evals. I keep the data and the prompts in a form I can export without the vendor's help. Just as important, I keep an evaluation set I trust, so that when a new model appears I can prove it is at least as good before I route real traffic to it. Without an eval you trust, you cannot switch with confidence, so you do not switch at all, and the lock-in wins by default.

Put deterministic orchestration around the model. The reliable parts of the system, the routing, the retries, the validation, the human-in-the-loop checks, should not move when the model moves. The model is one swappable component inside a harness I control, not the thing the whole system is built on. That is also, not coincidentally, where the labs say the real competition is heading: the control plane around the model, not the model itself.

None of this is free, and I want to be honest about the tradeoff. Building behind an interface instead of calling a provider SDK directly is a little more work up front. Maintaining your own eval set takes discipline nobody is forcing on you. The convenient path, wiring straight to one vendor and shipping faster this week, is genuinely faster this week. The cost shows up later, when the model layer shifts and the team that took the shortcut is staring down a rewrite while the team that paid the small tax up front changes a setting. I have been on both sides of that, and the small tax wins every time the horizon is longer than a quarter.

Why I pick a different lab per problem on purpose

Because I built things this way, I do not have to be loyal to any one lab. I pick a different one per problem, on purpose, based on the constraint that actually decides the outcome.

A live healthcare product I ship, Smile PreVue, runs on Google Vertex AI with Gemini under a signed BAA. The deciding constraint there was not which model wrote the prettiest output. It was the compliance path. For a HIPAA-grade product, the BAA and the data-handling guarantees were the whole ballgame, so the lab that offered the cleanest compliance story won that slot.

A complex attribution and orchestration workload I run sits on Anthropic Claude, because the reasoning held up under the messy, multi-step logic that work demands. Different problem, different decisive constraint, different lab.

And for brand image work where rendering legible text inside the image mattered, I reach for OpenAI's image model, because text rendering was the deciding factor and it was simply better at it.

Notice what is happening here. No single lab is load-bearing on its own. If any one of them changed its pricing, its terms, or its quality tomorrow, I would feel it in one workload, not across the whole business. That is the entire point. It is not loyalty, and it is not hedging for its own sake. It is matching the decisive constraint of each problem to the lab that solves it best, while keeping every one of them swappable.

This is also where a small, operator-led studio has an edge over a larger, more enterprise-y shop. A bigger firm like AE Studio often standardizes on one stack because that is what scales across a large team. I build provider-agnostic from day one because I am the one who has to live with the consequences when the model layer shifts. My agent orchestration methodology assumes the churn instead of fighting it.

A short evaluation checklist for an operator

If you are buying or building AI right now and you want to keep your options open, here are the four questions I would make every system answer.

  • Can I export my data and my prompts without the vendor's help? If the answer is no, you are already locked in, you just have not felt it yet.
  • Is a model swap a config change or a project? Be honest. If it is a project, your architecture is the cost, not the model.
  • Do I have an eval I trust enough to switch on? Without it, you cannot move with confidence, and you will stay put out of fear rather than choice.
  • Is any single lab load-bearing for the whole business? If one provider going sideways would take down everything, spread the risk across problems.

Buying AI one year at a time is a smart instinct. It only works, though, if what you built can actually take advantage of the freedom. The contract gives you the option to leave. The architecture is what makes leaving cheap.

If you want a second set of eyes on where lock-in is hiding in what you are building, start a conversation. I would rather help you design for the swap now than untangle it later.

AI strategybuild vs buymulti-provider AI

Liked this?

Want this built for your team, or want to learn it yourself? Either way, start here.

Next read →

Reliability Is a Harness Problem, Not Just a Model Problem