AddThisFeature

Multi-Model Routing

Send each AI request to the right model using rules you can read and test.

involved Developer Experience

What it adds

A deterministic routing layer that picks a model per request from task type, context size, latency budget, and data sensitivity.

What your agent is told to do

5
  1. 1

    Express routing as explicit, ordered rules over inputs the app can measure: task type, estimated context size, latency budget, and the sensitivity classification of the data involved. A rule set that can be read line by line can be reviewed and tested.

  2. 2

    Make routing deterministic. The same inputs must always produce the same route, so a bad output can be reproduced and a rule change can be evaluated. Randomised or load-based selection turns every incident into guesswork.

  3. 3

    Classify data before routing and refuse to route restricted content to any destination not approved for it. This check is a hard block, not a preference, and it must run before the request is assembled.

  4. 4

    Record the chosen route, the reason, the token usage, and the outcome for every request, so quality and cost can be compared per route rather than argued about.

  5. 5

    Per-task model choices exposed to users belong to Model Selection, and retrying a failed request belongs to Model Fallback. This feature owns only the rules that pick a destination for a healthy request; do not reimplement either neighbour here.

Edge cases it handles

8
  • Routing rules must be inspectable and testable, with a way to ask which route a given set of inputs would take without sending a request. An opaque router cannot be debugged when one class of requests starts returning poor results.
  • Where prompts must differ per destination to get comparable results, those variants must be versioned alongside the prompt rather than patched at run time, or the rendered instructions become impossible to reconstruct.
  • Data classified as sensitive must never be routed to a destination that has not been approved for it, including when a rule change or a new default would otherwise send it there. The block must fail closed.
  • Quality and cost must be recorded per route, or the routing rules can never be improved and expensive routes accumulate unnoticed.
  • When the preferred destination is unavailable, the substitution must be recorded and visible rather than silently changing what produced the answer. Handing off to a materially different model without a trace makes results inexplicable.
  • A context size estimate that undershoots will send a large request to a destination that cannot hold it. Measure before routing and route on the measurement, with a margin.
  • Rule changes must be versioned and reversible, and a request must record which rule set version routed it.
  • A request matching no rule must hit a defined default route that is stated explicitly, not whichever destination happens to be listed first.

Definition of done

9
  • Routing decisions are produced by explicit ordered rules and are deterministic for identical inputs.
  • There is a way to see which route a given set of inputs would take without issuing a request.
  • Sensitive data is blocked from unapproved destinations before the request is assembled.
  • Every request records its route, the reason, token usage, cost, and outcome.
  • Destination-specific prompt variants are versioned rather than adjusted at run time.
  • A request matching no rule follows an explicitly defined default route.
  • Rule sets are versioned and each request records the version that routed it.
  • The feature matches the existing design system.
  • No existing functionality is broken.

Related features

How it works

  1. 1

    Copy the link

    Grab the Markdown instruction URL for this feature.

  2. 2

    Give it to your AI

    Paste it into Claude Code, Cursor, v0, Lovable — whatever you build with.

  3. 3

    It inspects, then implements

    Your agent reads your existing app first, then adds the feature to fit it.

Works with your stack

These instructions are written to adapt. They tell the agent to detect your framework, match your existing design system, and reuse what you already have — rather than assuming a particular stack.

Need it tighter than that? Customize the feature and tell it exactly what you're running.