Capital Commerce Consulting
Stack & Toolsdeep-dive14 min baca

Vendor lock-in 4 layer di era agentic AI — exit strategy yang masuk akal

Foundation model, orchestration, runtime, developer pattern. Empat layer compound jadi lock-in dalam. Breakdown per layer + pattern dengan escape hatch.

Vendor lock-in 4 layer di era agentic AI — exit strategy yang masuk akal

Era agentic AI 2024-2026 punya pattern lock-in yang lebih dalam daripada SaaS lock-in tradisional. Dulu, vendor lock-in = data terkunci di proprietary format + kontrak panjang. Sekarang, lock-in compound di empat lapis simultaneously.

Setiap engagement klien yang masuk Tier 1A (burned in-house AI builders) yang kami audit, kami petakan posisinya di 4 lapis ini. Yang gagal recovery dari "75% bucket" Forrester biasanya stuck di multiple layer secara compound.

4 lapis lock-in di stack agentic AI

Lapis 1 — Foundation model

Pilihan LLM provider (Anthropic, OpenAI, Google, Meta, lokal) yang Anda pakai. Lock-in muncul saat:

  • Prompt engineering Anda tuning ke karakter model spesifik (Claude vs GPT vs Gemini punya respons pattern berbeda untuk prompt sama)
  • Context window dependency — pattern Anda assume 200k+ token context, vendor lain max 32k
  • Tool calling format proprietary — Anthropic tool use ≠ OpenAI function calling ≠ Gemini function declaration
  • Multi-modal capability — vision / audio / document processing yang Anda pakai mungkin tidak port ke vendor lain dengan parity

Exit hatch:

  • Pakai Model Context Protocol (MCP) — standard interop yang abstraksi tool calling format
  • Pakai LiteLLM proxy atau OpenRouter — abstraksi provider, prompt format auto-translated
  • Avoid prompt yang assume specific model behavior — keep prompt portable + test di multiple model

Lapis 2 — Orchestration framework

Framework untuk compose multi-step workflow + agent reasoning loop. Pilihan: LangChain, LlamaIndex, Anthropic SDK direct, custom Python, n8n, Temporal, Inngest, dst.

Lock-in muncul saat:

  • Workflow definition di-encode dalam framework-specific syntax (LangChain LCEL, LangGraph node graph)
  • Agent state persistence pakai framework's storage abstraction
  • Tool calling pattern di-couple dengan framework lifecycle hook
  • Memory + context management lapped dalam framework's session pattern

Exit hatch:

  • Pakai n8n atau Temporal atau Inngest — durable workflow engine yang export-able JSON config
  • Avoid framework yang lock-in di runtime memory (LangGraph in-memory state) — pakai eksternal state (Postgres, Redis)
  • Keep agent reasoning loop simple + Python-native, bukan framework-special-syntax
  • Multi-step orchestration pakai standard pattern (queue + worker + state machine), bukan framework's proprietary primitive

Lapis 3 — Runtime environment

Cloud infra yang host LLM + workflow + state. Pilihan: AWS Bedrock, Azure OpenAI, GCP Vertex, Modal, Railway, fly.io, self-host.

Lock-in muncul saat:

  • IAM + role configuration coupled ke cloud-specific (AWS IAM ≠ GCP IAM ≠ Azure RBAC)
  • Storage primitives coupled (S3 vs GCS vs Blob — meskipun S3-compatible interface helps)
  • Networking + secrets management vendor-specific (Secrets Manager, Parameter Store, KMS)
  • Pricing model coupled — AWS Bedrock per-token billing != Azure OpenAI deployment-based

Exit hatch:

  • Pakai Docker Compose + standard Linux primitives — port-able antara cloud
  • Postgres + S3-compatible storage — abstraksi yang multi-vendor (DigitalOcean Spaces, Cloudflare R2, AWS S3, Backblaze B2)
  • Bitwarden atau HashiCorp Vault untuk secrets — bukan vendor-specific secret manager
  • Pricing: pakai LiteLLM proxy untuk multi-provider routing — switch saat cost shift

Lapis 4 — Developer pattern + institutional knowledge

