Every request goes to the model that earned it.
One OpenAI-compatible endpoint in front of the models you already pay for. Agent Mystro reads each request, decides what kind of work it is, and sends it to the model that wins that kind of work. Not by reputation. By blind test.
Then it learns yours. Every blind pick you make bends the routing toward your taste, and the response tells you exactly why it went where it went.
Three moves, on every call.
What kind of work is this?
A deterministic scorer reads the request and names the task: cold drafting, a reply, a page, code, live research. It runs in under a millisecond and costs nothing, and it hands back every signal that fired.
Who wins that work?
Each task type carries Bradley-Terry strengths built from blind head-to-heads. The request goes to the strongest arm you hold a key for, with the confidence stated rather than implied.
Whose taste decides?
Ask for a taste check and you get two answers with the labels off. Your pick takes one gradient step. Early on the population default carries you; after enough picks, the routing is yours.
The defaults are measured, and here they are.
Every routing default below came from a blind battery: ten briefs, outputs shuffled and stripped of provenance tells, judged blind, then decoded against an offline key. The full machine-readable version lives at /capabilities.
| Task | Battery | Result | Default |
|---|---|---|---|
| Cold drafting | b1, 10 briefs | Gemini 5 · chain 3 · Claude 2 · GPT 0 | Gemini |
| Replies | b7, 10 briefs | Claude→GPT chain 6 · Gemini 4 · solo arms 0 | Claude→GPT chain |
| Pages and interfaces | b2, 10 briefs | GPT 8 · Gemini 1 · Claude 1 | GPT |
| Live research | b8, 10 briefs | Claude 5 · GPT 3 · Gemini 2 | Claude |
| Finance arithmetic | b5, 10 briefs | Every arm 10/10 on accuracy | Unrouted, goes to cheapest |
| Document extraction | b10, 6 documents | GPT 30/30 · Gemini 30/30 · Claude 29/30 | Unrouted, goes to cheapest |
Two of these say do nothing, and that is the point. Where blind testing found no separation we route on cost and tell you so, rather than inventing a preference we cannot defend.
Point any OpenAI client at it.
Bring your own provider keys. We charge for routing and never resell inference, so your token spend stays exactly where it already is.
# 1. Create an account. The key is shown once.
curl -X POST https://agentmystro.com/v1/account
# 2. Add a provider key. We verify it before storing it, encrypted.
curl -X POST https://agentmystro.com/v1/keys \
-H "Authorization: Bearer $MYSTRO_KEY" \
-H "Content-Type: application/json" \
-d '{"provider":"anthropic","api_key":"sk-ant-..."}'
# 3. Call it like OpenAI. Leave the model out and let it route.
curl https://agentmystro.com/v1/chat/completions \
-H "Authorization: Bearer $MYSTRO_KEY" \
-H "Content-Type: application/json" \
-d '{"messages":[{"role":"user","content":"Draft a note to a new supplier."}]}'
The response carries a mystro block: the task type it decided on, the signals
that fired, the battery behind the default, how much of the call was your own taste,
and how confident it actually was.
Nineteen dollars a month, and your token bill does not move.
You bring your own provider keys and pay Anthropic, OpenAI and Google directly. We never resell inference and take no percentage of what you spend with them, so switching to Agent Mystro changes what gets routed, not what you are billed for tokens.
| Plan | Price | Routing included | What you get |
|---|---|---|---|
| Free | $0 | 1M tokens / month | Population defaults, the explainability payload, spend caps. No learned routing. |
| Pro | $19 / month | 5M tokens / month, then $0.20 per million | Everything above, plus the taste engine: your blind picks bend the routing toward you, and the gain report shows what it bought. |
The free tier runs on population defaults only. That is the honest split: it proves the routing works on your own traffic, and the part you pay for is the routing becoming yours.
What this does not do yet.
- Population defaults come from one expert judge across ten briefs per battery. That beats an unmeasured guess and it is not a population study.
- Code and general reasoning have no dedicated battery. Their priors are weak, and every response says so.
- Cost figures are estimates from published list prices, used to enforce your spend cap. Your provider dashboard remains the billing truth.
- No SOC 2 report, no EU data residency guarantee, and no third-party security audit.
- Prompt bodies are not retained. Request logs hold ids, counts, and enum values, with no field that can carry your text.