03 / 14VERIFIEDDescribes what runs today
Intelligence routing
Routing is three decisions per question: what kind of work it is, which steps that work needs, and which route runs each step. Each decision is made on the server, from rules in the code, before anything leaves TAONIC.
The wording decides the capability, unless the reader picked one. It is a deterministic rule, not a model call: “draw” or “generate an image” is Image, “is it true that” is Check a claim, “price” or “forecast” is Market, “this week” or “latest” is Search, and anything else is Answer. The homepage mesh lights the same rule as you type.
Each capability has a fixed plan of steps. A required step that cannot run stops the request before any provider is called; an optional step that cannot run is skipped and recorded as skipped.
| Capability | Steps, in order | Routes that can serve it |
|---|---|---|
| Answer | Reasoning | Chutes · SN64, engy · SN53, OpenRouter to Chutes · SN64 |
| Search | Research → Reasoning (optional) | Desearch · SN22 |
| Market | Market data (optional) → Forecasts (optional) → Reasoning (optional) | Synth · SN50, Numinous · SN6 |
| Check a claim | Research (optional) → Reasoning | Desearch · SN22, Chutes · SN64, engy · SN53, OpenRouter to Chutes · SN64 |
| Image | Image | Chutes · SN64 |
| Speech | Speech | Chutes · SN64 |
| Find a match | Semantic match | Chutes · SN64 |
For each step, the usable routes are ranked, then tried in order until one answers.
rank(route) = ( preferred ? 0 : 1 , failing ? 1 : 0 , priority )
- usable
- the route’s credential is set on the server, or it needs none
- preferred
- the request named this route (the optional provider field)
- failing
- this server saw its recent requests fail
- priority
- the registry’s order: cost, latency and provenance, never marketing
- A route that fails, times out or returns something that does not validate is recorded with its reason, and the next usable route for the same step is tried.
- Only routes marked fallback-eligible are tried second, and never past the whole-request budget of
100 s. - A route with no credential is never called. It is reported as waiting for its credential, by name, never by value.
- OpenRouter to Chutes must report Chutes as the serving provider. An answer from anyone else is skipped with its reason, never returned as subnet 64’s work.
Before the first paid provider call, the gateway books that call’s worst-case cost against a daily ceiling in the database. If the booking would pass the ceiling, or the database cannot be reached, the request is refused as route unavailable and nothing is sent. After the answer, the booking is replaced with the real cost.
allow ⇔ booked_today + worst_case(route) ≤ ceiling
- worst_case
- (4,000 chars ÷ 3 × input rate + 1,400 tokens × output rate) × 2 attempts
- booked_today
- the larger of recorded and estimated spend for that provider, this UTC day
- ceiling
- set by the operator; not published, so the guard cannot be probed
A route’s state comes from two sources only: whether its credential is set on the server now, and whether a real request has completed through it (in the durable records, on the answering server, or as a dated production record).
| State | Meaning |
|---|---|
| CONNECTED | Usable now, and a real request has completed through it. |
| UNVERIFIED | Configured, and no real request has completed through it yet. |
| FAILED | Usable, and its recent requests are failing. |
| CONFIGURATION REQUIRED | Its credential is not set, so nothing is sent to it. |
| PAUSED | Refused by the spending guard until 00:00 UTC, or paused by the operator. |
| UNAVAILABLE | The adapter exists but the route cannot be used now, for a reason other than its credential. |
An adapter is not a connection
Code that follows a provider’s documentation is an adapter. It becomes a connection only after a real request completes through it. The live state of every route is on Routes.
Every state on this page matches Status. Where they ever differ, Status is right and this page is a defect.