scout.

a daily read of the ML and AI papers

WED · 05 AUG 2026
3 papers

Your agent forgot what it already did

Three papers today, and the same shape underneath all of them: the information you need is already in the system, and the pipeline throws it away. A coding agent's own trajectory records which files it read and which it changed, but nothing marks which of those readings still hold, so the model re-derives it every turn and gets it wrong. A retrieval filter scores each passage on its own merits and so cannot see the one passage that only matters in combination with another. And a model about to make a bad tool call is already representing that internally, at the last token of the prompt, before it writes a single character. In all three cases the fix is not a better model — it is reading a signal you already have.

Today's pick
+8.0 pts at 28.9% less cost
first-try success on a 500-task real-bug benchmark, from a layer that adds no model calls and leaves the agent unchanged

Turning Interaction History into Execution State: A Runtime Layer for Long-Horizon Coding Agents

A long-running coding agent's trajectory is hundreds of actions and observations, and nothing in that record says which of them still describe the repository as it currently stands — so before every step the model has to infer, from raw scrollback, whether the file it read forty turns ago has changed since. When that inference slips it edits stale content or re-runs work whose result was still good: the two baselines here re-read the same unchanged snippet 1,875 and 5,840 times across one benchmark run. Ledger is a deterministic layer that keeps a running record of what has been observed, modified and attempted, appends a compact state view to the prompt, and intercepts each proposed command so an inspection whose answer has not changed returns the earlier result instead of running again. It adds no language-model calls and wraps an otherwise unmodified agent, and across all 500 tasks of a real-bug benchmark it lifted first-try success from 56.2% to 64.2% on one model and 75.8% to 81.0% on another while cutting total cost by 28.9% and 31.8%.

−13.4 pts exact match
what filtering retrieved passages one at a time costs you against not filtering at all

Verification Without Sufficiency: Per-Chunk Filtering Fails on Multi-Hop RAG, and Decomposition Repairs It

Most retrieval pipelines score each retrieved passage on its own and drop the ones that do not support the answer. This paper shows that filter is structurally broken for questions that need two or more hops, because such questions are built so that no single passage is sufficient and the passage carrying the answer is the one the question never names: separating genuine evidence from distractors scores 0.643, 0.523 and 0.560 AUC on three multi-hop sets against 0.951 on single-hop questions, and seven controls rule out model size, passage length, threshold choice and retriever. End to end, filtering per passage was worse than doing no filtering at all in every configuration tested — 13.4 points of exact match on one set — and the penalty grew with generator size, reaching 19.4 points at 3B. The repair is to verify against the decomposed sub-question rather than the original query: with the dataset's own decompositions the later-hop signal rises from 0.546, which is chance, to 0.840.

80% fewer needless calls
and 14.2 points more of the calls that were actually required, from the same intervention

A Few Neurons Reveal When LLMs Misuse Tools: Sparse Detection and Selective Steering for Reliable Tool Use

Tool-using models fail in three tedious ways — calling a tool when none applies, skipping one that was needed, and filling arguments wrong — and this paper finds the first two are already legible inside the model at the final token of the prompt, before it generates anything. A handful of feed-forward neurons separate those cases with a straight line: needless calls and skipped calls are detected at 0.90 to 1.00 ROC-AUC using as few as one or two neurons, matching dense probes that read 23 to 627 times more features. Using that same small set of neurons to nudge the model, but only on requests the detector flags, cut needless calls by 80% across six open models while raising correct invocation of a required tool by 14.2 points — whereas nudging every request instead simply traded one failure for the other, costing 4.5 points of capability to buy the same suppression. You cannot read activations through a hosted API, but the transferable shape is the gate: score each request for risk first, and spend the corrective pass only where the score is high.