Web retrieval evals

Unit Tests for AI Agents That Browse the Web

Agent Royale turns source-specific web questions into deterministic evals. Write a task pack, connect your agent or retrieval layer, and see which answers are exact, stale, wrong-source, or unsupported.

48reusable tasks
9target examples
1,152scored runs
54%original avg accuracy
Why Agent Royale

Browsing is not the same thing as returning the exact value your workflow needs.

Agent Royale makes live-web retrieval errors visible, repeatable, and easy to compare across providers.

01

Define the Task

Create YAML task packs for the source-specific questions your agent must answer correctly: versions, counts, prices, licenses, releases, or other exact fields.


Each task declares the required source, ground-truth oracle, grader, and tolerance so the same pack can be reused across stacks.

02

Connect a Target

Run the same task pack against a local endpoint, Python function, model web search stack, browser automation layer, or web data API adapter.


The repo includes target examples for HTTP agents, OpenRouter, Firecrawl, Tabstack, Tavily, Jina Reader, Stagehand, and Browser Use.

03

Inspect Failures

Agent Royale reports exact accuracy, wrong values, wrong sources, unsupported citations, latency, cost, and task-level failure details.


The original 32-task experiment produced 1,152 scored runs and showed a 54% average exact-accuracy rate across tested stacks.

Methodology Overview

Each aspect of the experiment design was structured to prevent exploitation.

OpenRouter runs the model stack with web retrieval, Bright Data or public APIs fetch the answer separately, and the grader compares the extracted claim to the saved source value.

01

Task Construction

Each task specifies a required canonical source, a target field, a tolerance, and a grading rule. Answers are live and change over time.


Example tasks: "Using Yahoo Finance, what is NVDA's current regular-market quote price in USD?" and "On the Hacker News front page, what is the title of the #1 ranked story?"

02

Model Selection

The evaluation included consumer flagships, search-augmented models, efficient models, and open-weight-style stacks — twelve configurations in total.


Each stack was run three times per task to distinguish consistent accuracy from single-run chance correctness.

03

Grading Protocol

Answers were normalized and graded against independently fetched source values using task-specific rules.


An LLM judge was deliberately excluded to prevent leniency toward plausible but incorrect values. The extracted claim either matches the independently fetched value or it does not.

04

Secondary Metrics

Source matching, citation behavior, estimated cost per run, latency, and cross-run consistency were logged for each model stack.


These allow practitioners to make stack selection decisions across multiple dimensions beyond raw accuracy.

05

Limitations

This is a single v1 run on a 32-question task bank with an uneven domain distribution. Results should not be interpreted as a permanent ranking of model capability.


A follow-up evaluation (v2) is planned with a larger and more balanced task bank, a refined ground-truth pipeline, and a smaller set of stacks evaluated more rigorously.

06

Future Work

V2 will expand the task bank, improve domain balance, introduce accurate cost logging, and add stronger citation verification and failure categorisation.


The longer-term goal is a continuously updated evaluation resource for practitioners selecting AI search and retrieval infrastructure.

Results Overview

Just because AI cited the correct source does not mean it is correct.

These examples from the most recent experiment show how AI can cite the correct source and still be wrong.

01Using Samsung's official US page for the unlocked Galaxy S25 Ultra with 256GB storage, what is the current one-time purchase price in USD before trade-in?
Claude Sonnet answer
$1,299.99 USD
FAIL · 12,794ms
What it said
Confirmed by multiple Samsung.com pages, including the Galaxy S25 Ultra main page.
Real source, wrong price
Ground truth
$999.99
Samsung source checked
02Using Yahoo Finance, what is NVDA's current regular-market quote price in USD?
GPT-4o answer
$228.04
FAIL · 4,092ms
Cited source
Yahoo Finance
Correct domain, wrong value
Ground truth
$220.61
finance.yahoo.com/quote/NVDA
03Using Netflix's official US pricing help page, what is the current monthly price of the Standard with ads plan in USD?
Gemini Pro answer
$7.99
FAIL · 12,709ms
Cited source
Netflix Help Center
Correct page, stale price
Ground truth
$8.99
help.netflix.com/en/node/24926
04Using Stripe's LinkedIn company profile, how many people does LinkedIn currently show as employees?
Grok 4 answer
5,001-10,000 employees
FAIL · 16,576ms
Cited source
linkedin.com/company/stripe
Correct source, wrong field
Ground truth
15,243
LinkedIn profile checked
The practical takeaway
Plausible answers still need deterministic checks.
This experiment shows that even frontier LLM stacks failed to return exact ground-truth values for live web facts almost half the time in this v1 run. The worst part is that models often delivered confident incorrect data due to stale search caches, layout parsing issues, source-field confusion, and nearby wrong values. A model citing a real URL does not guarantee accuracy. Live data precision is still a hard retrieval problem, not just a text generation problem.
33%
returned a wrong value

