What adapts today
Every retriever already adapts in three ways, with no configuration:The query optimizer
Before each run, Mixpeek rewrites your stage list: it pushes filters into the vector store, fuses compatible stages and runs independent work in parallel. Explain shows what it did.
Filtered search strategy
Each filtered vector search counts the documents that match the filter, then either scans exactly those documents or searches a wider part of the index, whichever suits that query.
Auto-Tune
With learned fusion, the weights that blend your searches adapt to each user from clicks, purchases and feedback.
Per-query pipeline selection
Preview. Not yet available.
How it works
1
You save candidate versions
Each candidate is an ordinary saved revision of your retriever, with its own stages and parameters. You can read, test and call each one directly. Your current version is always the default.
2
You pick a goal and an evaluation dataset
Set
optimize_for (quality, balanced, speed or cost) and point the planner at a judged evaluation dataset for this retriever.3
Mixpeek evaluates the candidates
Evaluation runs score every candidate on your judged queries, recording quality, latency and credits per query. They run when the dataset, a candidate or your current version changes, at most once a day.
4
It confirms a version per kind of query
Queries are grouped into shapes by cheap text statistics (length, rare terms, digits and so on). A shape switches away from your current version only when a candidate wins on one half of the judged queries for that shape and the win holds on the other half.
5
Each query runs the confirmed version
A query of that shape runs the confirmed version. Every response says which version ran and why, with forecasts for the alternatives.
What you control
Configure it
- Retriever
- Request
- Response
shadow: the planner decides and logs what it would serve while your current version keeps serving. Switch to on when the logged decisions look right.What it promises
It never experiments on your live traffic
It never experiments on your live traffic
Candidates are compared only by evaluation runs on your judged dataset. Live queries are never used to test versions against each other, and your users’ queries are never re-run.
It leaves your current version only on evidence
It leaves your current version only on evidence
A shape switches only when a candidate’s win is confirmed on judged queries it was not chosen on, and its worst-case queries are no worse than your current version’s beyond a set margin. A retriever with no judged dataset never switches. Editing your current version sends every shape back to it until the next evaluation run.
Budgets are limits
Budgets are limits
A version forecast to exceed your credit or time limit is never chosen. If none fits, the fastest version runs and the response says so.
Billing does not change
Billing does not change
A query is billed for the version that ran, as today, and never above your retriever’s credit limit. Evaluation runs are billed as evaluation runs are today.
Your settings win
Your settings win
Pins, a version named in the request, and
adaptation: off always take precedence over what the planner learned.Your data stays yours
Your data stays yours
Decisions and statistics are stored as documents in your own namespace. Nothing learned from your evaluations is used for anyone else. Marketplace and public retrievers cannot turn the planner on, so consumers’ queries never train a publisher’s routing.
What we have measured so far
These numbers come from our own simulator and test namespaces, not from production traffic.We also tested routing each query individually with a trained model, and re-bucketing query shapes automatically. Held to the same safety rules, neither beat shapes from simple text statistics, so the preview uses those.
Related
Query optimization and explain
See the plan the optimizer built for a query, with per-stage estimates.
Auto-Tune
Learned fusion weights per user, from interactions.
Evaluations
Build the judged dataset the planner confirms versions on.
Filters
How filters run inside the vector store.

