Searching after Answering:Diagnosing and Repairing Over-Reflection in Search Agents

Minbyul Jeong

Upstage AI

Preprint · 2026

Ask a web-search agent a question it already knows the answer to: which 1904 naval incident saw a Russian fleet, steaming to the Far East, fire on British fishing trawlers it mistook for enemy torpedo boats? By its second reasoning step the agent has written the answer — the Dogger Bank incident — from parametric memory, and the very first page it opens corroborates it. A well-behaved agent would stop here and answer. Instead it keeps going: it re-opens the same page, issues fresh queries for details the question never asked, and only after another twenty-odd rounds reports the answer it has held all along.

I call this over-reflection: continuing to search after the answer has both been stated by the model and corroborated by a tool result. It is a cousin of the “overthinking” documented in reasoning models, but a distinctly agentic pathology — the excess is spent on external tool calls rather than private tokens, so every redundant round costs a real query, a page fetch, and wall-clock latency.

Abstract

Effective search agents must know not only how to search, but when to stop. Current agents fail at the latter in a specific way I call over-reflection: they find the correct answer, verify it through search, and then keep searching for many more rounds before reporting it. This behavior is strikingly consistent across frontier models.

I argue that over-reflection is learned, not incidental. Search agents are increasingly trained by imitating synthesized browsing trajectories, and these trajectories systematically encode the behavior. In an in-house corpus of synthesized trajectories, over-reflection is a structural property rather than a rare failure: among trajectories I can verify, 62.8% continue searching after the answer has been confirmed, yet a standard leakage detector flags only 21.1%. Two over-search metrics from the closest prior work, scored on the same trajectories, side with the 62.8% rather than the 21.1%.

Given this, I intervene at the trajectory level: truncating the redundant search tail of over-reflective trajectories while preserving healthy verification and dropping ungrounded ones. To evaluate the intervention, I fine-tune Qwen3.5-35B-A3B on four arms of the corpus: as-is, naive dropping, taxonomy repair, and correctness filtering. On post-cutoff evaluation, the four arms converge to nearly identical behavior — no data-level edit substantially changes the learned stopping policy. The lesson is negative but instructive: modifying the trajectories a policy imitates is not enough to modify its stopping behavior. Data repair improves corpus quality, but fixing over-reflection requires supervising the stop decision itself — conditioned on the agent's evidence state, not its outcome.

1The pathology is everywhere on the frontier

Eight agents, six providers, one post-cutoff benchmark.

The opening trajectory could be dismissed as recall: the agent already knew the Dogger Bank incident, so its search merely decorated a memory. On LiveBrowseComp, that explanation is unavailable. The questions post-date every model's training cutoff, so no model can recall the answers — any over-search happens after the answer has surfaced in a retrieved page. I verify rather than assume this: with no tools at all, five frontier agents answer these 335 questions correctly 0.0–2.4% of the time.

Conditioned on the gold answer appearing in an opened page, all eight agents keep searching: on 75–98% of their grounded trajectories at the k = 2 operating point, for a mean of 9–57 further rounds. Sweeping the threshold shows the operating point is not doing the work — the deepest searchers still over-search on more than 60% of grounded trajectories at k = 20. The pathology is graded across the frontier, not binary.

Two panels: (a) share of grounded trajectories still searching more than k rounds after confirmation, swept over k, for eight frontier agents; (b) mean post-confirmation search rounds per model.
Over-search across the frontier on post-cutoff LiveBrowseComp. (a) Share of grounded trajectories searching more than k rounds after the gold answer surfaced in an opened page. (b) Mean post-confirmation search rounds per model. Deep searchers remain over-reflective on a majority of grounded trajectories out to k = 20, so the pathology is not an artifact of the k = 2 operating point. Grounded n per agent spans 22–173, so single curves are noisy.

Others report the same behavior from the inside. Tracing a Claude Opus 4.6 BrowseComp run, Anthropic engineers describe the model verifying an answer it already held by “searching for the actual source material on the web”; the Opus 4.8 system card scores 4.3% of its DeepSearchQA answers “correct with excessive answers”; the Sonnet 5 card reports “long indecision loops in extended thinking.”

2Why it is learned: a knowledge-conditional trajectory

The generating model knows the answer. The trained model copies the shape without the knowledge.

