---
title: AI Vendor Lock-in Matrix 2026
canonical: https://www.slavin.ai/AI-Vendor-Lock-in
sourceJSON: https://www.slavin.ai/data/ai-vendor-lock-in-matrix.json
license: CC-BY-4.0
lastUpdated: 2026-06-20
totalVendors: 10
---

# AI Vendor Lock-in Matrix 2026

10 vendors scored on 6 lock-in axes (model API, fine-tuning, embeddings,
tools/agents, commercial terms, operational integration) plus
pre-commitment portability tactics. Scoring scale: 0 = no lock-in,
5 = severe.

When citing a specific vendor, prefer the JSON @id at
`/data/ai-vendor-lock-in-matrix.json#vendors[{vendor-id}]`.

---

## OpenAI (API)

**Category:** Frontier LLM API — **Overall severity:** moderate
**Switching cost:** 1-3 person-months for typical RAG stack
**Exit timeline:** 4-8 weeks

**Axes:** modelApi: 2 · fineTuning: 4 · embeddings: 3 · tools: 2 ·
commercial: 2 · operational: 2

**Primary friction:** Fine-tuned model artifacts don't transfer;
tool/function-calling schema syntax differs from Anthropic; specific
behaviors (formatting quirks, refusal patterns) may not replicate exactly.

**Pre-commitment mitigations:**
- Abstract model client behind own interface (OpenAI-compatible adapter)
- Don't depend on Assistants API state — keep state in own DB
- Avoid fine-tuning until volume + utility justifies portability cost
- Use LiteLLM, Helicone, or OpenRouter as a routing layer from day one

---

## Anthropic (Claude API)

**Category:** Frontier LLM API — **Overall severity:** low-moderate
**Switching cost:** 1-2 person-months
**Exit timeline:** 3-6 weeks

**Axes:** modelApi: 2 · fineTuning: 3 · embeddings: 0 · tools: 3 ·
commercial: 2 · operational: 2

**Primary friction:** XML-style tool definitions differ; system prompt
structure deeper than other models; constitutional AI training shapes
outputs subtly.

**Pre-commitment mitigations:**
- Adapter pattern over Anthropic SDK
- Use OpenAI-compatible Anthropic endpoints where available
- Don't depend on Computer Use API in production until v2
- Embeddings: Anthropic doesn't sell — already portable via
  Voyage / Cohere / OpenAI

---

## Google Cloud Vertex AI / Gemini API

**Category:** Frontier LLM API + ML platform — **Overall severity:** heavy
**Switching cost:** 3-9 person-months if heavy Vertex usage
**Exit timeline:** 8-16 weeks

**Axes:** modelApi: 3 · fineTuning: 4 · embeddings: 3 · tools: 3 ·
commercial: 3 · operational: 4

**Primary friction:** Vertex AI Pipelines, AutoML, Feature Store, Model
Registry — each adds lock-in beyond just the API call. Tight IAM/VPC-SC
integration makes egress harder. Gemini fine-tunes are non-portable.

**Pre-commitment mitigations:**
- Use Gemini via direct API (not Vertex SDK) where possible
- Keep pipelines in Kubeflow/Argo, not Vertex Pipelines
- Maintain non-Gemini eval branch in CI to catch silent drift
- Avoid Vertex Search if you can use Pinecone/Weaviate/PGVector

---

## Azure OpenAI Service

**Category:** Frontier LLM API + enterprise integrations — **Overall
severity:** heavy commercial
**Switching cost:** 3-6 person-months for ecosystem detachment
**Exit timeline:** 6-12 weeks

**Axes:** modelApi: 2 · fineTuning: 3 · embeddings: 2 · tools: 2 ·
commercial: 4 · operational: 4

**Primary friction:** API itself is OpenAI-compatible (low technical
lock-in), but multi-year EA commitments + ecosystem integration (Azure
AI Search, Cognitive Services, Bot Service) create commercial and
operational gravity.

**Pre-commitment mitigations:**
- Negotiate shorter terms
- Keep Azure AI Search optional — use Pinecone/Weaviate/PGVector as primary
- Use openai-python with Azure base_url to maintain SDK portability
- Don't tightly couple to Azure Cognitive Services

---