Live Check

You can use Live Check to see AI search systems return incorrect answers for yourself. Pick a task from the task bank, choose the model stacks you want to test, and run the experiment. The app fetches a fresh ground-truth value from the internet right now, asks each selected model the same question in parallel, extracts the value from each answer, and grades the responses against the retrieved ground truth. This is a small replica of the live experiment loop behind the v1 results.

Task bank
Loading tasks...
Recent live checks
Loading recent live checks...

Leaderboard

I ranked 12 model stacks across the frozen 32-task v1 snapshot. This page compares exact accuracy, wrong-answer rate, no-response rate, source checks, latency, and estimated cost.

Loading benchmark snapshot details...
No runs yet. Run an evaluation first.

Results

This is my read of the v1 results: what surprised me, where models failed, what the numbers mean, and how I would use the benchmark to choose a retrieval stack.

Loading result analysis...

Tasks

You can use this page to inspect every task behind the leaderboard. Pick a question to see the saved ground truth, model answers, citations, failure patterns, pass rate, and average latency.

Loading task results...

Models

You can use this page to inspect each model stack one at a time. The report cards show how often it was right, how often it gave a wrong or unusable answer, which topics it handled best, where it failed, how long it took, and the estimated cost of each run.

Loading model report cards...

Task Bank

This is the 32-question task bank I used for the public v1 run. Each question asks for a concrete live-web value, has a required source, and has a saved answer with evidence that can be checked.

Each card shows the question, the saved answer I graded against, when I fetched it, the evidence behind it, the required source, and the grading rule. Feel free to explore this page to fact-check that the ground truth values are valid.

0 shown / 0 total in bank
Loading ground truth claims...
V1 methodology

Overview of the benchmark and results

I built Agent Royale to test one narrow question: can AI search stacks retrieve exact, current values from the public web when the answer has to match a specific source?

I made the task rubric fixed, but the answer live. Each task has a required source, field, tolerance, and grading rule. The model gets a normal source-specific question, but it does not get the saved answer. Separately, I fetch ground truth from the required source using Bright Data or a stable public API.

I did this because most real retrieval failures are boring but expensive: stale prices, wrong quote fields, company-size ranges instead of employee counts, wrong regions, wrong product variants, and citations that look right but do not support the answer.

Below is the complete overview behind the project inspiration, methodology, results, and future steps.

32tasks
12model stacks
1,152scored runs
54%overall accuracy

TL;DR

  • I tested 12 model stacks on 32 audited tasks, 3 runs per model per task.
  • That produced 1,152 scored attempts: 619 correct, 385 wrong values, and 148 no-answer responses.
  • The tested stacks averaged 54% exact accuracy. Grok 4 performed best in this run at 78%.
  • Scoring was deterministic: the extracted claim had to match the independently fetched source value.
A few disclaimers to note

This is useful signal, not a universal ranking.

This is one v1 run, not a universal ranking of every model forever. The public task bank has 32 questions, the domain mix is uneven, and the leaderboard is a frozen snapshot from one experiment.

This experiment was designed to test the upper limit of live search and retrieval intelligence under one setup. A production implementation would involve many other choices: retrieval provider, search depth, source restrictions, prompt design, schema validation, retry policy, latency budget, and how much cost you are willing to spend for a better answer.

