Apply to my task
arXiv:2610.25323 ★ 90 Oct 18, 2026

TREK: Why Search-Augmented LLMs Fail Not at Searching, but at Choosing Between Conflicting Sources

Key result

A search-enabled model often finds the right page and still answers wrong: other pages with a different answer sit right beside it. The method lets you get current facts (a rate, a version, a record) even when the results are clogged with outdated and doctored texts. The trick: the model can check content, but without a direct request it never switches that check on. Before it answers, make it deliver a verdict on each source separately: does it fit the question's constraints (region, period, entity), is it outdated, can it be trusted. It answers only from the ones that pass.

01

TL;DR

TREK is a test suite plus a diagnostic method that breaks down, step by step, where a web-search model's answer goes wrong: at the query, at the search results, or at the reasoning that follows. The main practical takeaway: a search-enabled model often finds the right page and still answers wrong, because other pages with a different answer are sitting right next to it. What helps most is a separate step where the model explicitly evaluates each source (for relevance, fit with the question's constraints, and reliability) before it answers.

A familiar pain: you ask "what's the current rate / who holds the record right now / what's the latest version," and the results serve up an old news item, a fresh article about a different region, and a year-old text republished with a new date. The model grabs whatever looks fresh and plausible, not what's correct. It judges by surface signals: publication date, domain, topical closeness. It only switches on careful content checking when you ask it to.

The method is simple: before answering, make the model walk through every document and check three things. Does it fit the question's constraints (region, time period, entity)? Is it out of date for the date that matters? Can it be trusted? The answer is built only from what passes the check.

Want this for your own case? Apply this study to your task: AI adapts its method to what you are working on and writes the prompt.

02

Method Blueprint

STEP 1: Evaluate EVERY retrieved source → table: relevance / fit with the question's constraints / reliability / keep-discard
STEP 2: Answer ONLY from the remaining sources → answer + which sources it relies on + what was discarded and why
(in the paper these are two separate model calls; in a chat you can do it in one prompt)
03

Example in Action

Task: A marketer is putting together an email newsletter for a partner bank's customers and asks ChatGPT/Perplexity with search to find current mortgage terms. The results are a mix: last year's roundups, fresh articles about FHA loans (a different program), republished texts with a new date, and an aggregator site of unclear origin.

Prompt:

Search the web for the current terms of [insert product, e.g.: "30-year fixed mortgage for new construction, standard rates"] at [bank/region] as of today.

Work in two steps.

