Building a Custom Eval Suite for Search-Augmented LLMs
Separate retrieval scoring from generation scoring to catch citation gaps most evals miss.

A search-augmented LLM's answer depends on two systems working in sequence: the retrieval layer that fetches sources and the generation layer that turns those sources into prose. Most eval suites score the final output and stop there, so they never find out whether the retrieved sources were any good, whether the model used them at all, or whether the citations attached to each claim actually back up what they're attached to. Here's the position this piece is going to argue: retrieval needs its own scorecard, kept separate from whatever the generation layer is doing, and an aggregate accuracy number tells a team almost nothing about where a pipeline actually breaks.
The scale of the problem shows up in the numbers. Research on search-augmented LLMs has found that just having a citation next to a claim makes people trust it more, whether or not the source actually supports what's being claimed. That gap between citation presence and citation accuracy is exactly what a well-built eval has to catch, and it's the gap most teams never even check for. Separately, the LiveNewsBench benchmark found that turning off web search drops accuracy anywhere from 17% to 74.5%, depending on the query type. For time-sensitive tasks, that range suggests retrieval carries most of the weight in whether the answer is right at all. A 2023 study on GSM8K adds a related warning: stripping contaminated examples out of that test set dropped accuracy by up to 13% for some models. Off-the-shelf benchmarks can carry hidden problems, and a custom suite exists specifically to sidestep them.
What the existing benchmark landscape covers — and where it stops short
Search Arena is the closest thing to a public reference point right now. It collected 24,069 conversation sessions from 11,650 users across 136 countries over a seven-week period beginning in March 2025. That's real scale with a genuinely wide spread of languages and query types. It tracks groundedness, credibility, and usability, which puts it much closer to what a working eval suite needs than an accuracy-only benchmark. Even so, it's a preference-based leaderboard at heart: it tells a team how their model stacks up against others in aggregate. It won't say why one specific retrieval call failed, or which source domain keeps returning junk.
LiveNewsBench takes a narrower angle that's useful for one purpose: it tests integrated search systems on time-sensitive queries specifically, measuring accuracy against ground-truth answers. It's a solid template to borrow from when building freshness-focused test cases. Other benchmarks cover agent web-interaction tasks and fast-moving factual data, which can be useful if the pipeline in question is agentic, though each one measures a narrow slice and no more.
Some general-purpose evaluation frameworks are worth mentioning for a different reason: they aren't search-augmented benchmarks, but their structure — multi-dimensional profiling rather than a single aggregate score — is the architectural model worth stealing: score across dimensions, and don't collapse everything into one number.
Here's the deeper issue, though. General-purpose retrieval benchmarks hit the same ceiling problem that shows up everywhere in the benchmark world: once enough systems cluster near the top, the differences between them stop meaning anything statistically. That's the real argument for building and maintaining a custom suite alongside a public leaderboard. No public benchmark right now hands a team a configurable harness to test its own retrieval API, its own query mix, and its own citation requirements. That gap is what the rest of this piece works through.
The metric architecture: what a search-augmented eval suite actually has to measure
Think of the metrics in four layers, each one failing in its own distinct way, and each one requiring a different fix when it does.
The retrieval layer asks whether the search step did its job. Context precision checks whether retrieved chunks are actually relevant to the query; context recall checks whether the retrieved set covers everything needed to answer it; source diversity checks whether the system keeps pulling from one dominant domain; query-to-retrieval latency checks whether the search call itself is what's slowing everything down.
The generation layer asks what the model did with what it got. Faithfulness checks whether every claim in the answer traces back to retrieved content, rather than getting pulled from the model's parametric memory. Answer relevancy checks whether the response addresses the question actually asked, and hallucination rate tracks claims made with no retrieved support behind them at all.
The citation layer is the one most eval suites skip entirely, and the Search Arena credibility finding makes it non-negotiable. Citation accuracy asks whether the cited source actually contains text supporting the specific claim attached to it, not just the general topic. Citation completeness asks whether every claim that needs a source has one.
Then there's the freshness layer: how recent are the retrieved sources, how accurate is the system on questions whose right answer changes over time (prices, personnel, policy, live events), and how fast does a fixed set of test cases go stale and stop meaning anything?
On top of all four, a handful of system-level metrics start to matter once a pipeline moves into production: end-to-end latency (search plus generation combined), token consumption per query, and cost per correct answer rather than cost per call. Token consumption earns its own line item here. Token efficiency can vary significantly depending on how a pipeline is configured, so it becomes its own eval dimension worth watching on its own.
RAGAS is a good starting vocabulary. Its core metrics, faithfulness, context precision, context recall, answer relevancy, map cleanly onto the retrieval and generation layers above, and adopting that vocabulary before building anything custom saves a lot of naming confusion down the line. What standard frameworks won't hand a team out of the box is citation accuracy, source authority scoring, or temporal freshness. Those are extensions a team has to build itself to make the suite genuinely search-aware, and skipping them is the single most common shortcut that quietly breaks a suite later.
Structuring test cases that expose retrieval failures generic evals miss
A test case for a search-augmented system needs a third element beyond a plain question-and-answer pair: the query, the expected sources (specific URLs or domains that should or shouldn't show up in retrieval), and the expected answer, with individual claims mapped to the passages that actually back them.
Four kinds of test cases expose failure modes a generic eval never touches. Freshness probes ask about facts on a known update schedule, quarterly earnings, personnel changes, policy updates, and check whether retrieval surfaces something recent or just returns a stale cached page. Citation stress tests plant a plausible-sounding but wrong source in the mix and check whether the model cites what it actually retrieved or invents a citation that merely sounds right. Retrieval-versus-parametric conflict cases ask about something where the current correct answer contradicts what was true at the model's training cutoff, revealing whether the model defers to what it just retrieved or falls back on what it already "knew." Multi-hop queries require pulling from two or more sources at once, testing context precision and faithfulness at the same time.
Building all of this by hand is slow, so synthetic generation earns its keep. Automated test case generation tools can cut creation time by a wide margin. The search-specific version of that trick: generate query-source-answer triplets from live web data, then deliberately age them to see how fast freshness degrades. Edge cases that are hard to find by hand, queries where no genuinely good source even exists, are exactly where synthetic generation earns its setup cost.
Contamination is a real risk in a custom test set too, oddly enough, in much the same way it shows up in public benchmarks. Rotate freshness probes on a schedule, never reuse test queries as few-shot examples inside prompts, and version the test set with timestamps so score trends over time reflect actual change instead of a stale snapshot.
None of this requires a massive dataset. What matters is that the suite mirrors the query mix the system will actually face in production, with deliberate over-representation of the four failure categories above.
Choosing and configuring the right eval framework for a search-augmented pipeline
One requirement narrows the field fast: the framework has to score retrieval and generation independently, not just grade the final answer end to end. Anything that can't do that isn't worth adopting, no matter how polished its dashboard looks. A framework that only grades the finished answer leaves a search-augmented system's retrieval failures invisible, which is a gap worth naming plainly before adopting anything.
DeepEval is a strong option for teams building RAG or agentic pipelines, with retrieval metrics designed to slot into an engineering team's existing test workflow without much friction. Its built-in metrics are designed to cover the surface area a search-augmented system touches. Custom metric definitions matter because no framework ships citation accuracy or source freshness out of the box; a team has to write those itself either way.
Braintrust is worth considering for teams that want integration with a hosted dashboard and a natural fit for watching quality trends over time rather than just a single pass/fail check per run.
On judging free-form answers: using a strong model as judge is standard practice now. The judge prompt for faithfulness needs to look structurally different from the judge prompt for citation accuracy, though; they're checking for different things and should read that way on the page. Published playbooks for LLM-as-judge patterns, including trajectory grading and CI gating, are a useful reference. Whatever judge gets used, spot-check its verdicts against human labels on a small slice of cases before trusting it at scale; skipping that step is how a bad judge quietly poisons every score downstream. Research into what makes eval frameworks actually useful consistently highlights a handful of foundational capabilities, and the most important for search-augmented customization are support for custom datasets, custom models, and custom prompting strategies.
Evaluating the retrieval API itself as a first-class component
Before locking in a search API, run the same representative set of queries through each candidate and score them on retrieval relevance, source authority, extraction completeness, citation support, latency, and cost. That comparison is itself an eval harness, arguably the most consequential one in the whole suite, since it sets the ceiling for everything built on top of it. Get this choice wrong and no amount of prompt tuning downstream fixes it. That's worth sitting with for a second: teams spend weeks tuning prompts against a retrieval layer that was the actual bottleneck the whole time.
A few things separate AI-native search APIs from traditional SERP-style search for this purpose. Semantic, embedding-based search matters a lot for multi-hop and conceptual queries where keyword matching falls flat. Content extraction quality matters just as much: raw search-result data versus cleaned, structured output has a direct effect on downstream token consumption. In one production measurement, a system working from raw search data consumed 40% more tokens than an otherwise identical system fed cleaned output. Freshness guarantees and index recency matter too, and they directly determine whether the freshness-probe test cases built earlier can even be passed.
Platform dependency is a real risk, and it's worth naming plainly rather than dancing around it. The risk that a search API provider changes or discontinues its offering is a clear illustration of why the choice of search infrastructure is a long-term architectural decision, not a line-item cost comparison. Teams that had built entirely on one platform's API got forced into migration with little warning, and that's the scenario a diversified retrieval evaluation is meant to head off.
A few options are worth running through this kind of harness. Tavily is built specifically for LLM agents, returning structured result objects with relevance scores and content snippets, and it's widely used in agent frameworks for fast prototyping. Parallel (Parallel Web Systems) is a newer entrant designed explicitly with AI as the primary user rather than a human browsing a page; it benchmarks at 47% on Humanity's Last Exam, against 30% for Perplexity in the same comparison, though any benchmark number should be read alongside the specific query mix it was tested on. You.com's Web Search API and Research API are built specifically for AI agents and LLM grounding; the Research API is designed specifically for AI agents and LLM grounding. You.com also offers a Contents API for structured extraction and a Finance Research API targeting financial intelligence.
Cost deserves its own line item here, and not the naive version of cost. Grounding cost compounds fast because an agent searches on nearly every reasoning turn, and the cost gap between providers gets significant once volume scales up. Cost per correct answer, not cost per API call, is the number that actually matters, and it belongs in the suite right alongside the retrieval and citation metrics. Run each API candidate through the same freshness probes, citation stress tests, and multi-hop cases built earlier: the eval suite built for the LLM turns out to be the right instrument for picking the retrieval layer underneath it too.
Running the suite continuously and acting on what it surfaces
An eval suite that runs once and gets filed away isn't much use six weeks later, once the query mix has shifted and the retrieval API has quietly changed its index behind the scenes. The better pattern, and the one more teams are moving toward, treats LLM quality gates the way engineering teams treat unit tests: run automatically on every deployment, on top of whatever manual check happens before a big launch.
In a CI/CD setup, that means configuring pass/fail thresholds per metric layer: retrieval, generation, citation, and freshness each get their own gate rather than one blended score. That separation catches things an aggregate accuracy number would quietly average away. A prompt change or model swap that bumps answer relevancy but tanks citation accuracy should fail the gate even though the headline score went up; a single end-to-end metric is prone to hiding exactly this kind of regression.
When something fails, where to look depends on which layer tripped the alarm. A freshness failure means checking source recency in the retrieval API's response before touching the generation prompt at all. A citation accuracy failure means checking whether the retrieval layer even returned the source the model claims to be citing, before assuming the generation model is the one confabulating. A faithfulness failure means sorting out whether the model ignored perfectly good retrieved content in favor of its own memory, or whether the retrieved content itself was too thin to support a real answer in the first place. Those are two different bugs with two different fixes, and treating them as the same problem is how teams end up patching the wrong layer for weeks running.
Teams building this kind of suite from scratch should start with RAGAS's core vocabulary, faithfulness, context precision, context recall, answer relevancy, then extend it with the search-specific metrics that vocabulary leaves out: citation accuracy and source recency chief among them. Platforms like You.com's Research API, are built with this kind of instrumented measurement in mind. They return cited, timestamped sources, which makes it possible to actually audit retrieval quality and generation fidelity in real time, instead of guessing at what happened between the search call and the final answer.
The retrieval loop deserves treatment as a measurable, testable system in its own right, sitting quietly underneath the model rather than hidden inside it. An eval suite that skips that treatment ends up measuring the wrong thing, however clean its final accuracy number looks.


