Get Started
Home
Topics
Search
Library
Agents · RAG · Jul 23, 2026

AREX: Towards a Recursively Self-Improving Agent for Deep Research

Source: research paper via Hugging Face Daily Papers
When agent answers have checkable sub-claims, verification should drive the next search round, not filter the last one. A learned context-compression tool plus an outer verify-and-retry loop lifts BrowseComp from 59.6 to 82.5, with each mechanism contributing ~10 points independently and composing cleanly.
TL;DR
AREX treats deep-research answers as things to verify constraint-by-constraint, then reuses the partially-verified state as the seed for a targeted next search round, lifting BrowseComp accuracy by 22.9 points over an ablation without either the state-refresh tool or the outer verification loop.
Why It Matters
You’ve shipped a research agent that answers questions like “which 2019 paper by a Stanford postdoc introduced technique X and was later cited by a specific FDA filing.” Today, when the agent’s answer looks shaky, you either regenerate from scratch or let it keep browsing with a bloated scratchpad full of dead ends. Both waste tokens and often converge to the same wrong answer. The dominant baseline in this space is single-trajectory search agents (think Search-R1 or WebDancer-style setups) that extend one long chain of tool calls. AREX argues that once you have a candidate answer, checking each constraint on it is much cheaper than finding it, and that verification result should drive the next round.
How It Works
AREX runs two nested loops. The inner research loop does normal agent stuff: search, visit pages, reason, accumulate a trajectory. The interesting piece is a learned tool called update_context: the model itself decides when to compress its own scrollback into a structured improvement state holding verified findings, rejected candidates, unresolved constraints, and a next-step plan. This is not fixed-token-threshold summarization. The model calls it when it rejects a hypothesis or pivots strategy. When the inner loop finishes, it emits a structured result: a provisional answer, cited evidence, and a self-assessed confidence score 0–100.
The outer self-improvement loop reads that confidence. Above threshold, accept. Below, decide whether the trajectory is salvageable: if yes, carry the verified findings forward and issue a narrower objective (“the birth-year constraint is still unverified”); if no, throw the trajectory out and restart from the original query. Training is a multi-stage pipeline over synthetic multi-constraint tasks with verified answers. The novel training piece is Key-step focused supervision: rule-based detectors flag steps like “first tool call that surfaces decisive evidence” or “first pivot away from a wrong hypothesis,” and both mid-training loss and the Group Relative Policy Optimization (GRPO)-style RL objective put extra weight on those steps.
state = init(query) for k in range(max_rounds): while not inner_done(state): action = policy(query, objective_k, effective_context) obs = tool(action) if policy_decides_to_compress(): effective_context = update_context(trajectory) answer, evidence, conf = finish(effective_context) if conf >= tau: return answer recoverable, preserve, issues, objective_k1 = assess(trajectory) state = refresh(preserve, issues) if recoverable else init(query)
Core Insight
The usual move for long-horizon agents is to give them a bigger context window and let them search longer on a single trajectory. This paper argues the opposite. Deep research is asymmetric: finding an answer that satisfies five coupled constraints is hard, but checking a candidate answer against each constraint is easy, so verification should be the transition operator between search rounds, not a filter at the end. The load-bearing evidence is the two-way ablation isolating the state-refresh tool from the outer verification loop, not the headline benchmark table.
What They Found
The ablation that carries the thesis: on BrowseComp, turning on the context-refresh tool alone (single round, no outer loop) lifts accuracy from 59.6 → 71.4, and adding the outer verify-and-retry loop on top pushes it to 82.5. Without either, 59.6. Each mechanism contributes ~10 points independently, and they compose. Separately, the self-reported confidence scores are well-calibrated enough to drive the loop: 95.9% of correct answers land in the 90–100 bin, while 55.2% of wrong answers score below 60, so a threshold-based accept/refine decision actually works.
Secondary evidence:
•
On the training side, replacing key-step supervision with random-step replay under equal token budget drops BrowseComp from 82.5 to 74.1, the largest single ablation hit. The detected key steps have 19–29% higher token loss than ordinary steps after full-trajectory training, confirming they are genuinely underlearned.
•
The 122B-total / 10B-active MoE variant (AREX-Base) reaches 82.5 on BrowseComp, 85.4 on GAIA, 82.0 on WideSearch-en, 89.9 on DeepSearchQA, 52.4 on Humanity’s Last Exam (HLE) with tools, competitive with much larger open models like Qwen3.5-397B and with reported frontier systems on WideSearch-en.
•
Behavioral trace: the model calls update_context in 80.3% of BrowseComp episodes, typically at ~25K tokens of active context (well under the 128K limit), most often triggered by revising search strategy (66.9%) or rejecting a candidate (13.6%).
What’s Useful
Reach for this pattern when you’re building a research or investigative agent whose answers have checkable sub-claims: a compliance-lookup bot, a literature-review agent, a customer-support agent that has to satisfy several policy constraints at once. The concrete change vs. a single-trajectory agent: after your agent produces a draft answer, run a cheap per-constraint verifier, and if any constraint fails, launch a new search round seeded with the verified parts plus a targeted question about the failing constraint, not a fresh query. The learned context-compression tool is the other transferable idea, worth stealing even outside the two-loop design: train the agent to summarize its own scrollback around “what’s verified, what’s rejected, what’s still open, what’s next” rather than relying on token-budget triggers.
The paper does not link a code or model release in the text provided. The training data is synthetic tasks the authors built themselves plus filtered teacher trajectories; the specific teacher models are not named. Backbones are Qwen3.5-4B and Qwen3.5-122B-A10B. If you want to replicate, the recipe is described but no artifacts are pointed to in this text.
Takeaway
When your agent’s task has checkable sub-claims, make verification the loop, not the filter. The prevailing instinct is to spend the extra inference budget on a longer single trajectory. AREX’s evidence is that spending it on a per-constraint audit plus a targeted re-search round is a better use of the same tokens, provided the model can (a) compress its own state around what’s verified vs. open and (b) self-score its confidence well enough to trigger the retry.
Caveats
•
The confidence score is self-reported by the same model producing the answer. Calibration looked good on BrowseComp, but on domains where the model is systematically overconfident (novel scientific claims, adversarial queries), the outer loop’s accept/refine decision degrades to random, and the whole recursion premise weakens.
•
The key-step detectors are hand-written rules keyed to “first tool call producing answer-relevant evidence” and similar events, and they only apply to training tasks with verifiable reference answers. Tasks without a clean ground-truth answer (open-ended synthesis, opinion, planning) don’t fit this supervision recipe as described.
•
The load-bearing ablation numbers are all on BrowseComp. The paper reports headline scores on five other benchmarks but does not report the ACU-vs-outer-loop decomposition on them, so the two mechanisms’ independent value outside deep-search-style questions is not directly shown.
Topics
Don't miss new content
Log in to follow topics and personalize your feed.
By content type
Research Paper171 episodes
AI171 episodes