The dominant training recipe imitates browsing trajectories generated by a stronger model, and those trajectories systematically encode over-reflection. The generating model often already knows the answer: it recalls it, then searches to verify rather than to discover. For that model, stating the answer early and searching around it is sound. A model that does not know the answer copies only the shape — state a guess, then search around it, whether or not the search produced anything. A trajectory's validity is knowledge-conditional, and imitation copies trajectories across the very knowledge boundary that made them valid.

The corpus bears this out. The gold answer appears inside a search query in 61% of trajectories, and in 15% it is already in the first query, before any result has been read. Once a trajectory states its answer it keeps it in 88% of cases — 92% when the answer came from memory before any evidence arrived — so post-statement search overturns a commitment in roughly one case in eight. The search is confirmatory, not corrective.

3Measurement: seven types, and a detector that reports one in five

Over-search and under-grounding need opposite fixes, so a single “search less” rule is unsafe.

Confirmation is the round at which the model has stated the gold answer and a tool result contains it. Typing each trajectory by which came first, and how many search rounds follow, gives seven types — and the prescriptions run in opposite directions across them.

Areasoning states it first; a page later corroborates; search runs far past confirmation — truncate36.8%
Bevidence surfaces it first; the model states it, then keeps searching — truncate26.1%
Cfinalizes an answer no opened page contains — search as theater — drop8.0%
Dnever grounded, never stated before the forced final turn — recitation — drop3.7%
Eevidence surfaces it; the model states it and stops within the bounded check — keep11.2%
Freasoning states it first; a bounded check corroborates; stops — keep10.0%
Gnever pre-stated; extracted from an opened page at the end — keep4.4%

Share of the English keyed subset. Over-reflection (A+B) = 62.8%; ungrounded (C+D) = 11.7%; healthy (E/F/G) = 25.6%.

The standard detector sees one third of it

The pipeline that filters the corpus already contains an answer-leakage detector — gold string in the reasoning before evidence arrives. Run as a proxy for over-reflection it flags 21.1% of English trajectories, the one-in-five rate that makes the problem look small. Comparing it against the tagger on a matched sample isolates four blind spots: the largest single corpus source is long free-text gold answers whose verbatim needle almost never appears (0.04% flag rate there); a query echoed in a result snippet counts as grounding; type B is invisible by construction, because the detector's premise is “the model knew it before searching” while B searches on after real evidence arrives (caught at 6%); and the recitation type D is never flagged at all.

Grouped bar chart: for each taxonomy type A through G, its share of the audited slice against the share of that type the leakage audit flags. A is flagged at 47%, B at 3%, C, D, E and G at 0%, and the healthy type F at 23%.
Where the leakage audit looks, and where it does not. Each type's share of the audited sample against the share of that type it flags. It catches about half of A — the reasoning-first case it was designed for — and almost nothing of B, C or D, while flagging 23% of the healthy bounded-check type F. (This is the deployed detector, whose flagged column sums to 21.1%; the per-type rates quoted above come from a criteria-only variant of the rule and are higher. The two levels are not interchangeable.)

So I put four detectors on one set of trajectories — the leakage audit, both over-search metrics from the closest prior work (SAAS), and the evidence-state rule of this paper.

Bar chart of four over-search detectors scored on the same trajectories: leakage audit 21.1%, SAAS SOR 68.0%, ours 68.8%, SAAS QOR 100%.
Four over-search detectors, one sample (n = 5,311 English keyed trajectories, mean 25.5 search rounds each). The leakage audit is the outlier; the two metrics purpose-built for over-search read 68.0% and saturate at 100%, against this paper's 68.8%. The “one in five” is a property of one detector's leakage premise, not of the corpus.

4The intervention, and the result that does not go my way

Four arms of one corpus, one 35B model, and a convergence.

Given a taxonomy that separates over-search from healthy verification, the obvious move is to repair the data: cut the redundant search tail of A/B, drop the ungrounded C/D, keep E/F/G intact. Half of the over-reflective trajectories turn out to be cite-pinned — their final answer cites the tail, so no citation-safe cut exists. That is a deterministic ceiling on what any truncation rule can reach, and it is exactly half of A+B.

The ceiling belongs to the edit, not to the data. Asking a model to rewrite those final answers using only the sources available at confirmation — and accepting a rewrite only when a deterministic check passes, gold key still present and every citation handle resolvable inside the kept prefix — unlocks 61.5% of a 200-trajectory sample. I do not adopt that repair, since a rewrite puts text into a trajectory that was never in it. But it locates the 31.5% correctly: it is the reach of a citation-safe deterministic cut, not a limit on repair as such.

