Catalog of adapters shipped in the monorepo with their interface and use case.
Every adapter in the table below lives under adapters/ and is published to npm under @kb-labs/adapters-<name>. Pick by interface (the contract the runtime sees) and runtime characteristics (what backend, what tradeoffs).
To swap an adapter, change one line in kb.config.jsonc under platform.adapters. See Adapters → Overview for the swap mechanics, and Guides → LLM Setup for an end-to-end walkthrough.
LLM (ILLM)
Package
Implements
Use when
@kb-labs/adapters-kblabs-gateway
ILLM
Default. Bootstrap-friendly free tier through a hosted proxy. Good for onboarding, demos, light dev use.
@kb-labs/adapters-openai
ILLM
You have your own OpenAI-compatible key. Supports baseURL so it also works against self-hosted inference servers (vLLM, Ollama with OpenAI-compat shim, custom proxies).
@kb-labs/adapters-vibeproxy
ILLM
Internal routing proxy. Niche; most teams won't reach for this.
Embeddings (IEmbeddings)
Package
Implements
Use when
@kb-labs/adapters-openai/embeddings
IEmbeddings
OpenAI text-embedding models (text-embedding-3-small, -large, etc.). Default for RAG flows.
Vector store (IVectorStore)
Package
Implements
Use when
@kb-labs/adapters-qdrant
IVectorStore
Persistent vector database. Use for production RAG, shared indices, large corpora.
Cache (ICache)
Package
Implements
Use when
@kb-labs/adapters-redis
ICache
Shared cache across worker processes / hosts. Standard production choice.
@kb-labs/adapters-eventbus-cache
ICache
Cache that publishes invalidations on the platform event bus. Use when multiple plugins share cached state and need notification of changes.
Storage (IStorage)
Package
Implements
Use when
@kb-labs/adapters-fs
IStorage
Default. Local filesystem under .kb/storage/. Zero deps, perfect for single-host dev and small deployments.
Logger (ILogger)
Package
Implements
Use when
@kb-labs/adapters-pino
ILogger
Default. Structured JSON logs to stdout. Standard production choice when something else (Loki, CloudWatch, journald) tails stdout.
@kb-labs/adapters-pino-http
ILogger
Pino with HTTP request enrichment. Use inside HTTP services that want auto-attached req/res fields.
@kb-labs/adapters-log-ringbuffer
ILogger
In-memory ring buffer queryable from the platform. Use alongside Pino when you want recent logs accessible via API without parsing files.
@kb-labs/adapters-log-sqlite
ILogger
Persists structured logs to a local SQLite file. Searchable with SQL, survives restarts.
Analytics (IAnalytics)
Package
Implements
Use when
@kb-labs/adapters-analytics-file
IAnalytics
Default. JSONL file at .kb/analytics/events.jsonl. Zero deps, append-only, easy to grep.
@kb-labs/adapters-analytics-sqlite
IAnalytics
SQLite database. Query events with SQL, build aggregations.
@kb-labs/adapters-analytics-duckdb
IAnalytics
DuckDB embedded analytical database. Same single-file convenience as SQLite, much faster for analytical queries over millions of events.
SQL database (ISQLDatabase)
Package
Implements
Use when
@kb-labs/adapters-sqlite
ISQLDatabase
Embedded SQLite. Single-file, zero-config, suitable for plugin-local persistence.
Document database (IDocumentDatabase)
Package
Implements
Use when
@kb-labs/adapters-mongodb
IDocumentDatabase
MongoDB-backed document store.
Workspace (IWorkspaceProvider)
Package
Implements
Use when
@kb-labs/adapters-workspace-localfs
IWorkspaceProvider
Direct read/write against the local filesystem. Default for single-machine dev.
@kb-labs/adapters-workspace-worktree
IWorkspaceProvider
Each plugin invocation gets its own git worktree. Isolation between concurrent runs without copying files.
@kb-labs/adapters-workspace-agent
IWorkspaceProvider
Routes filesystem ops through the host agent over WebSocket. Use for cloud-side workflows that need to touch a developer's local files.
Environment (IEnvironmentProvider)
Package
Implements
Use when
@kb-labs/adapters-environment-docker
IEnvironmentProvider
Provisions a Docker container per plugin invocation when the manifest declares execution.mode: 'container'.
Snapshot (ISnapshotProvider)
Package
Implements
Use when
@kb-labs/adapters-snapshot-localfs
ISnapshotProvider
Local filesystem snapshots used by workflow rollback and recovery.
Transport
@kb-labs/adapters-transport is a base package consumed by other adapters — not selected directly via kb.config.jsonc. Don't worry about it unless you're writing a custom adapter that needs the same HTTP/WebSocket primitives.
Retry classification
Built-in adapters use the retry taxonomy exposed through the SDK facade. Custom adapters should classify failures through the SDK rather than importing the retry implementation directly:
TypeScript
import { classifyFailure } from '@kb-labs/sdk/adapters';const failure = classifyFailure(error, { source: 'transport', phase: 'dispatch',});if (failure.transient && failure.retrySafety === 'safe') { // Retry only when repeating the operation is safe.}
Infrastructure adapters can import the same facade from @kb-labs/sdk/adapters/infra. A diagnostic written to stderr is not, by itself, a failed adapter operation.
What's not here yet
The roadmap-but-not-shipped list (don't try to use these via kb.config.jsonc — they 404):
Cache: Memcached, in-memory standalone (today the platform falls back to NoOp when no cache adapter is configured).
Vector store: Pinecone, Chroma, pgvector.
Storage: S3, MinIO, GCS, Azure Blob.
LLM: Anthropic native, Cohere, local Llama.cpp adapter.
SQL: Postgres, MySQL.
If you need one before it ships, write a custom adapter — see Guides → First Adapter. Most of these are an afternoon of work because the interface is small and there's no platform plumbing to figure out.