Best for
- Use when deploying or running a LiteLLM proxy or gateway (config.
magnus919/agent-skills/litellm/SKILL.md
Operate, configure, secure, and troubleshoot the LiteLLM AI gateway (proxy) and Python SDK: run the proxy (litellm --config), route to 100+ providers through one OpenAI-compatible API, configure model lists and routing/reliability, virtual keys, teams, budgets, rate limits, caching, guardrails, observability, and spend, and diagnose request failures. Use when deploying or running a LiteLLM proxy or gateway (config.yaml, ghcr.io/berriai/litellm), wiring the Python SDK or OpenAI SDK through it, or
Decision brief
Use this skill to operate LiteLLM as an organization's AI gateway: run the proxy (litellm --config config.yaml), route requests to 100+ LLM providers through one OpenAI-compatible API, manage model lists, routing and reliability, virtual keys, teams, budgets and rate limits, cac…
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/magnus919/agent-skills --skill "litellm"Inspect the Agent Skill "litellm" from https://github.com/magnus919/agent-skills/blob/531ff6753784823c878c92b988c6e55266ce09a9/litellm/SKILL.md at commit 531ff6753784823c878c92b988c6e55266ce09a9. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
Review the “Verification boundary” section in the pinned source before continuing.
1. Record the deployment before tuning it. Capture the pinned image or pip version, config.yaml, model list, routing, budgets, env-var references, and data stores in the proxy config record. That record is the rollback unit. 2. Confirm the target, scope, and rollback path before…
scripts/litellm-health is a read-only probe for a running proxy. It issues GET requests only, never writes files, and emits bounded output.
1. Identify the deployment: pinned version/image digest, how it runs (bare, Docker, Compose, Helm), config source (file, storemodelindb, or both), and data stores (Postgres? Redis?). 2. Collect evidence: litellm-health --json; GET /v1/models and /model/info with a key; response…
Start with litellm --config config.yaml --port 4000. Success logs Proxy initialized with Config, Set models:. Clients call the OpenAI surface: /v1/chat/completions, /chat/completions, /v1/embeddings, /v1/images/generations, /v1/audio/transcriptions, plus /responses, Anthropic-co…
Permission review
The documentation includes network, browsing, or remote request actions.
scripts/litellm-health --url http://127.0.0.1:4000 --jsonEvidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 92/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 61 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Use this skill to operate LiteLLM as an organization's AI gateway: run the proxy
(litellm --config config.yaml), route requests to 100+ LLM providers through one
OpenAI-compatible API, manage model lists, routing and reliability, virtual keys,
teams, budgets and rate limits, caching, guardrails, observability, and spend — and
diagnose failures with evidence. LiteLLM ships two surfaces: a Python SDK
(litellm.completion(), in-process) and the proxy (a FastAPI service on port 4000
with keys, budgets, and an admin UI). This is a tool skill for the named tool.
Engine selection and serving methodology belong to
ml-engineering; operating a single engine belongs to
vllm or llama-cpp.
config.yaml, model list, routing, budgets, env-var references, and
data stores in the proxy config record. That
record is the rollback unit./v1/models, logs, spend queries) may proceed without
confirmation. Mutations — config changes, key mint/revocation, restarts, image
upgrades, DB migrations — require an explicit human directive naming the deployment./health/liveliness
returning 200 proves liveness only. Verify at the delivery boundary: a
representative /v1/chat/completions request returns tokens and
x-litellm-model-id names the deployment you expected..env contents, master keys, or provider credentials into chat. Spend logs and
debug output can contain prompt content — redact before sharing.scripts/litellm-health is a read-only probe for a running proxy. It issues GET
requests only, never writes files, and emits bounded output.
scripts/litellm-health --help # no proxy needed
scripts/litellm-health --url http://127.0.0.1:4000 --json
scripts/litellm-health --check health --check readiness --json
scripts/litellm-health --check models --check model_info \
--key "$LITELLM_MASTER_KEY" --json
Exit codes: 0 all checks passed, 1 issues found or a fatal error, 2 usage error,
124 timeout. Checks: health (GET /health/liveliness, unauthenticated), readiness
(GET /health/readiness, unauthenticated; 503 when the configured DB is unreachable),
models (GET /v1/models, requires key), and model_info (GET /model/info,
requires key). Keys are sent as Authorization: Bearer <key>. The script never sends
data anywhere except the proxy you name.
store_model_in_db, or both), and
data stores (Postgres? Redis?).litellm-health --json; GET /v1/models and
/model/info with a key; response headers (x-litellm-call-id,
x-litellm-model-id, x-litellm-model-api-base, x-litellm-version);
--detailed_debug logs or LITELLM_LOG=DEBUG for the outbound request.model_list:
- model_name: gpt-4o # name clients request
litellm_params:
model: openai/gpt-4o # routed string (provider prefix required)
api_key: os.environ/OPENAI_API_KEY # resolved inside the proxy process
- model_name: claude-sonnet
litellm_params:
model: anthropic/claude-sonnet-4-5
api_key: os.environ/ANTHROPIC_API_KEY
general_settings:
master_key: os.environ/LITELLM_MASTER_KEY # require auth on every call
Start with litellm --config config.yaml --port 4000. Success logs
Proxy initialized with Config, Set models:. Clients call the OpenAI surface:
/v1/chat/completions, /chat/completions, /v1/embeddings, /v1/images/generations,
/v1/audio/transcriptions, plus /responses, Anthropic-compatible /messages,
/model/info, /health/liveliness, /health/readiness. Any OpenAI SDK works
unchanged: openai.OpenAI(base_url="http://localhost:4000", api_key=<virtual key>).
Details and the SDK surface: quickstart reference.
model_name form one load-balanced group; each entry is a
deployment with its own hashed model_id used for health and cooldown tracking.router_settings.routing_strategy — simple-shuffle (default, recommended;
weighted by rpm/tpm or weight under litellm_params), least-busy,
latency-based-routing, usage-based-routing (docs warn against it in prod),
cost-based-routing.litellm_settings.num_retries (per-deployment and request-level
overrides exist; num_retries is not the provider SDK's max_retries),
fallbacks / context_window_fallbacks / content_policy_fallbacks,
cooldowns (allowed_fails, cooldown_time), deployment order for priority,
enable_pre_call_checks: true to enforce context windows and region filters
pre-call (opt-in).store_model_in_db: true, UI/API writes deep-merge over YAML in Postgres and
win on key conflicts — editing those YAML keys later has no effect while the DB row
exists. Details: config and routing reference.general_settings.master_key (must start sk-) is the admin credential and UI
password. Virtual keys (POST /key/generate) scope models, budgets, and rpm/tpm
per workload; keys are stored hashed and never contain provider credentials.No connected db. — never run
a budget-sensitive deployment DB-less./spend/logs and /global/spend; store_prompts_in_spend_logs defaults to false.
Details: keys and budgets reference.litellm_settings.cache: true + cache_params.type: redis for
multi-instance production (in-memory is per-process; disk/S3/GCS exist). Per-request
controls: cache: {ttl, no-cache, namespace} in the body.qdrant-semantic, redis-semantic, valkey-semantic) embed the
whole messages array and can replay stale answers across similar multi-turn turns —
docs recommend excluding agentic traffic from semantic caching.pre_call, post_call, during_call, or logging_only (there is
no all mode); Presidio PII masking is OSS. Violations fail with HTTP 400 and an
embedded verdict; x-litellm-applied-guardrails names what ran.
Details: caching and guardrails reference.litellm_settings.success_callback / failure_callback / callbacks
(Langfuse, OTel, Prometheus, Datadog, Sentry, ...). Prometheus /metrics requires
auth since 1.85.0 — give the scraper a bearer key or set
require_auth_for_metrics_endpoint: false.x-litellm-call-id, x-litellm-model-id,
x-litellm-model-api-base, x-litellm-version, x-litellm-response-cost.turn_off_message_logging: true keeps metadata but drops content from
callbacks; redact_user_api_key_info: true redacts key/user/team identifiers.
Debug with --detailed_debug, LITELLM_LOG=DEBUG, or per-request
"litellm_request_debug": true.
Details: observability reference.ghcr.io/berriai/litellm:vX.Y.Z — semver tags since 1.84.0;
-stable suffixes are gone, main-latest is deprecated). Images are cosign-signed.DISABLE_SCHEMA_UPDATE=true on serving pods. One Uvicorn worker per
pod; size the DB pool as MAX_DB_CONNECTIONS / (instances x workers).
Details: deployment reference./key/*, /user/*, /team/*, /config/*,
/model/*, /spend/*, /ui, /prompts/test, /mcp-rest/*). Route lockdown via
allowed_routes is Enterprise — on OSS, enforce at the reverse proxy.LITELLM_SALT_KEY encrypts DB-stored provider credentials; set it once and never
rotate it after adding models. Rotate the master key only via the documented flow.litellm==1.82.7/.8 PyPI wheels
(~40 minutes). Prefer cosign-verified pinned images over unpinned pip installs.
Hardening checklist: security reference.If the error contains <Provider>Exception, the provider failed — not the
gateway. AnthropicException, OpenAIException, BedrockException, ... mean the
upstream call happened and its response is the evidence. No provider name means the
gateway itself rejected the call (bad LiteLLM key, unknown model, cooldowns, budget).
| Symptom | First move |
|---|---|
Invalid model name passed in model=X | Name not in model_list or not granted to the key; check GET /v1/models with the same key |
No deployments available for selected model, Try again in N seconds | All deployments cooling down (usually upstream 429s) or a missing provider prefix on litellm_params.model |
AnthropicException - Overloaded (HTTP 500, Anthropic's 529) | Provider-side overload; retry/fail over — not a gateway bug |
Authentication Error ... ExceededTokenBudget | Key/team budget exhausted; check GET /key/info |
ImportError: cannot import name 'get_flat_dependant' at startup | fastapi too new for the pinned litellm; pin fastapi==0.136.3 for 1.97.0 |
Full taxonomy and fixes: troubleshooting reference.
| Load when | Reference |
|---|---|
| Sources, version observations, refresh procedure | references/00-source-index.md |
| Proxy quickstart, config.yaml, Python SDK, OpenAI-SDK drop-in | references/01-quickstart-and-sdk.md |
| model_list, routing strategies, retries/fallbacks/cooldowns | references/02-config-and-routing.md |
| Virtual keys, teams, budgets, rate limits, spend | references/03-keys-teams-budgets-spend.md |
| Response caching and guardrails | references/04-caching-and-guardrails.md |
| Callbacks, Prometheus, headers, privacy switches | references/05-observability-and-logging.md |
| Docker/Compose/K8s/Helm, scaling, migrations, upgrades | references/06-deployment.md |
| Public-facing hardening, CVE floor, supply chain | references/07-security-and-public-hosting.md |
| Error taxonomy, failure modes, debugging workflow | references/08-troubleshooting.md |
scripts/litellm-health: read-only proxy probe (stdlib-only, --json, --check
subsets, --key for authenticated routes, --help without a server).tests/test_litellm_health.py: deterministic tests against a local stub HTTP
server, including the read-only contract.templates/proxy-config-record.md and templates/proxy-deployment.md: fillable
records — the config record is the rollback unit; the deployment record freezes the
runtime (image digest, ports, env, data stores, probes, rollback).references/: nine dated, source-indexed references covering the topics above.evals/evals.json: six output-quality evaluation cases.| Claim | Minimum evidence |
|---|---|
| The proxy is alive | litellm-health --check health reports /health/liveliness 200 |
| The proxy is ready | --check readiness reports /health/readiness 200 (503 means DB down) |
| The right models are registered | /v1/models (with the calling key) lists the expected aliases |
| A deployment is configured correctly | /model/info shows the expected litellm_params with keys redacted |
| Inference works | A representative /v1/chat/completions request returns tokens and x-litellm-model-id names the intended deployment |
| Budgets are enforced | A connected DB is verified (readiness) and /key/info shows spend tracking for the key |
| A diagnosis is sound | Evidence (error string, headers, logs) was collected before the claim, and the fix was verified by re-running the probe and a representative request |
/ui beyond the trust boundary;
authentication is not a substitute for network and TLS controls.DATABASE_URL, LITELLM_MASTER_KEY, or
LITELLM_SALT_KEY anywhere; use os.environ/ references and a secret manager./health/liveliness as proof the gateway serves; verify at
the delivery boundary.Frequently asked questions
Use this skill to operate LiteLLM as an organization's AI gateway: run the proxy (litellm --config config.yaml), route requests to 100+ LLM providers through one OpenAI-compatible API, manage model lists, routing and reliability, virtual keys, teams, budgets and rate limits, cac…
The source record exposes this install command: npx skills add https://github.com/magnus919/agent-skills --skill "litellm". Inspect the command and pinned source before running it.
Static rules flagged network in the source; the page lists the matching lines and excerpts.
Alternatives
UiPath/skills
UiPath Coded Apps — scaffold, build, run, and deploy Coded Web Apps and Coded Action Apps: React/TypeScript apps that call UiPath Cloud APIs via the `@uipath/uipath-typescript` SDK and ship to Automation Cloud (push/pull to Studio Web, pack, publish, deploy, OAuth-PKCE). Also generates live analytics & governance dashboards from a plain-language request, wired to tenant data via the Insights real-time API, with edit and deploy flows. For RPA→uipath-rpa, Python agents→uipath-agents, Maestro flows
teng-lin/notebooklm-py
Complete API for Google NotebookLM - full programmatic access including features not in the web UI. Create notebooks, add sources, generate all artifact types, download in multiple formats. Activates on explicit /notebooklm or intent like "create a podcast about X"
TencentCloudBase/CloudBase-AI-Toolkit
Build production-ready AI agent backends using the CloudBase Agent Python SDK — create agents with LangGraph/CrewAI/LlamaIndex, serve them via FastAPI with AG-UI protocol streaming + OpenAI-compatible endpoints, add tools (bash, filesystem, MCP, code execution), memory (in-memory, TDAI, MySQL, MongoDB), observability (OpenTelemetry/Langfuse), and middleware (auth, logging). Use this skill when the user wants to create an AI agent server, build a chatbot backend, set up human-in-the-loop workflow
almanak-co/sdk
Build, test, and deploy DeFi trading strategies using the Almanak SDK. ALWAYS use this skill when the user mentions almanak, DeFi strategy, trading strategy, yield farming, liquidity provision, token swap, borrowing, lending, perpetuals, staking, vault deposit, bridging tokens, backtesting, paper trading, or on-chain execution. Use for writing strategy.py files, composing intents (Swap, LP, Borrow, Supply, Perp, Bridge, Stake, Vault, Prediction), working with config.json strategy parameters, run