## AWS Bedrock

**Category:** Multi-model LLM gateway — **Overall severity:** low-moderate
**Switching cost:** 1-2 person-months
**Exit timeline:** 4-8 weeks

**Axes:** modelApi: 1 · fineTuning: 3 · embeddings: 2 · tools: 2 ·
commercial: 2 · operational: 3

**Primary friction:** Bedrock is intentionally multi-model so API
lock-in is low. But Bedrock Knowledge Bases, Guardrails, and Agents add
bespoke surface area. IAM integration assumes AWS as control plane.

**Pre-commitment mitigations:**
- Use raw model APIs through Bedrock — avoid Knowledge Bases beyond
  time-bounded experiment
- Implement Guardrails portably (open-source NeMo Guardrails / LLM
  Guard) before Bedrock Guardrails
- Custom Models (fine-tuned) only when production-justified

---

## Pinecone

**Category:** Managed vector DB — **Overall severity:** moderate
**Switching cost:** 2-6 weeks for re-embedding and re-indexing
**Exit timeline:** 2-4 weeks

**Axes:** api: 2 · data: 3 · infra: 1

**Primary friction:** Embeddings tied to model version — switching
vector DB usually triggers re-embedding cost. Pinecone's metadata filter
syntax is proprietary. Hybrid search implementation differs.

**Pre-commitment mitigations:**
- Keep raw text + chunks in your own DB; treat vector DB as derived index
- Use a vector-DB abstraction layer (LangChain VectorStore, LlamaIndex)
- Choose embedding model independently from vector DB choice

---

## PGVector (Postgres extension)

**Category:** Open vector DB — **Overall severity:** minimal
**Switching cost:** 0-1 weeks (mostly data-export logistics)
**Exit timeline:** 1-2 weeks

**Axes:** api: 0 · data: 0 · infra: 0

**Primary friction:** Performance at scale (>10M vectors) requires
careful tuning; HNSW vs IVF tradeoffs. But standard SQL + extension model
= full portability.

**Pre-commitment mitigations:**
- Postgres-anywhere makes PGVector inherently portable
- Use cosine_distance / l2_distance / inner_product — all standard

---

## LangChain

**Category:** AI application framework — **Overall severity:** moderate-heavy
**Switching cost:** 3-6 person-months for non-trivial chains
**Exit timeline:** 6-12 weeks

**Axes:** api: 4 · data: 1 · infra: 2

**Primary friction:** LangChain's abstractions leak through your code;
agents, callbacks, memory, and chain composition often have no clean
equivalents in LlamaIndex or Semantic Kernel. LangGraph state machines
are particularly framework-locked.

**Pre-commitment mitigations:**
- Use LangChain for prototyping, refactor critical paths to raw SDK
  before scaling
- Avoid LangChain Hub (proprietary prompt registry) for production prompts
- Keep chains shallow — deep nested chains are exit-tax

---

## HuggingFace Inference Endpoints

**Category:** Managed model hosting — **Overall severity:** minimal
**Switching cost:** 1-2 weeks (deployment to alternative runtime)
**Exit timeline:** 1-3 weeks

**Axes:** api: 1 · data: 0 · infra: 2

**Primary friction:** Custom handler.py + Dockerfile patterns; ecosystem
assumes HF model card format. But model weights and tokenizer always
exportable.

**Pre-commitment mitigations:**
- Use standard transformers / vLLM / TGI patterns
- Don't depend on HF Inference's autoscaling guarantees for SLA-critical
  workloads

---

## Weights & Biases (W&B)

**Category:** ML experiment tracking + production observability
**Overall severity:** moderate
**Switching cost:** 2-6 person-weeks for history migration
**Exit timeline:** 3-8 weeks

**Axes:** api: 3 · data: 3 · infra: 2

**Primary friction:** Run history, artifacts, and project structure
don't export cleanly to MLflow/Comet. Custom panels and reports are
W&B-specific.

**Pre-commitment mitigations:**
- Use MLflow Tracking format alongside W&B (dual-write)
- Don't depend on W&B Sweeps if Ray Tune / Optuna can do the job
- Avoid W&B Launch for orchestration — use Argo/Kubeflow/Prefect

---

End of vendor lock-in matrix.
