You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
`pipx` is the best default for most CLI users: it installs UncommonRoute into its own isolated environment, keeps your system Python clean, and gives you a clean uninstall path.
44
46
47
+
A normal install includes the trained v2 runtime assets and embedding dependencies. You do not need a separate `[v2]` install for production routing.
48
+
45
49
If you do not have `pipx` yet, prefer your OS package manager when it is available (`brew install pipx` on macOS, `sudo apt install pipx` on recent Ubuntu, `sudo dnf install pipx` on Fedora), then run `pipx ensurepath`.
46
50
47
51
If that is not available, see the [pipx installation guide](https://pipx.pypa.io/stable/installation/) or install it with:
@@ -138,26 +142,30 @@ Auto-routing will only consider models backed by a registered provider.
138
142
139
143
## How It Works
140
144
141
-
Every request is analyzed by three independent signals, then routed to the cheapest capable model:
145
+
Every request is analyzed by multiple local signals, then routed to the cheapest capable model available from your configured upstream:
142
146
143
147
```
144
-
"hello" → 🟢 nano $0.0008
145
-
"fix the typo on line 3" → 🟢 deepseek $0.0012
146
-
"refactor this 500-line module" → 🟠 sonnet $0.0337
147
-
"design a distributed scheduler" → 🔴 opus $0.0562
148
+
"hello" → economy tier
149
+
"fix the typo on line 3" → economy / balanced tier
150
+
"refactor this 500-line module" → balanced / premium tier
151
+
"design a distributed scheduler" → premium tier
148
152
```
149
153
154
+
Actual model IDs and prices come from the live upstream model catalog plus your local overrides. UncommonRoute does not rely on a single hardcoded model list.
|**Embedding**| Semantic similarity to known task patterns (bge-small) |~20ms |
154
-
|**Structural**| Text complexity features (shadow mode) | <1ms |
159
+
|**Embedding**| Trained BGE classifier over the user request, recent agent state, and metadata; KNN fallback when uncertain |~25–35ms end-to-end warm route overhead |
160
+
|**Structural**| Text and conversation complexity; active on selected requests, shadow-tracked otherwise | <1ms |
161
+
162
+
End-to-end `route()` overhead on a warm process is typically **~25–35ms** on CPU and is dominated by the embedding signal. Cold start includes loading the embedding model and can take seconds on a fresh process or machine; after warmup, routing stays local.
155
163
156
-
End-to-end `route()` overhead on a warm process is **~20–25ms** (dominated by the embedding signal). Cold start is a few hundred ms for the first request. GPU or a cached embedding path can bring this under 5ms.
164
+
Signals vote. The ensemble picks the tier. The router then selects the cheapest model that satisfies tier, capability, transport, and upstream availability constraints. Unknown or dynamic upstream pricing is treated conservatively instead of being interpreted as a real negative price.
157
165
158
-
Signals vote. The ensemble picks the tier. The router selects the cheapest model in that tier. If uncertain, it leans conservative — better to spend a little more than to fail the task.
166
+
Routing is **per request / per agent step**, not sticky for an entire session. Protocol-level constraints still apply when the request requires them, for example Anthropic thinking continuations.
159
167
160
-
**It gets smarter over time.**Signal weights adjust from routing outcomes. The embedding index grows with usage. Low-confidence predictions automatically escalate.
168
+
**It gets smarter over time.**Local feedback can adjust signal weights, high-confidence agreement can grow the embedding index, and low-confidence predictions escalate instead of silently under-routing.
161
169
162
170
---
163
171
@@ -171,27 +179,31 @@ We didn't patch it. We rebuilt from scratch.
|**Tier match accuracy**| 43% |**74.0%** held-out|
183
+
|**Task pass rate**| 100% (cheated — always chose most expensive) |**91.8%**with real routing |
184
+
|**Cost-savings score**| 0% |**81.9**|
177
185
178
186
We're telling you this because we'd rather you trust our numbers than be impressed by them.
179
187
180
188
---
181
189
182
190
## Benchmarks
183
191
184
-
Tested on [CommonRouterBench](https://github.com/CommonstackAI/CommonRouterBench) — 970 real agent task traces across SWE-Bench, BFCL, MT-RAG, QMSum, and PinchBench. All numbers measured end-to-end through the production code path.
192
+
Tested on [CommonRouterBench](https://github.com/CommonstackAI/CommonRouterBench) — 970 real agent task traces across SWE-Bench, BFCL, MT-RAG, QMSum, and PinchBench. The public numbers below use the 196-row held-out split, not the training or calibration rows.
0 commit comments