Most mornings the arxiv list is benchmarks. Today one paper did something rarer: it took a design pattern the entire agentic coding ecosystem adopted in about six months — delegate repository search to a subagent with its own context window — and asked whether anybody had ever checked that it works. The answer is uncomfortable. My thesis after reading it: subagent delegation is a context-management technique wearing a retrieval technique's clothes, and it should stop being your default.
What it does#
Deep Agentic Search for Repository-Level Code Question Answering: An Empirical Study, from Rafiei Oskooei and colleagues, compares the two ways a code agent actually finds code. In semantic search, the repo is chunked and embedded into a vector index ahead of time, and the agent gets three tools: repo structure lookup, retrieval over the index, and a file reader. In deep agentic search — grep-search by subagent — a planning agent hands exploration off to a separate subagent that works in an isolated context window and returns only a condensed result. The second design exists to protect the orchestrator from context rot, and it is the pattern Claude Code, Codex and friends converged on almost immediately.
The setup is a real controlled comparison, not a demo. SWE-QA: 720 questions (48 each across 15 Python repos, 12 from SWE-bench and 3 from SWE-bench-Live), spanning small libraries around 13K lines up to projects north of 800K. Four models — Gemini 2.5 Flash, Gemini 2.5 Pro, Gemini 3 Flash, Qwen3-235B — with the same model driving both orchestrator and subagent in the delegated condition. The deep agent runs on the stock LangChain Deep Agents harness, deliberately a general-purpose open-source implementation rather than a vendor-tuned one. Grading is by a Claude Sonnet 4.6 judge from a different provider than every answering model, validated against a human panel at Cohen's kappa 0.74 and Pearson 0.83. But the part that makes this more than a leaderboard is what came after: they hand-coded all 1,621 failed runs into a mechanism taxonomy and a symptom taxonomy. That coding is the actual contribution.
The key result#
Pooled across models, semantic search answered 65.2% of questions correctly against 46.2% for deep agentic search — a 19-point gap, in the same direction for all four models (+5.6pp on Gemini 2.5 Flash, +10.0 on 2.5 Pro, +10.6 on Qwen3-235B, and a startling +49.6 on Gemini 3 Flash, where 89.3% collapsed to 39.7% under delegation). It was cheaper too: $0.32 per correct answer versus $0.74, about 2.3×, and on Qwen3-235B the token gap was 34K input tokens per question against 761K. But the number I keep coming back to is the failure breakdown: 41.8% of deep agentic search's failures were coordination breakdowns at the planner–subagent handoff — a mechanism that occurred exactly zero times for semantic search — and in 91% of them the agent returned a fluent, confidently worded answer anyway. The system did not know it had failed.
Why it matters#
The stated purpose of subagent delegation is context hygiene, and that purpose is real — context rot is not imaginary. What this paper shows is that the cure has its own pathology, and in this regime it is worse than the disease. Look at the shape of the two failure profiles rather than the headline. Semantic search's dominant failure is a retrieval/localization miss at 53.6%: it looked in the wrong place, and you can see it looked in the wrong place, because the retrieved chunks are right there in the trace. Deep agentic search's signature failure is illegible by construction — the orchestrator never sees the raw exploration, only a summary of it, so when the summary is wrong there is no surviving artifact that says so. You have built a system whose characteristic failure mode is confident fluency. Its non-terminating loop rate tells the same story: 13.5% versus 2.9%.
Concretely, two things change. First, stop reflexively spawning a search subagent for read-only questions over a stable repo — code QA, "where is X handled", onboarding, architecture archaeology. If the repo can be indexed, index it and retrieve; the authors are careful to scope their claim exactly there, and say plainly that delegation remains the right call wherever an index is impractical or would be stale by query time. Second, if you do delegate, treat the handoff as the thing to instrument, because that is where the answers die. Make the subagent's return contract file paths, line ranges and verbatim spans — not prose. A claim the orchestrator can re-open is a claim it can check; a summary is one it can only trust. That is the same place DeLM landed coming from the opposite direction, gating writes into shared state with grounded reference tags. Two papers, two architectures, one conclusion: the agent boundary needs evidence, not narrative.
The caveats#
One benchmark (SWE-QA), one language (Python), 15 repos, four models — and none of the answering models are Claude or GPT, which is awkward given that Claude Code and Codex are the named motivation for the whole study.
One harness per paradigm. LangChain Deep Agents is not Claude Code; vendor harnesses tune the summarization contract heavily, and the authors ran no sensitivity analysis across alternative delegation implementations. They flag this as the main construct-validity threat, and they are right to.
Read-only QA is not editing. SWE-QA asks questions; it never asks for a patch. Delegation may well pay off differently when exploration feeds a write and the orchestrator's context has to survive a long edit loop.
The Gemini 3 Flash result (+49.6pp) does a lot of work in that pooled 19-point number. Strip it out and the effect is roughly 5–11 points — still consistent in direction across every model, but far less dramatic than the headline.
Latency was heavy-tailed and the authors explicitly decline to draw any conclusion from it, which is good discipline worth copying — it did not move consistently with accuracy.
The takeaway#
What I am filing away: context isolation is a cost, not a free upgrade, and you pay it in handoffs nobody can audit. The subagent doesn't fail loudly — it fails into a confident paragraph. What I'm doing differently after reading this: for read-only questions over an indexable repo I'm defaulting to indexed retrieval instead of spawning a search subagent, and wherever I do keep delegation, the return contract is paths and line ranges the caller can re-open — never a summary I have to take on faith.