Skip to main content

Multi-Provider Gateway Setup

Configure your Keeptrusts gateway to route requests across multiple AI providers with automatic fallback, task-aware routing, and cost optimization.

Quick Start

Add providers to your policy-config.yaml:

providers:
targets:
- id: openai-default
provider: openai
model: gpt-5.4-mini
required: false
secret_key_ref:
env: OPENAI_API_KEY

- id: anthropic-default
provider: anthropic
model: claude-sonnet-4-20250514
required: false
secret_key_ref:
env: ANTHROPIC_API_KEY

- id: mistral-default
provider: mistral
model: mistral-large-latest
required: false
secret_key_ref:
env: MISTRAL_API_KEY

- id: gemini-default
provider: gemini
model: gemini-2.0-flash
required: false
secret_key_ref:
env: GOOGLE_AI_API_KEY

- id: github-models
provider: github
model: gpt-5.4-mini
required: false
secret_key_ref:
env: GITHUB_TOKEN

routing:
strategy: ordered
order: ["openai-default", "anthropic-default", "gemini-default", "mistral-default", "github-models"]
allow_fallbacks: true

Provider Required vs Optional

By default, providers are optional (required: false). If credentials are missing, the provider is excluded from routing silently.

Set required: true for strict mode — the gateway will refuse to start if the credential is unresolved:

- id: openai-primary
provider: openai
model: gpt-5.4-mini
required: true
secret_key_ref:
env: OPENAI_API_KEY

Secret Resolution Methods

secret_key_ref:
env: OPENAI_API_KEY
secret_key_ref:
store: openai-production-key

macOS Keychain (local development only)

secret_key_ref:
keychain: openai-api-key

Note: Keychain refs are rejected for hosted gateways.

Routing Strategies

StrategyDescriptionBest For
orderedTry providers in configured orderPredictable behavior
task_awareRoute by request task typeMixed workloads
lowest_latencyPrefer fastest providerReal-time apps
highest_throughputPrefer highest tokens/secBatch processing
round_robinDistribute evenlyLoad balancing
weighted_round_robinDistribute by weightCost optimization

Task-Aware Routing

providers:
routing:
strategy: task_aware
task_profiles:
- task_type: code_generation
preferred_providers: ["anthropic-default", "openai-default"]
- task_type: multilingual
preferred_providers: ["gemini-default", "mistral-default"]
- task_type: structured_output
preferred_providers: ["openai-default"]

Budget Policy

providers:
routing:
budget_policy:
soft_limit_action: downgrade # Switch to cheaper model
hard_limit_action: reject # Reject request

Latency Optimization

providers:
routing:
latency_optimization:
streaming_preferred_ttft_ms: 200
batch_preferred_throughput_tps: 50.0

Validating Your Configuration

kt gateway check --config policy-config.yaml
kt secrets status --config policy-config.yaml