STEP 1. For each source you find, fill in a row:
- Source (site, publication date, date the data applies to)
- Relevance: is it about exactly my product, region and borrower category? (yes / no — how it differs)
- Fit with the question's constraints: do the program, term, region and "as of what date" match? (yes / no)
- Reliability: a primary source (the bank's website, the Federal Reserve, the law) or a retelling? Is it confirmed by other sources? Any signs an old text was republished with a new date?
- Decision: keep / discard

STEP 2. Answer only from sources marked "keep". If two kept sources contradict each other, show both versions and explain which one you trust and why. If there are no reliable sources, say so — don't guess.

Important: the most recent source by date is not necessarily the most accurate. The publication date is not the date the data is valid for.

Result: The model will produce a table covering every source with a "keep / discard" decision. Then comes a short answer with links to the remaining sources. Most likely it will explicitly flag which pages were discarded as belonging to a different program or being outdated. When the data conflicts, it will show both versions. The sources and wording depend on the search.

04

Why It Works

The weakness. When the context holds many documents, the model defaults to picking by surface signals: newer, closer to the topic, looks authoritative. That's where the traps come from. A fresh document about a different region "outbids" the correct one. An old text with an updated date looks new. A fabricated quote with a plausible answer throws the model off, especially when the site's URL isn't visible.

The strength. If the model is asked to explicitly judge each document, it does noticeably better. The authors put it this way: "models know more than they use." The ability to check content is there, but it doesn't kick in without a direct request.

How the method exploits this. It pulls the check out into a separate, explicit step. The model first reasons about each source on its own and only then answers. The check doesn't dissolve into the overall answer.

Control levers: - Evaluation criteria. Add your own: "primary source," "data no older than N months," "jurisdiction matches." - What to do on conflict. "Show both versions" or "pick one and explain" — depends on how costly a mistake is. - Asking for the table. Drop it ("show only the final answer") if you need brevity. But then your control is weaker too. - The date hint. The phrase "publication date ≠ the date the data is valid for" hits the republishing trap head-on.

05

Prompt Template

{task: what needs to be found or established, as of what date, for which region/category}

Work in two steps.

<Step_1_source_evaluation>
For EVERY source you found or that I provided, fill in:
- Source: {name/URL}, publication date, date the data applies to
- Relevance: does it answer exactly my question? (yes/no — why)
- Fit with constraints: do {constraints: region, period, category, version} match? (yes/no)
- Reliability: a primary source or a retelling? Is it confirmed by others? Any signs of an old text being republished or of fabricated data?
- Decision: keep / discard
</Step_1_source_evaluation>

<Step_2_answer>
Answer ONLY from sources marked "keep".
If the kept sources contradict each other: {action on conflict}.
If there are no reliable sources: say so directly, don't guess.
At the end, list which sources were discarded and why.
</Step_2_answer>

Rule: the most recent document by date is not necessarily correct. Compare the content, not just the dates and site names.

What to fill in: - {task} — the question with an explicit date and scope ("as of March 1," "for Chicago," "version 3.x"). - {constraints} — everything that separates the answer you need from look-alikes (region, program, term, category). - {action on conflict} — "show both versions and say which one you trust" or "pick the primary source."

🚀 Quick start — paste into the chat:

Here's a template for two-step source checking. Adapt it to my task: [your task].
Ask me questions to fill in the fields.

[paste the template above]

The LLM will ask as of what date and for which region/category you need the answer, and how a "similar but wrong" source differs from the right one. That's what makes the "fit with constraints" criteria specific instead of generic.

06

Limitations

⚠️ Doesn't fully solve the problem: none of the tested approaches (reranking, filtering, structured extraction) brought quality back up to the "correct documents only" level. A separate evaluation step reduces the losses but doesn't eliminate them.

⚠️ Doesn't work everywhere: in the easy case, where only outdated documents sit alongside the right one, filtering barely helps. The noticeable gain comes on the tricky cases: republications, fabrications, a hidden source.

⚠️ Can backfire: for one of the three models (a small open one), filtering on the tricky cases made results worse: apparently it was throwing out exactly what it needed. Don't trust a weak model's "keep/discard" calls without checking them.

⚠️ Structured extraction doesn't help: asking the model to pull "answer, date, source" out of each document and then compare turned out worse than or no better than a direct answer. Explicitly assessing reliability works better than just copying out fields.

⚠️ The paper has no ready-made prompt: it describes the filter idea (evaluation by relevance, fit with requirements, reliability), while the exact wording lives in the appendix. The template above is a reconstruction from the description, not a quote.

⚠️ Built-in search beats third-party: a strong model with its own built-in search does noticeably better than the same model hooked up to someone else's search tool. If you have the choice, use native search.

07

How They Tested It

First, the authors built a diagnostic called TrekTrace. It checks whether the model found the needed document. If it did, the answer is rerun twice: with only the correct document, and with the correct one plus "noise." If the answer is right with the correct document alone but wrong with the noise, the model got distracted. If it's wrong even with just the one document, the model misread the source itself. Agreement with manual human review is very high (κ = 0.93). Then they ran three sets of real questions about fast-changing facts (FreshQA, InfoDeepSeek, SealQA) on top models: GPT-5.4, Gemini-3.1-Pro, Claude Opus 4.6, and open models from 8B to 235B. The best result was about 70% for GPT-5.4. On the hardest set, the best model managed only 56%.

The big surprise: the bottleneck is not the search but the reasoning after it. The right pages often get found, but the model is thrown off by the conflicting ones. Along the way it turned out that 86% of "labeling errors" were caused by the world changing: the correct answer had simply gone stale.

Next, the authors built a controlled test, TrekBench-Ctrl: a fixed set of documents with four kinds of distractors mixed in. GPT-5.4-mini's accuracy losses grew step by step: about 6 pp with outdated documents, 15 with a mix of natural noise, 28 with fabrications and republications with a visible URL, and 37 with the URL hidden. The position of the correct document and the number of outdated ones made no difference, so the type of distractor matters, not the volume. Existing benchmarks consist almost entirely of outdated documents, so the "just take the newest one" trick is enough there and the difficulty is understated.

Of the four approaches, Filter (explicit evaluation of each document) performed best. On the tricky sets it raised accuracy by roughly 10–14 pp for two of the three models. Simple reranking by date and similarity barely helped. The practical takeaway: the model can check content, but it only does so when asked directly.

Note: part of the paper's conclusions was cut off in the provided text, so this breakdown relies on what was available.

08

Adaptations and Extrapolations

🔧 Technique: manual "one source vs. all" diagnosis The authors diagnose errors with two reruns. You can repeat this by hand in a chat whenever an answer looks suspicious:

Step A. Here is one source: {key_source}. Answer the question using only this source.
Step B. Now here are all the sources: {all_sources}. Answer the same question.
If the answers differ, tell me which of the "extra" sources threw you off and why.

If the answer is right with one source but changes with all of them, the culprit is distraction, not a failure to understand the text. In that case you need strict source filtering, not a smarter question.

🔧 Technique: a rule for a search agent (system prompt / CLAUDE.md)

When searching for up-to-date information:
- Don't automatically pick the most recent document. Check the region, period, category and version against the question's constraints.
- The publication date is not the date the data is valid for. An old text may have been republished.
- Prefer primary sources (official websites, documents). A single unconfirmed source is not grounds for an answer.
- Before answering, briefly list which sources you discarded and why.
- When sources contradict each other, show both versions and say which one you trust.

This carries the idea over to agent instructions. The paper didn't test this exact text, but it follows directly from the traps it found (freshness, republication, a neighboring region).

09

Resources

  • Paper: Where and Why Search-Augmented LLMs Fail When Reasoning over Rapidly Evolving Knowledge
  • Authors: Tianyi Hu, Bhavyajeet Singh, Niket Tandon, Akhil Arora (Aarhus University, Microsoft Research, TU Darmstadt)
  • Code and tests: https://github.com/au-clan/TREKBench
  • Question sets it builds on: FreshQA, InfoDeepSeek, SealQA (including LongSeal)

Research digest

Key result

A search-enabled model often finds the right page and still answers wrong: other pages with a different answer sit right beside it. The method lets you get current facts (a rate, a version, a record) even when the results are clogged with outdated and doctored texts. The trick: the model can check content, but without a direct request it never switches that check on. Before it answers, make it deliver a verdict on each source separately: does it fit the question's constraints (region, period, entity), is it outdated, can it be trusted. It answers only from the ones that pass.

Principle

A two-step process: evaluate each source → answer from what's left. In step 1 the model fills in a row for every document: relevance, fit with constraints, reliability, and a "keep/discard" decision. In step 2 it answers only from the "kept" ones. If they disagree, it shows both versions and says which one it trusts. The check lives in its own step and doesn't dissolve into the overall answer. It's like a judge who cross-examines each witness first and only then hands down a verdict. Put them all on the stand at once and the judge will believe whoever sounds most confident. In the paper these are two separate model calls. In a chat, one prompt with two steps does the job.

Why it works

When the context holds lots of documents, the model judges by surface signals: newer, closer to the topic, looks authoritative. That leads to three traps: - A fresh article about a different region outbids the correct one. - An old text with a new date looks current. - A fabricated quote with a plausible answer throws the model off, especially if the site's URL isn't visible. But when the model is asked to explicitly judge each document, it does noticeably better. The authors put it this way: models know more than they use. The ability to check is there; you just have to switch it on. Two more observations. Simply copying out fields ("answer, date, source") turned out worse than or no better than a direct answer. What wins is specifically the reliability assessment. And a strong model with built-in search is also noticeably better than the same model with someone else's search tool.

When to apply

Questions about changing facts: rates, prices, versions, records, laws → especially when the results are a mix of old roundups, republications and articles about a neighboring region or program. The biggest payoff comes on the tricky cases: republications, fabrications, an invisible source. Not a fit when only outdated documents sit alongside the right one: filtering barely helps there. It doesn't fully solve the problem either: quality never reaches the "correct documents only" level. Weak models may throw out what's needed: for one small open model, results on the tricky cases got worse. Check its "keep/discard" calls by hand.

Mini recipe

1. Set the question's scope: date ("as of March 1"), region, program, version. Without them the model won't know how a "similar" source differs from the right one. 2. Demand a table for every source: site, publication date, data date, relevance, fit with constraints, reliability, decision. 3. Ask about republishing: add "any signs an old text was posted with a new date?" This item targets the main trap directly. 4. Decide what to do on disagreement: "show both versions" or "pick the primary source." If a mistake is costly, go with the first. 5. Forbid guessing: "if there are no reliable sources, say so directly." 6. Add your own criteria: "data no older than 3 months," "only the bank's own website or the Federal Reserve." 7. Not sure how to phrase it: paste the template into the chat and write "ask me questions to fill in the fields."

Examples

[BAD]: `Find current terms for new-construction mortgages at Chase` [GOOD]: `Find current terms for new-construction mortgages (standard rates, not FHA) at Chase as of today. Work in two steps. STEP 1. For each source fill in: site, publication date, the date the data applies to; relevance (is it about exactly my product and borrower category); fit with constraints (program, term, date); reliability (the bank's website or a retelling, confirmed by others or not, is it an old text republished); decision: keep or discard. STEP 2. Answer only from sources marked "keep". If they contradict each other, show both versions and say which one you trust. If there are no reliable sources, say so. Remember: the most recent source is not necessarily the most accurate, and the publication date is not the date the data is valid for.` [BAD]: `What's the latest version of the library right now?` [GOOD]: `What's the latest stable version of library X as of today? First evaluate each source you find: is it official, what date does it apply to, is it about a beta version. Then answer only from the reliable ones and list what you discarded and why.`

In plain words

Search-powered AIs don't screw up because they can't google stuff. They find the right page just fine — and then promptly drown it in information junk from the neighboring links. When facts change fast, the model flat-out can't separate signal from noise: it falls for surface polish like a fresh date badge or a confident tone, even when what's inside is total nonsense.

It's like asking five strangers for directions: one local gives you the right route, and four tourists confidently send you into a dead end because "the sign over there is brighter." And you follow the crowd. The model does exactly the same thing: it sees last year's rewrite with a fresh publication date and happily takes it as the gospel truth.

Diagnostics with the TREK framework proved it: just dumping search results into the prompt is a fail. What actually works is step-by-step source validation. The model simply isn't allowed to answer right away: first comes a separate step where it rates every link for fit with the question's constraints, real freshness and how authoritative the site is, ruthlessly tossing out junk aggregators.

The experiment ran on fast-moving topics like mortgage terms, but the principle is universal. It's table stakes for any corporate RAG system, support bot or analytics setup. Hand the model a fresh policy mixed in with old instructions, and without a filter up front it'll feed your customer disastrous misinformation.

Bottom line: stop believing a model with a search engine will separate the wheat from the chaff on its own — it's as naive as a college freshman. Set up a two-stage pipeline that forces a check of every source before generation. Otherwise your smart bot will keep serving people rotten garbage with a perfectly straight face.

AI lab assistant

Apply this study to your task

Describe what you're working on. AI takes the method and the measured results from this paper and adapts them to your case, or writes a ready prompt built on them.

Based on TREK: Why Search-Augmented LLMs Fail Not at Searching, but at Choosing Between Conflicting Sources arXiv:2610.25323

Sign in to apply this study New accounts get 50 free credits.