I fine-tune Qwen3.5-35B-A3B on four arms of the same corpus — as-is, naive-drop (delete A/B/C/D), taxonomy-repair (truncate A/B, drop C/D), correct-filter (keep only trajectories whose final answer matches gold) — and evaluate on 335 post-cutoff LiveBrowseComp questions under one browsing harness.

Modelacc %grounded nover-search %post-conf. rounds
base (no fine-tuning)5.18273.26.1
as-is26.320994.734.4
naive-drop22.418897.334.5
taxonomy-repair24.219995.034.7
correct-filter26.021096.734.3

Post-cutoff LiveBrowseComp (335 questions), single rollout. Every paired difference between the four fine-tuned arms contains zero on every column under a paired bootstrap.

The arms converge. Fine-tuning moves the stopping policy enormously — 6.1 rounds to ~34, 73.2% to ~95% — but which edit of the corpus a model is trained on moves it almost not at all. Deleting the over-search demonstrations (naive-drop) does not reduce over-search. Neither does truncating them. Neither does keeping only correct trajectories.

Three panels comparing the base model and four fine-tuned arms: over-search rate versus threshold k on LiveBrowseComp, search volume on K-BrowseComp, and tool-call volume on DRACO. The four arms overlap in every panel while the base model sits far below.
The Qwen3.5-35B family at inference time. (a) Post-cutoff LiveBrowseComp: over-search rate among grounded trajectories as the threshold k varies — the base model decays fast while the four fine-tuned arms stay high and indistinguishable. (b) Volume analogue on K-BrowseComp (300 verified questions). (c) Report-generation analogue (DRACO). One legend serves all panels.

The two volume panels make the same point on different tasks: on K-BrowseComp every arm spends 40–51 search rounds per question against the base model's 6.6; on DRACO every arm writes reports with 61–66 tool calls against the base's 40. Repair reduces neither — on K-BrowseComp, taxonomy-repair is in fact the deepest searcher.

How much of it is just repetition?

Grading every search query against all earlier queries in its trajectory: 84–86% of the arms' searches echo an earlier one. But only 6–8% are verbatim or word-order variants, so the redundancy is aggressive re-search around a single intent, not literal looping. The four arms churn within 2.3 points of one another — a second axis on which they converge — while frontier reference models repeat verbatim at 0.4–2.1%.

What survives

Taxonomy repair remains what the measurement said it was: corpus hygiene with a deterministic ceiling. It removes about 208M tokens of inertial search — cheaper training, cleaner supervision — without harming accuracy (24.2 vs. 26.3 as-is, within noise). What it is not, on this evidence, is a behavioral fix.

Editing the data a policy imitates does not edit the policy's stop decision. A model generalizes the majority shape, not the edited minority; removing some demonstrations of a behavior is not the same as supervising against it. The stop decision has to be supervised where it lives — at the confirmation round, on the agent's evidence state rather than on its outcome.

5Code

The measurement, not the corpus.

analysis/ holds the scripts that produce every number above — the A–G tagger, the detector cross-tabs and the four-detector reconciliation, the SAAS metric port and its judge passes, the closed-book probe, the churn regrader, the bootstrap CIs, and the corpus-shape audits. Each script's docstring names the table or section it produces.

# the taxonomy tagger: every other script imports its
# key extraction, gold-map join and confirmation logic
python3 analysis/emergence_tagger.py <corpus-variant>

# 21.1% vs 62.8%: the leakage detector against the taxonomy
python3 analysis/compare_detectors.py

# four detectors on one set of trajectories
python3 analysis/reconcile_detectors.py

Paths are set by environment variable — QDIR (gold question/answer files), PDIR and CORPUS (trajectory shards), PRED_ROOT (evaluation rollouts). Only numpy and pyarrow are required for the offline scripts.

The trajectory corpus is not released. It contains full browsing transcripts — reasoning, queries, and retrieved page content — so the repository ships the analysis and the definitions, not the data. The scripts are written against a documented layout so they can be pointed at another corpus of the same shape; the paper reports what each one produced on mine.

6BibTeX

@article{jeong2026overreflection,
  title  = {Searching after Answering: Diagnosing and Repairing
            Over-Reflection in Search Agents},
  author = {Jeong, Minbyul},
  year   = {2026}
}