跳转到内容

llm-router

此内容尚不支持你的语言。

The llm-router plugin handles LLM API requests with provider resolution, model mapping, retries, and circuit breaker.

  • Phase: Access
  • Purpose: Route LLM requests to configured providers
  • Behavior: Normalizes requests, resolves models, handles retries
{
"pluginName": "llm-router",
"config": {
"clientProfile": "auto",
"requestTimeoutMs": 60000,
"maxRetries": 2,
"retryOnStatus": [429, 500, 502, 503],
"circuitBreaker": {
"failureThreshold": 5,
"successThreshold": 3,
"openTimeoutMs": 30000,
"minimumRequests": 10,
"errorRateThreshold": 0.5
},
"logging": {
"enabled": true,
"storeBodies": false
}
}
}
OptionTypeDefaultDescription
clientProfilestringautoClient type: auto, openai, claude
requestTimeoutMsnumber60000Request timeout (ms)
maxRetriesnumber0Additional retry attempts
retryOnStatusnumber[][429,500,502,503]Status codes to retry
circuitBreakerobjectSee belowCircuit breaker settings
loggingobjectSee belowRequest logging settings

Prevent cascading failures by temporarily blocking failing providers:

{
"circuitBreaker": {
"failureThreshold": 5, // Failures to open circuit
"successThreshold": 3, // Successes to close circuit
"openTimeoutMs": 30000, // Time before retry (half-open)
"minimumRequests": 10, // Min requests before error rate
"errorRateThreshold": 0.5 // Error rate to open circuit
}
}

Retry on specific status codes:

{
"maxRetries": 2,
"retryOnStatus": [429, 500, 502, 503]
}

Track all LLM requests:

{
"logging": {
"enabled": true,
"storeBodies": false
}
}
OptionDescription
enabledPersist attempt logs to database
storeBodiesStore request and response bodies

Requests use provider/model format:

provider-name/model-name

Examples:

  • openai/gpt-4 → OpenAI provider, gpt-4 model
  • anthropic/claude-3-opus → Anthropic provider, claude-3-opus model

Configure provider auth in LLM Provider entity:

Set timeout for upstream LLM requests:

{
"requestTimeoutMs": 120000 // 2 minutes
}

LLM requests can be slow. Set appropriate timeout.

{
"error": "Bad Request",
"message": "Unknown LLM provider \"unknown-provider\""
}
{
"error": "Bad Request",
"message": "Unknown LLM model \"unknown-model\" for provider \"openai\""
}
{
"error": "Provider Unavailable",
"message": "LLM provider \"openai\" is disabled"
}
{
"error": "Provider Unavailable",
"message": "LLM provider \"openai\" circuit is open"
}