Skip to content
DriftCaught

Feature type

Evals for retrieval augmented generation

Retrieval quality and generation quality are two different failures, and a single score hides both. Start with the three-feature plan at $4,400 a month, which adds the span-level scoring a RAG feature needs.

A retrieval (the step that fetches documents or passages for the model to answer from) augmented feature answers from documents you fetch for it. That gives it two places to fail, and the two fail independently. A single answer quality number tells you something got worse without telling you which half to look at.

What typically breaks in RAG after a model change

Five patterns, and the first is usually not the provider's doing at all. Each shows up as drift (a measured change in a feature's scores between two runs of the same dataset).

The right documents stop coming back

retrieval failures are the ones people expect, and they are usually not caused by a model update at all. A reindex, an embedding model change, a chunking change, a filter added for a new tenant. The generation side is blameless and the answer is still wrong, because the passage that held the answer never reached the prompt.

This is why a golden dataset (a fixed, versioned set of inputs with the verdict a domain expert gave each one) for RAG stores the expected source document per question, not only the expected answer.

The same context gets used differently

This is the failure specific to a model change, and the one that surprises teams. Retrieval returns exactly what it returned last month. The answer changes anyway. Which passage the model leans on, how it reconciles two passages that disagree, whether it answers from a partial match or declines: those are model behaviours, and a new version weighs them differently.

Nothing on your side has to move for this to happen. Google says a Gemini latest alias points to the most recent release of a model variation and is hot-swapped with every new release of that variation. [Google] Google also says stable models usually don't change and that most production apps should use a specific stable model, which is the provider's own argument for pinning. [Google] Keep the hedge in that sentence: usually is not never. Dated entries are in the Google change log.

Answers drift away from the retrieved context

Claims appear in the answer that the retrieved passages do not support. Ragas defines faithfulness as the share of claims in a response that can be inferred from the retrieved context, computed by identifying every claim and checking each one against the context, expressed as supported claims divided by total claims[src] on a 0 to 1 scale. [Ragas]

Read that definition before you agree to it as your headline metric. Faithfulness scores grounding in the context that retrieval returned. It does not score whether that context is true.

Citations stop matching the sentences they sit next to

If your interface shows sources, the link between a claim and its citation is a separate thing to check. An answer can be faithful in aggregate and attach the wrong passage to a specific sentence. Users trust the citation more than the sentence, so this failure costs more than its score suggests.

Scoring only the final answer hides all of the above

Arize Phoenix writes that end-to-end evaluation only inspects the two endpoints, the input and the final output, and that the interesting failures happen in the middle, in reasoning, tool selection and the decision path, where those two endpoints cannot show them. [Arize AI] For RAG the middle is the retrieval step and what the model did with what it got back. The method for reading it is EV-AGENT, which applies to retrieval augmented features as well as to agents.

Which scorers apply

