The judgment sets
Two corpora are measured, and they are never merged into one score. A single blended number would let an easy corpus carry a hard one, which is precisely how a search system comes to be described as excellent by the team that built it.Gold: real, blind-judged
2,000 real listings captured from a live x402 Bazaar, with 202 blind, graded human judgments. Queries were written by reading each resource’s purpose and phrasing a request an agent would actually make, before measuring anything.
Silver: derived, for robustness
ToolACE-derived queries, each written against its own answer. Lexical overlap flatters any ranker, so silver measures recall and robustness under load, not precision truth, and never gates a release.
dev, inspectable and tunable, like any development set.locked, measured and never diagnosed. When a locked query fails, the failure is reported in aggregate and left alone. The harness deliberately refuses to print which locked queries failed, because a held-out set whose failures you study is just a slower training set. That discipline is enforced by the tool, not by remembering to look away.
Grading and metrics
Relevance grades are explicit and judge-assigned (3 clearly-best, 2 strongly relevant, 1 partially relevant), never inferred from a result’s position in the list. Two equally-good answers both get 3.
Every proportion is reported with a Wilson 95% confidence interval, and each slice carries CI regression floors, set from the first measured run, slightly below it, so they are a guard against getting worse, not a target nobody has hit. A change that drops a slice below its floor fails the build.
precision@5 is deliberately not featured. Most gold queries have only 1 to 2 relevant documents, so precision@5 is structurally capped near 20% no matter how good the ranking is, and quoting it unqualified would be meaningless in either direction. recall@k and nDCG@10 are the honest metrics for this shape of task.
Results
Regenerated 2026-08-16. The 20-document and 2,000-document sets are deterministic and reproduce exactly; the 18,450-document rows re-derive their silver distractors from a pinned upstream source, so those figures move by a point or two per rebuild (stated plainly, because it is true).At small scale: 20 real listings
A near-perfect score over a handful of hand-written fixture APIs reflects the authoring, not the ranker. Measured over 20 real captured listings, sixteen of them near-identical siblings of one service (the genuinely hard case), the ranker still leads:
But 20 documents is a small ruler, and we do not stop there: the next two tables are the honest ones.
At realistic scale: 2,000 real listings
The same 202 blind judgments, scored against all 2,000 real captured listings:
Against a realistic catalog the ranker puts the right resource first about half the time and surfaces it in the top ten two-thirds of the time. That is the number to quote, and improving it is real work rather than a tuning pass. The two slices agreeing to within about 2 points on p@1 is the evidence the dev/locked split is fair.
The hybrid earns its place here: an ablation on this set moves BM25’s nDCG@10 from 0.518 to the hybrid’s 0.594 (MRR 0.551 to 0.626), a per-query win (82 better, 53 worse, 67 unchanged) that a two-sided sign test puts at
p = 0.016, reproducible with pnpm ablation.
Under stress: 18,450 documents
The robustness test: the same real listings and the same judgments, buried under about 16,000 off-distribution distractors. Does the right real answer survive?
Read recall@10 first here: with the corpus nine times larger, the right answer still lands in the top ten more than half the time on gold (54.0%), and the typo slice (every query deliberately misspelled) still recovers it 42.6% of the time, evidence the typo rescue is doing real work at scale.
Robustness delta (gold · locked, 2,000 to 18,450 documents): p@1 50.5% to 30.5%, recall@10 66.5% to 54.0%, nDCG@10 0.569 to 0.424. Precision degrades gracefully under a 9× distractor load rather than collapsing, which is the property a stress test exists to show.
toolName, are measured on their own slice against the full catalog (locked p@1 85.7%, recall@10 71.4%, n=7). That n is a tripwire, not evidence; see below.
How to read a search-quality claim
The numbers above are worth exactly as much as the questions you can ask of them. These are the questions, vendor-neutral, and the ones this page has tried to answer in advance.- What is
n, and what is the confidence interval? A bare “92% precision” or “nDCG 0.93” is a point estimate. At 10 to 50 queries the 95% interval is often 30 to 50 points wide, wide enough that the headline and a coin flip are hard to tell apart. A credible claim reports the sample size and the interval beside every number. - How big is the corpus, and where did the documents come from? Real captured listings or invented fixtures? A near-perfect score over a few dozen hand-written APIs measures the authoring, not the ranking. Known-item retrieval over a tiny self-made corpus scores near the ceiling of the instrument regardless of ranker quality.
- Who wrote the relevance judgments, and had they seen the results first? The strongest evidence is blind human judgments: a query written from a service’s own description, before any results are seen. Weakest is judgments written by whoever wrote the ranker, or by an LLM (worse still, the same model that authored the corpus). “Human-reviewed” is not “human-graded”; ask which.
- Is there a held-out slice that is never tuned against, and is it actually withheld? If every tuning decision is validated on the set it is reported on, the test set has quietly become the training set. Look for a locked split chosen reproducibly, ideally with a harness that refuses to reveal which held-out queries failed.
- Can you re-run it, and is the corpus pinned? A real claim ships a command that reproduces the number and a content hash pinning the exact corpus, so the dataset cannot be silently swapped to flatter the result.
- Was the number measured through what is actually deployed? The reported retrieval method should equal the served one (same model, same weights, same code path), against a live endpoint returning the spec-correct shape. A number measured on a model the production service does not run proves nothing about what an agent experiences.
- Is abuse resistance measured, not just asserted? “Spam-resistant” should come with a rank delta: how far did keyword-stuffing or fake popularity actually move an attacker, and can the popularity signal be self-manufactured for free?
What we deliberately do not claim
Next steps
Reproduce the numbers
Every command, the eval pack’s provenance, and the drift plan.
Retrieval architecture
The ranker these numbers measure.
Conformance
Wire-level conformance against the upstream e2e suite.
How search works
The lighter conceptual introduction.