"Use this when configuring, validating, or debugging LiteLLM Router
Scanned 9/8/2026
Install to Claude Code
npx -y skills add VectorSpaceLab/AREX-Skill --skill routing --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Routing?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/vectorspacelab-routing)More formats (shields.io, HTML) on the badges page.
---
name: routing
description: "Use this when configuring, validating, or debugging LiteLLM Router
model groups, fallbacks, retries, cooldowns, budgets, routing strategies,
health-check routing, aliases, tag filtering, adaptive/quality/complexity
routing, or proxy YAML routing behavior."
disable-model-invocation: true
metadata:
disco-role: operating
license: NOASSERTION
---
# LiteLLM Routing
Use this sub-skill for LiteLLM's `Router` class and proxy routing configuration. Route raw one-off SDK calls to `sdk-core`, proxy deployment and admin operations to `proxy-server`, and provider-specific endpoint/auth details to `providers-and-endpoints`.
## Start Here
1. Identify whether the user is using direct Python or proxy YAML.
2. Confirm the logical model group names in `model_list[*].model_name`; fallbacks, aliases, routing groups, tag filtering, and adaptive router configs all refer to these logical names unless they explicitly configure provider model strings under `litellm_params.model`.
3. Validate config shape before runtime debugging:
```bash
python sub-skills/routing/scripts/inspect_router_config.py path/to/config.yaml
```
4. For Python usage, build `litellm.Router(model_list=[...])` and call `router.completion(...)`, `await router.acompletion(...)`, `router.embedding(...)`, or `await router.aembedding(...)`. Do not mix sync methods inside an active async event loop.
5. For proxy usage, put routing keys in the YAML config and start the proxy normally; clients call the logical `model_name`.
## Common Tasks
- Add load balancing: define multiple `model_list` entries with the same `model_name`, each with its own `litellm_params.model`, credentials, and optional `rpm`/`tpm`.
- Add fallbacks: set `fallbacks: [{primary-group: [backup-group]}]` and optionally `default_fallbacks` or `[{"*": [...]}]` for generic fallback behavior.
- Add retries/cooldowns: use `num_retries`, `retry_policy`, `allowed_fails`, `allowed_fails_policy`, `cooldown_time`, and `max_fallbacks` together; retries happen before or within fallback flows depending on the error path.
- Add pre-call filtering: enable `enable_pre_call_checks` for context/rate/budget checks and `enable_tag_filtering` when requests must choose deployments by tags.
- Add strategy routing: choose `routing_strategy` from `simple-shuffle`, `least-busy`, `usage-based-routing`, `usage-based-routing-v2`, `latency-based-routing`, or `cost-based-routing`; use `routing_groups` when different logical groups need different strategies.
- Add health-aware routing: set `enable_health_check_routing` and keep health checks fresh; stale state can filter otherwise valid deployments.
- Add model aliases: use `model_group_alias` when one public model name should resolve to another group or alias definition while preserving client compatibility.
- Add adaptive/quality/complexity routing: configure `auto_router/adaptive_router`, `auto_router/quality_router`, or `auto_router/complexity_router` control deployments and list their selectable underlying model groups.
## Reference Map
- Router API and direct Python patterns: `references/router-api.md`
- Proxy YAML patterns and safe validation: `references/proxy-routing-config.md`
- Failure diagnosis: `references/troubleshooting.md`
- Offline config inspector: `scripts/inspect_router_config.py`
## Safety
The bundled inspection script parses local YAML/JSON only. It does not import LiteLLM, read provider credentials, start the proxy, or call external model providers.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!