Layer paling sticky + paling sering di-overlook. Lock-in muncul saat:

  • Tim Anda hanya familiar dengan satu provider (developer hire dengan "OpenAI experience" bertahun-tahun)
  • Documentation + runbook reference pattern provider-specific
  • Internal training material + onboarding flow assume stack tertentu
  • Vendor-specific SDK + library dependencies di codebase Anda

Cost compound paling besar di sini. Switch foundation model gampang (config change). Switch developer mindset + institutional knowledge butuh 3-12 bulan.

Exit hatch:

  • Hire developer dengan experience multi-provider, bukan single-vendor advocate
  • Documentation pattern pakai abstraksi (e.g. "LLM tier 1" instead of "Claude Sonnet")
  • Internal training cover MCP + provider-agnostic patterns
  • Library + SDK pilih yang vendor-agnostic (LiteLLM, MCP client, Pydantic untuk schema)

Pattern recommendation per scope

Scope kecil (< 10 manday LLM workflow)

Pakai 1 provider direct (Anthropic Claude paling stable + best dev experience 2026). LiteLLM proxy optional — break-even point biasanya saat scope tumbuh.

Lock-in risk: rendah. Cost switch < 5 manday kalau perlu pivot.

Scope medium (10-50 manday)

LiteLLM proxy mandatory. Multi-model fallback config. Workflow di n8n atau Temporal. State di Postgres.

Lock-in risk: medium tapi exit-able. Cost switch 5-15 manday.

Scope besar (50+ manday)

Full 4-layer abstraction. MCP-native. LiteLLM + multi-provider config. n8n self-host atau Temporal. Postgres + Redis. Bitwarden secrets. Self-host atau BYOC.

Lock-in risk: dikontrol per layer. Cost switch per layer 5-20 manday.

Stack yang kami operasikan internal

Sebagai reference baseline (per Pillar 2 transparency footnote, bukan brand authority claim):

  • Layer 1: Anthropic Claude (Sonnet, Haiku, Opus) via LiteLLM
  • Layer 2: n8n self-host untuk durable workflow + Python supervisor service untuk agent orchestration
  • Layer 3: DigitalOcean Singapore (sgp1) — single provider, exit feasible via Docker Compose port
  • Layer 4: Internal documentation pakai abstraksi LLM-tier (1/2/3) bukan model name; tim familiar MCP

Setiap layer punya exit option documented + tested minimum 2x per tahun (kami switch antar fallback model setiap kuartal sebagai exit drill).

Honest trade-off

Multi-layer abstraksi ada cost-nya:

  • Performance overhead — LiteLLM proxy add ~50-200ms latency per call (negligible untuk B2B workflow, signifikan untuk consumer real-time chat)
  • Maintenance overhead — multiple library dependency yang harus di-track + updated
  • Mental model overhead — developer butuh familiar dengan abstraksi layer instead of direct vendor SDK

Untuk klien dengan scope kecil + speed-to-market priority, pakai 1 provider direct OK. Optimization untuk multi-vendor switch hanya make sense di scope medium-besar atau klien yang explicit prioritize sovereign exit option.

Kapan pattern ini fit untuk Anda

  • Tier 1A (burned in-house AI builders) — recovery dari engagement past yang stuck di vendor lock-in
  • Klien regulated vertical yang punya audit posture mandate vendor diversification
  • Klien yang invest jangka panjang (3-5 tahun) di AI capability + ingin kontrol cost trajectory
  • Tim teknis yang sudah experienced + bisa absorb maintenance overhead

Kapan TIDAK fit

  • Scope kecil + MVP focus — over-engineering, abstraksi belum worth-it
  • Tim teknis terbatas + tidak punya bandwidth maintain multi-layer
  • Klien yang prioritize speed-to-market di atas long-term flexibility

Kami sampaikan honest di konsultasi awal — pattern multi-layer abstraksi ini bukan untuk semua klien.


Tag internal: Pillar 4 · Sovereign · Deep dive · S1 Cross-reference: /services/ai-operating-system · /pattern · Decisions/ADR-002-openrouter-litellm-migration · Decisions/ADR-012-claude-local-mcp-architecture