The right retrieval stack is hyper-personal. A finance workflow, a shopping assistant, a recruiting data pipeline, and a developer tooling agent do not need the same tradeoffs. Some questions need exact source-specific extraction. Some need broad discovery. Some domains punish stale values more than others. That is why I care less about crowning one permanent winner and the v2 will be more about building a way to evaluate the stack against the task bank that actually matters to you.

From here, I walk through the problem, the task bank, the ground-truth process, model selection, scoring, results, and what I want to improve next.

Agent Royale Methodology

Scope

What this benchmark measures and what it deliberately does not.

Agent Royale evaluates one capability: whether a model/retrieval stack can return the exact current value from the live public source named in the task. It does not measure general intelligence, writing quality, long-form reasoning, or whether an answer sounds plausible.

01

Task design

I wanted normal questions with deterministic answers. For example: “Using Yahoo Finance, what is NVDA’s current regular-market quote price in USD?”

02

Ground truth

The model being graded never produces the answer key. I fetch ground truth separately from the required source using Bright Data or a stable public API.

03

Model stacks

I tested practical stacks people might actually choose: consumer flagships, search-first systems, efficient/value models, open-weight-style stacks, and advanced reasoning models.

04

Run protocol

Every model got the same questions three times. Repetition matters because a model can get a live fact right once and still be unreliable on the next attempt.

05

Scoring

The extracted claim either matched the independently fetched value or it did not. Wrong answers and no answers are tracked separately because being wrong is a lot worse than admitting to not knowing an answer.

06

Decision metrics

All of these metrics are reported: accuracy, wrong-answer rate, no-answer rate, citation/source behavior, latency, estimated cost, and consistency across repeated runs.

Task design

Each task is designed to be a normal question with a deterministic answer.

Each task is written like a real user question, but constrained enough to have one answer I can verify. I chose dynamic web facts so the model has to engage in retrieval instead of relying on a memorized static answer key.

The candidate pool included finance, ecommerce, app stores, LinkedIn/company metrics, social metrics, developer tools, subscriptions, real estate, travel, and business intelligence. For the public v1 launch, I only show tasks where every model had complete coverage: 3 clean runs for each of the 12 model stacks. After trimming overweighted app, LinkedIn, and developer tasks, that left 32 tasks in the frozen public benchmark.

If I could not reliably extract the value, I quarantined the task so it did not affect scores. I would rather ship a smaller task bank than include rows where the expected answer is questionable. This is why the Task Bank page matters: it is the evidence ledger for question, saved answer, source, fetch time, evidence, and grading rule.

BucketModels in v1Why I included them
Consumer flagshipsGPT-4o, Claude Sonnet, Gemini ProThe models many people reach for first.
Search specialistsSonar Deep Research, Sonar Pro Search, Grok 4Stacks that explicitly position around live information or search.
Efficient/valueDeepSeek V4 Flash, Gemini Flash Lite, GPT-4o MiniCheaper or faster options that teams might use at scale.
Open-weight styleGPT-OSS 120B, Nemotron 3 SuperInfrastructure-style stacks where strict extraction and formatting matter.
Advanced reasoningClaude OpusA test of whether more reasoning helps with contradictory or stale web data.

The mobile app tasks may look a little odd at first, but I included them on purpose. They test whether AI search agents can navigate specific, less obvious retrieval tasks instead of only answering common web questions. App ratings, versions, and counts also change over time, while still giving me stable enough ground truth to compare against.

Grading pipeline

Every answer is reduced to a claim and checked against the saved source value.

The runner saved the full answer, the value extracted from that answer, citations returned by the provider, runtime latency, estimated cost, and the final pass/fail result.

01Task prompt

The same source-specific question is sent to each model/retrieval setup.

02Model with web retrieval

The stack searches and answers using its provider-specific retrieval behavior.

03Raw answer and citations

The runner stores the full answer and provider-returned citations.

04Extracted value

The specific value asserted by the model is extracted from the response.

05Stored result

The claim is compared to saved ground truth, then stored with latency and estimated cost.

question -> model with web retrieval -> raw answer -> extracted value -> compare to saved ground truth -> stored result

