omni-combos-routing

Create and manage routing combos with 19 strategies (priority, weighted, round-robin, Auto-combo, and more). Configure fallback chains, test routing outcomes, and retrieve combo metrics.

By diegosouzapw · 531 installs

npx skills add diegosouzapw/omniroute --skill omni-combos-routing

Source repository · Upstream listing

<! generated by src/lib/agentSkills/generator.ts; manual edits will be overwritten Overview Create and manage routing combos with 19 strategies (priority, weighted, round robin, Auto combo, and more). Configure fallback chains, test routing outcomes, and retrieve combo metrics. Authentication All requests require a valid Bearer token or session cookie. Obtain a token via POST /api/auth/login or configure REQUIRE API KEY=false for local development. Endpoints GET /api/combos List routing combos POST /api/combos Create routing combo GET /api/combos/{id} Get combo by ID PUT /api/combos/{id} Update combo Partial update: the body is merged onto the stored combo, so a field left out keeps its current value. An array that IS sent replaces the stored one outright. PATCH /api/combos/{id} Update combo Partial update: the body is merged onto the stored combo, so a field left out keeps its current value. An array that IS sent replaces the stored one outright. DELETE /api/combos/{id} Delete combo GET /api/combos/metrics Get combo metrics POST /api/combos/test Test a combo configuration GET /api/fallback/chains List fallback chains Returns all registered fallback chains for model routing. POST /api/fallback/chains Create fallback chain Registers a fallback routing chain for a model. DELETE /api/fallback/chains Delete fallback chain Payloads See the full OpenAPI specification at GET /api/openapi/spec or docs/openapi.yaml for detailed request/response schemas. <! skill:custom start <! Migrated from skills/omniroute routing/SKILL.md (preserved curated content) OmniRoute — Routing & Combos Requires OMNIROUTE URL and OMNIROUTE KEY . See [entry point SKILL](https://raw.githubusercontent.com/diegosouzapw/OmniRoute/main/skills/omniroute/SKILL.md) for setup. What is a combo? A combo is a named group of providers/models with a routing strategy. All requests through a combo are automatically distributed, failed over, and load balanced — the caller uses a single model ID like my combo . List existing combos Response includes id , name , strategy , enabled , and per target stats. Create a combo 19 public routing strategies Strategy Description priority Always use target[0]; fall back on error weighted Distribute by weight percentage round robin Rotate targets in order context relay Chain models for very long contexts fill first Fill quota of target[0] before spilling p2c Power of two choices: sample two targets, pick the better candidate random Uniform random selection least used Route to the target with the lowest observed usage cost optimized Pick the cheapest eligible target for the token estimate reset aware Prefer targets based on quota reset state reset window Order targets by their configured reset window headroom Prefer targets with more remaining quota headroom strict random Random without repeating until all targets have been used auto Auto Combo scoring across 13 factors lkgp Last known good provider sticky routing context optimized Pick the best model for the request's context size cache optimized Prefer targets with stronger cache affinity fusion Run a panel in parallel and synthesize one judged response pipeline Run a configured sequence of targets as a pipeline Auto combo (recommended for production) Auto combo scores each candidate on 13 factors every request: Then call it with: Activate / deactivate a combo Get combo metrics Returns p50/p95/p99 latency, success rate, cost, and per target breakdown. Simulate routing (dry run) Returns which provider would be selected and why — no actual API call is made. Via MCP (if OmniRoute is your MCP server) Errors 404 combo not found → check id from /api/combos 400 invalid strategy → use one of the 19 strategies above 409 name conflict → combo name already exists <! skill:custom end