LangSmith documents four evaluator types: human review, rule based code functions, LLM as judge (a model that scores another model's output against a written standard) in reference free and reference based variants, and pairwise comparison of two application versions. [LangChain] RAG uses code checks on the retrieval side, where there is an expected document, and judged scorers (the functions that turn one output into a score or a pass and fail verdict) on the generation side, where there is not.

  • Faithfulness against the retrieved context. Catches claims the passages do not support. Misses whether the passages are correct, and misses a right answer that was reached without the context.
  • Retrieval hit rate against the expected document. Catches the passage that should have been fetched and was not. Misses cases where the right document was fetched and the wrong part of it was used.
  • Answer relevance judge scorer. Catches an answer that is grounded but does not address the question asked. Misses factual error, and needs calibrating against your people's labels before it is reported.
  • Citation validity code check. Catches a citation pointing at a document that was not retrieved, or at a chunk that no longer exists. Misses a valid citation attached to the wrong sentence unless the dataset records the expected span (one recorded step inside a request, for example a single tool call or retrieval, with its inputs and outputs).
  • Reference based answer match. Catches drift away from a known correct answer, on the subset of questions that have one. Misses everything on open questions, which is most of a real corpus.

The split matters more than any single number. A verdict that says retrieval held and generation moved sends you to the prompt. A verdict that says retrieval moved sends you to the index. One combined score sends you nowhere. Selection is written out in EV-SCORE.

What a baseline includes for this feature type

The eval baseline for a RAG feature is built around question and source pairs.

  • Real questions from your own traffic, including the ones your corpus cannot answer, because declining well is a behaviour worth scoring.
  • The expected source document or chunk for every question where one exists, stored alongside the question, so retrieval can be scored on its own.
  • A claim-level rule for what counts as supported by the context, agreed in writing before any faithfulness number is produced.
  • A snapshot of the corpus version and the retrieval configuration pinned to the dataset version, so a later run can tell a retrieval change apart from a model change.
  • Questions your corpus genuinely cannot answer, with the expected behaviour written down.
  • A dataset change rule. Galtea writes that additions should require code review, that deletions should be treated as production risk, and warns against updating ground truth to match model behaviour. [Galtea] Construction is EV-DATA.

Which plan fits

Up to three features at $4,400 a month is the plan we point RAG features at, because it includes span-level evals and RAG is the feature type where the endpoints lie to you. You can run a RAG feature on One feature, and you will get faithfulness, retrieval hit rate and the rerun triggers. What you will not get there is per-span scoring of the retrieval step, which starts on the three-feature plan. The other caveat is scope: production sampling scores live traffic against reference free scorers only, since no expected answer exists there. Langfuse says observation-level evaluators are the recommended target for live production data and lists sampling a percentage of traces as a way to manage the cost of judged evaluation. [Langfuse] That mechanism is EV-PROD. The same grounding question, asked without retrieval, is on the summarisation hub.

Scorers that apply here

  • faithfulness against the retrieved context
  • retrieval hit rate against the expected document
  • answer relevance judge scorer
  • citation validity code check
  • reference based answer match

Every scorer catches something and misses something else. Which ones we run, and what each one cannot see, is set out in EV-SCORE.

Tracked changes with a note for RAG

These entries carry an impact note for this feature type, each one citing a published practitioner source. The note says what this kind of change typically touches, not what it did to anyone's feature.

GoogleDeprecation

gemini-2.5-pro, gemini-2.5-flash

Google limited access to Gemini 2.5 models to projects that are actively using them. The entry points developers to Gemini 3.5 Flash-Lite or Gemini 3.8 Flash instead.

  • Chat assistant: A forced move changes the model behind every answer. Google's own documentation says most production apps should use a specific stable model, and hedges only that stable models usually do not change.
  • RAG: When the generating model is replaced, the answer is scored again for faithfulness, which Ragas defines as the share of claims in a response that can be inferred from the retrieved context. It scores grounding in that context, not factual truth.
Plan a migrationCheck whether any project still calls a Gemini 2.5 model id, and open a migration ticket for the ones that do before new projects lose access.

Source: Google, Gemini API changelog . verified 2026-09-22

OpenAIContext change

gpt-5.6-sol, gpt-5.6-terra, gpt-5.6-luna

OpenAI states that Fast mode now supports long context requests exceeding 272K tokens for the GPT-5.6 models.

  • RAG: Dropping the chunking you added for the old ceiling changes what sits in the context window. Ragas defines faithfulness as the share of claims in a response that can be inferred from the retrieved context, so the score moves with the context as well as with the model.
  • Summarisation: Summarising a whole document rather than a set of chunks changes the expected output for every case. Galtea warns against updating ground truth to match model behaviour.
Rerun the suiteIf you split long inputs to stay under the old ceiling, run a long document case end to end before removing that chunking.

Source: OpenAI, OpenAI API changelog . verified 2026-09-22

AnthropicNew version

claude-sonnet-5

Anthropic launched claude-sonnet-5 at an introductory $2 and $10 per million tokens with a 1M token context window and 128k maximum output tokens. The notes state that adaptive thinking is on by default, that manual extended thinking was removed and returns a 400 error, that non default sampling parameters return a 400 error, and that a new tokenizer produces about 30 percent more tokens.

  • Classification: Non default sampling parameters now return a 400 error, which breaks caller code without any model swap on your side. Anthropic first made this parameter deprecation from Claude Opus 4.7 onward.
  • RAG: A tokenizer that produces about 30 percent more tokens changes how much retrieved text fits in one prompt. Ragas defines faithfulness as the share of claims in a response that can be inferred from the retrieved context, so a smaller retrieved context can move the score by itself.
  • Summarisation: The same input now costs more tokens, so what reaches the summariser can change before the model does anything. Galtea warns against updating ground truth to match model behaviour when the summaries come back different.
Revisit the promptRecalculate token budgets and cost estimates against the new tokenizer, and strip manual thinking and non default sampling parameters from requests before they start failing.

Source: Anthropic, Claude API release notes . verified 2026-09-22

AnthropicContext change

claude-sonnet-4-5-20250929, claude-sonnet-4-20250514

Anthropic retired the 1M token context window beta, context-1m-2025-08-07, for Claude Sonnet 4.5 and Claude Sonnet 4. The beta header now has no effect on these models, and requests exceeding the standard 200k token context window return an error. Anthropic says to migrate to Claude Sonnet 4.6 or Claude Opus 4.6, where the 1M context window is included at standard pricing with no beta header required.

  • RAG: A smaller usable window changes how much retrieved text reaches the model. Ragas defines faithfulness as the share of claims in a response that can be inferred from the retrieved context, so the scorer reads what was actually passed in, not what was retrieved.
Plan a migrationFind any request that still sends the context-1m-2025-08-07 header to these two ids, then either shorten the input or move the feature to a model where the 1M window is standard.

Source: Anthropic, Claude API release notes . verified 2026-09-22

OpenAINew version

gpt-5.5, gpt-5.5-pro

OpenAI released GPT-5.5 as a frontier model with a 1M token context window, structured outputs and extended prompt caching, alongside gpt-5.5-pro.

  • Extraction: Structured outputs decide whether extracted fields validate against your schema. DeepEval defines a golden as an input plus the expected result, which becomes a full test case once the application produces the actual output, so the same goldens rerun against the new model.
  • RAG: A larger window invites more retrieved text into the prompt. Ragas defines faithfulness as the share of claims in a response that can be inferred from the retrieved context, and it scores grounding in that context rather than factual truth.
Rerun the suiteRun your structured output cases against gpt-5.5 and check that responses still validate against your schemas before changing the model you serve.

Source: OpenAI, OpenAI API changelog . verified 2026-09-22

AnthropicContext change

claude-opus-4-6, claude-sonnet-4-6

Anthropic took the 1M token context window out of beta for Claude Opus 4.6 and Claude Sonnet 4.6, at standard pricing and with no beta header required. The notes state that the dedicated 1M rate limits were removed and that the media limit was raised to 600 images or PDF pages per request.

  • RAG: A longer window changes how much retrieved text you put in front of the model. Ragas defines faithfulness as the share of claims in a response that can be inferred from the retrieved context, so the score follows the context you assemble.
  • Summarisation: Feeding a whole document instead of chunks changes the input to every case, which makes the old run and the new run two different things unless the inputs are tracked. Braintrust tracks every change to a dataset so experiments can pin to specific versions.
Rerun the suiteRemove the 1M beta header from your clients and rerun any long context case, since the separate rate limit pool that used to back those requests is gone.

Source: Anthropic, Claude API release notes . verified 2026-09-22

GoogleDeprecation

gemini-3-pro-preview

Google shut down Gemini 3 Pro Preview.

  • RAG: A retrieval feature pinned to a preview id can lose that id on short notice. Google says Gemini preview models may be used in production but will be deprecated with at least 2 weeks' notice.
  • Classification: A classifier that runs unattended is the last place a shutdown gets noticed. Google's documentation says most production apps should use a specific stable model, and hedges that stable models usually do not change.
Plan a migrationReplace any gemini-3-pro-preview pin with a current Gemini 3 id and rerun the affected suites, since the preview id no longer serves.

Source: Google, Gemini API changelog . verified 2026-09-22

OpenAIContext change

gpt-5.4, gpt-5.4-pro

OpenAI released GPT-5.4 as a frontier model with a 1M token context window, tool search, computer use and compaction, alongside gpt-5.4-pro.

  • Agent: Tool search and computer use add steps that the final answer never shows. Arize Phoenix reconstructs tool_path, the ordered tool calls with their arguments, and tool_io, what each tool was called with and what it returned, and warns that a correct looking answer can come from a broken path.
  • RAG: Compaction changes what the model still has in front of it when it answers. Ragas defines faithfulness as the share of claims in a response that can be inferred from the retrieved context, so a compacted context is a different thing to be faithful to.
Rerun the suiteRun one long input case against gpt-5.4 before you rely on the larger window, and check how compaction changes what the model still has in front of it.

Source: OpenAI, OpenAI API changelog . verified 2026-09-22

Which plan fits

Start with the eval baseline at $1,800, which is where the suite for this feature comes from. Then Up to three features at $4,400.

What we cannot do

We cannot make a model deterministic or guarantee its outputs. We measure against an agreed dataset and thresholds and report what changed. We do not train or fine-tune models, and we do not replace human review for policy or legal decisions. Coverage is bounded by the dataset and the plan.

The longer version, with the reasoning

$4,400per month, after the baselines

A product team with several AI features and no way to compare them objectively.

Reruns trigger on

  • A tracked provider announces an update
  • You flag a prompt change
  • You flag a retrieval or index change
  • The weekly scheduled run

Included

  • Everything in One feature, for three features
  • Agent span-level evals where applicable
  • Biweekly call

Not included

  • CI gate integration
  • Same-day reruns

Questions about evaluating rag

Does a high faithfulness score mean the answer is true?
No. Ragas defines faithfulness as the share of claims in a response that can be inferred from the retrieved context. A confidently wrong source document produces a faithful answer. Truth needs an expected answer and a separate scorer.
Our retrieval did not change. Why rerun after a model update?
Because the same passages can be used differently. Which parts of the context the model leans on, and how it handles a partial match, are model behaviours. The retrieval step can be identical and the answer still moves.
Should we score retrieval and generation together?
Only after scoring them apart. A combined score tells you the answer got worse and not which half to fix. Separate scorers let a verdict say retrieval held and generation moved, or the reverse.
We reindexed our corpus. Is that a trigger?
Yes. A retrieval or index change you flag is a rerun trigger on every monthly plan, with the same turnaround as a prompt change.
How is a RAG feature different from an agent for evaluation?
The spans are simpler and the reading is the same. Both need the middle of the run scored, not just the two endpoints. Span-level scoring starts on the three-feature plan.

Coverage is bounded by the dataset and the plan. A suite for this feature type says nothing about the other features you ship.