By model/retrieval setup, I mean the model plus the search behavior used to answer the task. That is the thing teams actually deploy: not just a base model, but a model connected to search, citations, routing, and provider-specific retrieval behavior. The public model calls ran on May 20, 2026 from 1:48 AM to 3:59 AM PT.

Scoring and metrics

How I decided whether an answer counted.

The main score is Live Exact Accuracy: correct scored runs divided by total scored runs. No-answer runs are included in the denominator because they still failed to return the requested value.

I did not use an LLM judge because that would add another layer of subjective interpretation. A judge model might reward a plausible explanation, forgive an approximate value, or miss that the model answered with the wrong field. For this benchmark, I wanted stricter grading: the extracted claim either matched the independently fetched value or it did not.

OutcomeDefinitionAttemptsShare
CorrectThe extracted claim matched the independently fetched source value.61954%
Wrong answerThe model returned a usable but incorrect value.38533%
No answerThe model refused, could not verify, or returned nothing usable.14813%

This distinction is important: confident false information is way worse than admitting you cannot find the answer.

I report exact accuracy, wrong-answer rate, no-answer rate, canonical-source citation rate, latency, estimated cost, and consistency across repeated runs. Canonical Source is intentionally limited in v1: it means a cited URL overlapped the required source URL, and I only count it among correct answers. It is not passage-level proof that the cited text supports the value.

Estimated Cost is directional in v1, not a controlled benchmark variable. This run was designed to ask: how good can these stacks get at live search and retrieval when cost is not the main constraint? In future runs, I want cost to be part of the experimental design with fixed budgets, real provider usage logs, and clearer cost-per-correct-answer comparisons.

Results by topic

Some domains performed better than others.

TopicTasksAccuracyWhat I saw break
Subscriptions380%Plans and prices were comparatively easy when pages exposed clean values.
Mobile apps771%Ratings and counts were easier, but source and freshness still varied.
Finance670%Models confused live quote fields, stale values, close prices, and alternate sources.
Ecommerce263%Product pages were workable, but price extraction still failed under page noise.
Research / dev338%Package, repository, and metadata tasks exposed stale search results and wrong fields.
Social media537%Counts changed often, sources were inconsistent, and models leaned on stale snippets.
Recruiting / LinkedIn623%Models mixed up followers, employee ranges, and structured employee fields.
Results by model

The models I use most often were only correct about 50% of the time.

This v1 is nowhere near perfect. I learned a lot from this run and am actively redesigning the benchmark to be more actionable and fair. That said, I still want to share the results and numbers from this initial run.

Model stackAccuracyWrongNo answerCanonical source
Grok 478%21%1%85%
Gemini Pro64%30%6%82%
Nemotron 3 Super61%31%7%83%
Sonar Pro Search59%29%11%79%
DeepSeek V4 Flash57%29%14%95%
GPT-4o Mini56%42%2%78%
Gemini Flash Lite54%46%0%0%
Claude Sonnet53%46%1%76%
GPT-4o52%48%0%82%
Claude Opus46%50%4%34%
GPT-OSS 120B35%18%47%97%
Sonar Deep Research28%11%60%96%

What comes next

V2 will be out soon with a larger and more balanced task bank, a new ground-truth pipeline, accurate cost logging, stronger citation verification, clearer failure labels, and a smaller set of models tested more rigorously.

The goal is to turn Agent Royale from a one-off experiment into a decision tool for teams choosing AI search and retrieval stacks.

That said, I still think the signal matters: a 54% average exact accuracy is far worse than I had anticipated. I hope these findings encourage anyone building with these models to look past the hype and fact-check their AI outputs much more critically.

Agent Royale is an independent research project. The v1 benchmark uses OpenRouter for model/retrieval stack access and Bright Data or public APIs for independent ground-truth retrieval. The task bank, evaluation harness, and scoring logic are documented in the repository so the results can be inspected, questioned, and improved. If you have any questions, concerns, or ideas please email me at vinayasharma00@gmail.com.

0
V1 tasks
0
Scored runs
n/a
Last run
n/a
Top accuracy