| # | Model | Provider | Score | Cap | Ctx | Tags | Reliability | Latency | 24h Reqs |
|---|
| Model | Provider | Requests | Tokens (in/out) | Success Rate | Avg Latency | Rate Limits | Last Used |
|---|
| Time | Model | Provider | Status | Latency | User |
|---|
| Username | Key (masked) | Created | Status | Access | 24h Reqs | Actions |
|---|
Non-200 rows are per-candidate attempts — the fallback recovers most, so overall success stays high. recovered = the model also succeeded recently (transient); dead = repeated failures with no recent success (drift / quota-exhausted — a self-healing candidate).
| Model | Provider | Fails | Reason | State | Last error | Last seen |
|---|
Models with ≥10 requests over 30 days and a success rate under 90%. Longer memory than the failure table above — catches a model that fails, goes quiet for a day or two, and would otherwise look "untested" (full trust) again on any short window. This is the same signal the reliability scorer now weighs over a 7-day lookback for exactly this reason.
| Model | Provider | Requests (30d) | Success rate | Last error | Last seen |
|---|
Models absent from their provider's live /models are staled each poll (so the static catalog stops re-adding dead ids) and auto-restored if they return. Signal is /models-absence, never a status code.
Embedding task classification (bge-m3, GB10) runs off the response path, recorded next to the real keyword decision — it does not affect routing. Offline labeled accuracy: 91.7%. Verified 2026-06-29: on the current capability-dominated ranker, task does not change the served model (the top models are high-capability generalists tagged for every task), so promotion is deferred — making it matter needs a task-weighted ranker, not a classifier flip. The "top-for-task" column below is the deterministic rank-1, which is identical across tasks today.
| Time | Served (live) | Shadow task | Would route → (top for task) | Keyword | Margin | Cx | Mode |
|---|
Appended to the system prompt on every request matching this task (explicit intent wins over auto-detected; _default applies even with no task at all). Keep entries short. Saves take effect immediately — no restart.
Keys are write-only — never displayed once saved. Saving restarts the router (env vars are only read at process start, unlike the settings above) — a few seconds of downtime for every in-flight request.
| Provider | Models | Status | Key |
|---|
Display name, tags, and coding-capability grade. Overrides are durable — unlike editing the catalog directly, they survive the poller's next re-ingestion (every 6h). Live immediately, no restart. Clear a field (empty) to revert to the auto-ingested value.
| Model | Display name | Tags (comma-separated) | Code cap. (0–1) |
|---|
task_policies — routing behavior (quality/effort/allow_code_only) applied ONLY when a client sets task explicitly.
model_aliases — family alias → id-substring pattern (e.g. opus → sub:opus).
code_only_patterns — lowercased id-substrings restricted to CODE tasks only.