For agents
@agentskit/adapters — for agents
Provider adapters (OpenAI-compatible + native) + router + ensemble + fallback + generic factory.
Purpose
Every LLM provider, one contract. Stream, tool calls, retry, abort
all normalized. Plus higher-order adapters that compose candidates
(router, ensemble, fallback) and a createAdapter factory for
custom providers.
Install
npm install @agentskit/adaptersPrimary exports
Native adapters
anthropic,openai,gemini,grok,ollama,deepseek,kimi,langchain,langgraph,vercelAI,generic.createAdapter({ send, parse, abort })— build your own. See Custom adapter recipe.
OpenAI-compatible providers
mistral, cohere, together, groq, fireworks, openrouter,
huggingface, lmstudio, vllm, llamacpp. All share the
createOpenAICompatibleAdapter base; each exposes a default
baseUrl and accepts an override.
Composition
createRouter({ candidates, policy, classify, onRoute })— pick one per request by cost / latency / tags / custom. See Adapter router.createEnsembleAdapter({ candidates, aggregate })— fan-out + merge (majority-vote / concat / longest / fn). See Ensemble.createFallbackAdapter([candidates], { shouldRetry, onFallback })— try in order, fall through on open / first-chunk / zero-chunk failures. See Fallback chain.
Testing + utilities
mockAdapter,recordingAdapter,replayAdapter,inMemorySink— ship without network.simulateStream,chunkText,fetchWithRetry— lower-level helpers.
Embedders
openaiEmbedder,geminiEmbedder,ollamaEmbedder,deepseekEmbedder,grokEmbedder,kimiEmbedder,createOpenAICompatibleEmbedder.
Minimal example
import { openai } from '@agentskit/adapters'
const adapter = openai({ apiKey: process.env.OPENAI_API_KEY!, model: 'gpt-4o-mini' })Common patterns
- Rank candidates by cost and fall back on errors: compose
createRouterwithcreateFallbackAdapter. - A/B providers without users:
speculateorreplayAgainst. - Test without keys: pair
recordingAdapter+replayAdapter(deterministic replay).
Related packages
- @agentskit/core — the
AdapterFactorycontract lives here. - @agentskit/runtime
- @agentskit/eval