llm-retry-chain
v0.1.0
Published
Retry failed LLM calls with automatic provider fallback, circuit breaker, and exponential backoff. Zero dependencies.
Maintainers
Readme
llm-retry-chain
Retry failed LLM calls with automatic provider fallback, circuit breaker, and exponential backoff — zero dependencies.
Install
npm install llm-retry-chainQuick Start
const { RetryChain } = require('llm-retry-chain');
const chain = new RetryChain([
{ name: 'openai', fn: (prompt) => callOpenAI(prompt) },
{ name: 'anthropic', fn: (prompt) => callAnthropic(prompt) },
{ name: 'local', fn: (prompt) => callOllama(prompt) },
]);
// Tries openai first, falls back to anthropic, then local
const result = await chain.call('Explain quantum computing');
// → { text: "...", provider: "openai", attempts: 1, latency: 450 }With Circuit Breaker
const chain = new RetryChain(providers, {
maxRetries: 2,
circuitBreaker: {
threshold: 3, // open after 3 consecutive failures
recoveryMs: 30000, // try again after 30s
},
backoff: {
initialMs: 100,
maxMs: 5000,
multiplier: 2,
},
onFallback: (from, to, error) => {
console.log(`Falling back from ${from} to ${to}: ${error.message}`);
},
});Features
- Provider chain: Ordered fallback across any number of providers
- Circuit breaker: Skips known-failing providers automatically
- Exponential backoff: Configurable retry delays
- Latency tracking: Know which provider responded
- Callbacks: onFallback, onSuccess, onExhausted hooks
License
MIT
