Agent Skillsdiegosouzapw/OmniRoute › omni-combos-routing

omni-combos-routing

GitHub

管理路由组合与回退链,支持19种策略配置、测试及指标获取。用于优化模型请求分发与高可用保障。

skills/omni-combos-routing/SKILL.md diegosouzapw/OmniRoute

Trigger Scenarios

需要配置模型路由策略 设置故障转移链 测试路由效果

Install

npx skills add diegosouzapw/OmniRoute --skill omni-combos-routing -g -y
More Options

Use without installing

npx skills use diegosouzapw/OmniRoute@omni-combos-routing

指定 Agent (Claude Code)

npx skills add diegosouzapw/OmniRoute --skill omni-combos-routing -a claude-code -g -y

安装 repo 全部 skill

npx skills add diegosouzapw/OmniRoute --all -g -y

预览 repo 内 skill

npx skills add diegosouzapw/OmniRoute --list

SKILL.md

Frontmatter
{
    "name": "omni-combos-routing",
    "description": "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."
}

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

curl https://localhost:20128/api/combos \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"

POST /api/combos

Create routing combo

curl -X POST https://localhost:20128/api/combos \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
  -H "Content-Type: application/json" \
  -d '{}'

PATCH /api/combos/{id}

Update combo

curl -X PATCH https://localhost:20128/api/combos/{id} \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
  -H "Content-Type: application/json" \
  -d '{}'

DELETE /api/combos/{id}

Delete combo

curl -X DELETE https://localhost:20128/api/combos/{id} \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"

GET /api/combos/metrics

Get combo metrics

curl https://localhost:20128/api/combos/metrics \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"

POST /api/combos/test

Test a combo configuration

curl -X POST https://localhost:20128/api/combos/test \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
  -H "Content-Type: application/json" \
  -d '{}'

GET /api/fallback/chains

List fallback chains

Returns all registered fallback chains for model routing.

curl https://localhost:20128/api/fallback/chains \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"

POST /api/fallback/chains

Create fallback chain

Registers a fallback routing chain for a model.

curl -X POST https://localhost:20128/api/fallback/chains \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
  -H "Content-Type: application/json" \
  -d '{}'

DELETE /api/fallback/chains

Delete fallback chain

curl -X DELETE https://localhost:20128/api/fallback/chains \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"

Payloads

See the full OpenAPI specification at GET /api/openapi/spec or docs/openapi.yaml for detailed request/response schemas.

OmniRoute — Routing & Combos

Requires OMNIROUTE_URL and OMNIROUTE_KEY. See entry-point SKILL 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

curl $OMNIROUTE_URL/api/combos \
  -H "Authorization: Bearer $OMNIROUTE_KEY"

Response includes id, name, strategy, enabled, and per-target stats.

Create a combo

curl -X POST $OMNIROUTE_URL/api/combos \
  -H "Authorization: Bearer $OMNIROUTE_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "my-combo",
    "strategy": "priority",
    "targets": [
      { "provider": "anthropic", "model": "claude-opus-4-7", "weight": 1 },
      { "provider": "openai",    "model": "gpt-4o",           "weight": 1 }
    ]
  }'

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:

curl -X POST $OMNIROUTE_URL/api/combos \
  -H "Authorization: Bearer $OMNIROUTE_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "prod-auto",
    "strategy": "auto",
    "targets": [
      { "provider": "anthropic", "model": "claude-sonnet-4-6" },
      { "provider": "openai",    "model": "gpt-4o-mini" },
      { "provider": "google",    "model": "gemini-2.0-flash" }
    ]
  }'

Then call it with:

curl -X POST $OMNIROUTE_URL/v1/chat/completions \
  -H "Authorization: Bearer $OMNIROUTE_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "model": "prod-auto", "messages": [{ "role": "user", "content": "Hello" }] }'

Activate / deactivate a combo

# Activate
curl -X PUT $OMNIROUTE_URL/api/combos/{id}/toggle \
  -H "Authorization: Bearer $OMNIROUTE_KEY" \
  -d '{ "enabled": true }'

Get combo metrics

curl $OMNIROUTE_URL/api/combos/{id}/metrics \
  -H "Authorization: Bearer $OMNIROUTE_KEY"

Returns p50/p95/p99 latency, success rate, cost, and per-target breakdown.

Simulate routing (dry run)

curl -X POST $OMNIROUTE_URL/api/routing/simulate \
  -H "Authorization: Bearer $OMNIROUTE_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "comboId": "{id}", "messages": [{ "role": "user", "content": "test" }] }'

Returns which provider would be selected and why — no actual API call is made.

Via MCP (if OmniRoute is your MCP server)

omniroute_list_combos     → list all combos
omniroute_switch_combo    → enable/disable a combo
omniroute_set_routing_strategy → change strategy at runtime
omniroute_simulate_route  → dry-run routing decision
omniroute_best_combo_for_task → get recommendation by task type

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

Version History

  • 3d7ed7a Current 2026-08-20 06:19

    策略数量从14增加到19

  • 1cafd32 2026-07-25 11:47

Same Skill Collection

skills/cli-a2a/SKILL.md
skills/cli-backup-sync/SKILL.md
skills/cli-batches/SKILL.md
skills/cli-chat/SKILL.md
skills/cli-compression/SKILL.md
skills/cli-contexts/SKILL.md
skills/cli-cost-usage/SKILL.md
skills/cli-eval/SKILL.md
skills/cli-health/SKILL.md
skills/cli-keys/SKILL.md
skills/cli-mcp/SKILL.md
skills/cli-models/SKILL.md
skills/cli-plugins-skills/SKILL.md
skills/cli-policy-audit/SKILL.md
skills/cli-providers/SKILL.md
skills/cli-resilience/SKILL.md
skills/cli-routing/SKILL.md
skills/cli-serve/SKILL.md
skills/cli-setup/SKILL.md
skills/cli-skill-collector/SKILL.md
skills/cli-tunnel/SKILL.md
skills/config-codex-cli/SKILL.md
skills/omni-agents-a2a/SKILL.md
skills/omni-api-keys/SKILL.md
skills/omni-auth/SKILL.md
skills/omni-budget/SKILL.md
skills/omni-cache/SKILL.md
skills/omni-cli-tools/SKILL.md
skills/omni-compression/SKILL.md
skills/omni-context-rtk/SKILL.md
skills/omni-db-backups/SKILL.md
skills/omni-github-skills/SKILL.md
skills/omni-inference/SKILL.md
skills/omni-mcp/SKILL.md
skills/omni-models/SKILL.md
skills/omni-providers/SKILL.md
skills/omni-proxies/SKILL.md
skills/omni-resilience/SKILL.md
skills/omni-settings/SKILL.md
skills/omni-sync-cloud/SKILL.md
skills/omni-tunnels/SKILL.md
skills/omni-usage-logs/SKILL.md
skills/omni-version-manager/SKILL.md
skills/omni-webhooks/SKILL.md
skills/ponytail/SKILL.md

Metadata

Files
0
Version
3d7ed7a
Hash
ee7418ad
Indexed
2026-07-25 11:47

inicio - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-22 03:17
浙ICP备14020137号-1 $mapa de visitantes$