RSI-top

htophtop is the live monitor you open to diagnose a machine: what is running, and what is stuck. for autoresearch

Escaping exploration collapse in long-horizon autoresearch

Metric dashboardExploration collapseDiversity control
Yuzhen MaoJacky KwokShayan TalaeiAzalia Mirhoseini

Scaling Intelligence Lab logoScaling Intelligence Lab · Stanford University

A stalled search, and the way out

OpenEvolve (Gemini 3.7 Flash) OpenEvolve + RSI-top (dots: interventions)
12.0 h
OpenEvolve with Gemini 3.7 Flash stalls; RSI-top climbs out. Best score so far on Anthropic kernel optimization. Normalized performance is 1363 / cycles, so higher is better. The RSI-top run branches off the OpenEvolve run at its first stall, so everything before the branch point is shared. It ends at 1109 cycles, versus 1244 for OpenEvolve alone.

Main contributions

  • We characterize exploration collapse in long-horizon autoresearch. The agent's proposals narrow onto a single direction: it keeps refining the same idea while the best score stops improving, like gradient descent trapped in a local minimum. In our runs, the frontier is stalled for 84% to 92% of the time.
  • A metric dashboard for long histories. htop gives you an at-a-glance view of process activity and resource usage, helping you decide where to look before digging into logs. RSI-top builds the same view for an autoresearch run: it summarizes each trajectory using task-specific metrics defined before the run and computed in the background.
  • Diversity-controlled interventions. When the frontier goes flat, RSI-top steps in with a cohort of agents and encourages them to explore different fixes: each reads a different subset of the dashboard, proposes a portfolio of directions with verbalized probabilities, and grounds those directions in different lineages of the shared search history.
  • A plug-in harness. RSI-top adds interventions around an existing framework's search loop (e.g., OpenEvolve, ShinkaEvolve) while leaving its internal selection and mutation rules unchanged.

Why long autoresearch runs stall

Illustration titled Exploration collapse. Left, Repeated local refinement: on a snowy landscape of valleys, one robot agent leaves a trail of orange experiments that loop around a single valley, saying One more tweak; caption: Many experiments, one narrow direction. Right, RSI-top: guided exploration: panels labeled Selected history plus Dashboard and Diversity control (metric subsets, verbalized sampling, different lineages) feed several robot agents, which head into different valleys along differently colored trails; caption: Different evidence, different directions.
Exploration collapse, and how RSI-top escapes it. Left: the agent keeps refining inside one valley, running many experiments in one narrow direction. Right: RSI-top agents plan from the dashboard and selectively retrieved trajectories. Diversity control pushes the agents apart in three ways: each sees a different subset of metrics, proposes a portfolio of directions through verbalized sampling, and grounds them in different lineages of the shared history. As a result, the agents head into different valleys instead of the same one.

The autoresearch loop

An autoresearch run is a sequence of experiments organized by parent–child relationships. In each iteration, the agent picks an earlier candidate as the parent, proposes a change, implements it, and ends with a new candidate, for example a kernel or a checkpoint. An evaluator scores the candidate, and the result joins the archive that later iterations build on. We call the full record of one iteration a trajectory: the agent's reasoning trace, the actions and code changes it made, and the execution and evaluation logs. A run makes hundreds of these trajectories over many hours. The best score found so far is what we call the frontier.

ProposeImplementEvaluate

What exploration collapse looks like

Think of the search as gradient descent on a landscape of ideas, where height is the loss: lower is better. Early on, progress comes easily. Then the agent settles into one valley and keeps running experiments in the same narrow direction, so the frontier stops moving. Its proposals collapse onto a narrow family of approaches. Only when the frontier stalls does RSI-top step in: it launches a diverse cohort to explore alternative directions, adds the resulting candidates to the archive, and lets the native search continue.

Exploration collapse. While the agent circles one valley like gradient descent stuck in a local minimum (left), its proposals pile onto a single direction (right, low entropy). When the search stalls, RSI-top jumps out of the valley with proposals spread across many directions (high entropy); one lands in a deeper valley (★) with room to improve, and the native search keeps descending from there.

Real runs spend most of their time stalled

We ran OpenEvolve and ShinkaEvolve on Anthropic kernel optimization, each with DeepSeek v4 Flash and Gemini 3.7 Flash. All four runs follow the same pattern: after early gains, the frontier is stalled for 84% to 92% of the run.1 We use frontier stalls to trigger interventions; a stall alone does not establish that exploration has collapsed.1A stall is any stretch of at least 20 minutes, after the first hour of the run, in which the best score improves by fewer than 2 cycles.

Show the stalls in all four runs4 runs
12.0 h
OpenEvolve and ShinkaEvolve runs spend most of their time stalled. Top: the frontier of the selected run. Each dot is a trajectory that set a new best, and amber bands are stalls. Bottom: share of wall-clock time spent in stalls for each run (amber = stalled, blue = improving); click a row or a tab to switch runs.

Stuck in its own history

Why does the agent get stuck? One likely contributor is context inertia: the model commits to a direction in its context and keeps pursuing it after the evidence says to change course. Every attempt in that direction adds to the context that pulls the next attempt along.

Yet the agent cannot simply ignore its history. To leave a valley, it needs to know what was tried, what helped, and which branches still look promising, and after hundreds of trajectories that history no longer fits in context anyway. The usual ways to manage the context either keep too much or throw away exactly the information an escape needs. The challenge is to retain enough information to choose what to inspect without repeatedly loading the full history. RSI-top keeps a dashboard as a comparable index of every trajectory and retrieves raw trajectories only on demand.

Four ways to manage a fixed context window. Full history overflows. Summarizing every few trajectories, as in Codex, fits, but each compression throws away detail. Resetting the context, as in Fork-and-Flush, periodically forks the agent into copies that start with an empty context but share the workspace, and continues from the best copy. RSI-top compresses each trajectory into a thin column of dashboard metrics and retrieves only the few trajectories it needs.

RSI-top: compress the history, diversify the escape

Key idea

Nobody reads every log line to see what a machine is doing. You use htop to inspect processes and resource usage, or nvidia-smi for GPUs,2 then dig into the logs that matter. RSI-top gives autoresearch the same thing: a dashboard that compresses each trajectory into a compact set of task-specific metrics. When the search stalls, agents read the dashboard, unfold the few trajectories worth a closer look, and plan an escape. We call retrieving and inspecting a full trajectory “unfolding.” Diversity control encourages different intervention plans.2htop is an interactive process viewer for Unix-like systems; nvidia-smi reports the state of NVIDIA GPUs.

RSI-top in two stages. Numbered badges match the steps below. Before the run, the metrics are designed and compiled into scripts with fixed inputs and outputs (1). During the run, each trajectory is scored while the next one runs (2). When the frontier is flat (3), the native search pauses, the intervention unfolds the history it needs and runs every proposal in parallel (4, 5), and then the native search resumes.
  1. Design metricsAn LLM reads the task description and writes metric specs, each with a fixed input and output. Each spec is compiled into a script before the first trajectory.
  2. Score in the backgroundThe metric scripts score each finished trajectory while the agent already runs the next one. Each score adds one row of numbers to the dashboard.
  3. Detect stallsA monitor watches the frontier on the dashboard. When the best score stays flat,3 it pauses the native search and triggers an intervention.3Flat means a frontier stall: the best score stops improving significantly over a set time span. On Anthropic kernel optimization, for example, a stall is any stretch of at least 20 minutes in which the best score improves by fewer than 2 cycles.
  4. Unfold selectivelyAgents scan the metric rows instead of reading the full history. They load only the few trajectories that look most informative for escaping the current valley.
  5. Intervene, then hand backAgents propose diverse new directions, and every proposal runs in parallel as its own trajectory. After the intervention, the native search resumes.

The dashboard

The metric definitions are fixed before each run and remain unchanged throughout it. Each trajectory gets one row of numbers. That row is a compressed record of the trajectory that agents can scan, sort, and compare without loading the trajectory itself.

M25 metrics generated for Anthropic kernel optimization25 metrics
#MetricDefinition
Unarythe trajectory on its own
1cyclesAuthoritative performance of the current valid candidate.
2valid_attemptWhether the attempt reached an authoritative valid evaluation.
3recorded_change_countNumber of distinct changes recorded for the current attempt.
Binarythe trajectory against one reference: its parent, the frontier, or its nearest earlier state
4parent_gain_cyclesMeasured improvement relative to the actual parent.
5frontier_relative_gapCandidate gap to the frontier immediately before the attempt.
6parent_code_distanceNormalized implementation distance from the actual parent.
7frontier_code_distanceNormalized implementation distance from the frozen frontier reference.
8nearest_history_similaritySimilarity to the closest strictly earlier implementation state.
9meaningful_relative_gainGain relative to the causal progress anchor.
10gap_in_recent_step_unitsAuthoritative frontier gap measured in recent meaningful frontier-step units.
Regiona recent window of trajectories
11frontier_relative_spread_FImplementation spread of the latest complete eligible-state window relative to the frozen frontier code.
12root_relative_spread_SImplementation spread of the latest complete eligible-state window relative to the fixed root code.
13parent_selection_concentrationConcentration of immediate-parent selection in the latest complete window.
14window_frontier_gain_cyclesTotal measured frontier improvement across the latest complete window.
15window_redundancy_rateFraction of the latest complete terminal window that is an exact duplicate or no-op.
16window_valid_rateFraction of the latest complete terminal window with an authoritative eligible evaluation.
17window_frontier_conversion_rateFraction of eligible attempts in the latest complete terminal window that made a meaningful frontier improvement.
18within_one_recent_step_rateFraction of valid candidates in the latest window of 12 trajectories that are within one recent verified frontier step.
19dominant_failure_signature_massLargest failure-signature share among failed attempts in the latest window of 12 trajectories.
20repeated_failure_rateFraction of failed attempts in the latest window of 12 trajectories whose failure signature appeared strictly earlier.
21quality_conditioned_frontier_diversityImplementation spread among valid candidates in the latest window of 12 trajectories that are within one recent meaningful frontier step.
Globalthe whole run
22seconds_since_meaningful_improvementWall-clock time since the last meaningful frontier improvement.
23frontier_epoch_age_stepsTerminal steps elapsed in the current frontier epoch.
24best_descendant_cyclesBest authoritative cycles reached by descendants of this row by the frozen audit cutoff.
25descendant_frontier_move_countNumber of verified frontier moves produced by this row's descendants by the frozen audit cutoff.

Diversity control

A shared dashboard alone does not ensure diverse proposals. RSI-top runs the intervention as a cohort of multiple agents and pushes them apart in three ways.4 Click each one for details.4In the default configuration, each agent sees a random 15 of the 25 metrics.

Like an ensemble whose members see different features, each agent in the cohort receives a different random subset of the dashboard's metrics. Agents that watch different signals rank the history differently, so they unfold different trajectories and reach different conclusions about where the search went wrong.

In contrast, giving every agent the same view can lead to overlapping retrieval choices and similar proposals.

Experiment results

We evaluate on two benchmarks where every trajectory builds on the ones before it. Anthropic kernel optimization asks the agent to optimize a kernel for a simulated machine, scored in cycles (lower is better). MLE-bench asks it to compete in Kaggle competitions, scored on a validation set during the search and then tested on the hidden test set. On Anthropic kernel optimization, we plug RSI-top into OpenEvolve and ShinkaEvolve: it adds interventions around the native search loop while leaving its internal selection and mutation rules unchanged. On MLE-bench, we plug RSI-top into a simple ReAct loop.

Anthropic kernel optimization

All four framework and model pairs follow the same pattern: the OpenEvolve or ShinkaEvolve run stalls, and RSI-top climbs out of the stall. As a reference, we also run each framework on its own, without RSI-top, with GPT-5.6 Sol and with Claude Opus 5 until a $300 API budget is spent (dashed lines). RSI-top with a Flash-class model reaches nearly the same score at a fraction of that cost.

OpenEvolve / ShinkaEvolve Framework + RSI-top (dots: interventions) GPT-5.6 Sol / Claude Opus 5 ($300 budget)
100% of run
Best score so far on Anthropic kernel optimization. Normalized performance is 1363 / cycles, so higher is better. The RSI-top run branches off the OpenEvolve or ShinkaEvolve run at its first stall, so everything before the branch point is shared.

MLE-bench

RSI-top runs with Gemini 3.7 Flash on one A100 for 12 hours. Across 75 competitions, it achieves a mean medal rate of 63.1%, matching the highest reported mean among the listed methods. It produces valid submissions on all competitions and achieves the highest reported mean above-median rate (77.3%) and gold rate (43.1%). Most listed methods use a 24-hour time limit.55MLE-bench has 75 Kaggle competitions grouped by complexity into Low, Medium, and High; MLE-bench Lite is the 22-competition Low split.

MLE-bench · full benchmark, 75 competitions (Low, Medium, High)

AgentBudgetLowMediumHighAllValidMed+Gold
Proprietary methods
FM-AgentGemini-2.5-Pro24 h1× A800 (80GB)62.1 ±1.536.8 ±1.533.3 ±0.043.6 ±0.996.9 ±1.251.6 ±1.222.7 ±0.8
MLE-STAR-Pro-1.5Gemini-2.5-Pro24 h2× A100 (40GB)68.2 ±2.634.2 ±1.533.3 ±0.044.0 ±1.393.8 ±0.452.9 ±1.619.1 ±1.8
MARSGemini-3-Pro-preview24 h1× A100 (40GB)74.2 ±1.552.6 ±3.037.8 ±2.256.0 ±1.598.7 ±0.065.8 ±1.631.1 ±0.4
MARS+Gemini-3-Pro-preview24 h2× H100 (80GB)78.8 ±1.560.5 ±1.544.4 ±2.262.7 ±0.8100.0 ±0.074.2 ±0.933.8 ±0.4
AIBuildAIClaude-Opus-4.624 h1× A100 (80GB)77.3 ±0.061.4 ±0.946.7 ±0.063.1 ±0.4100.0 ±0.071.1 ±1.225.8 ±0.4
Open-source methods
AIDEo1-preview24 h1× A10 (24GB)35.9 ±1.98.5 ±0.411.7 ±1.317.1 ±0.682.8 ±1.129.4 ±1.39.4 ±0.8
AIRA-Dojoo324 h1× H200 (141GB)55.0 ±1.522.0 ±1.221.7 ±1.131.6 ±0.897.5 ±0.345.5 ±0.817.3 ±0.4
LeerooGemini-3-Pro-preview24 h1× H100 (80GB)68.2 ±2.644.7 ±1.540.0 ±0.050.7 ±1.350.7 ±1.350.7 ±1.321.3 ±2.0
ML-MasterDeepSeek-R112 h1× A100 (80GB)48.5 ±1.520.2 ±2.324.4 ±2.229.3 ±0.893.3 ±1.344.9 ±1.217.3 ±0.8
ML-Master 2.0DeepSeek-V3.2-Speciale24 h2× RTX 4090 (24GB)75.8 ±1.550.9 ±3.542.2 ±2.256.4 ±2.595.6 ±1.263.1 ±1.219.6 ±0.9
R&D-Agentgpt-512 h1× V100 (32GB)68.2 ±2.621.1 ±1.522.2 ±2.235.1 ±0.453.3 ±0.040.4 ±0.916.4 ±0.9
MLEvolveGemini-3-Pro-preview12 h1× H200 (141GB)80.3 ±1.557.9 ±1.542.2 ±2.261.3 ±1.398.2 ±0.472.9 ±1.232.0 ±2.8
Ours
RSI-topGemini-3.7-Flash12 h1× A100 (80GB)80.3 ±2.660.5 ±9.544.4 ±3.863.1 ±6.3100.0 ±0.077.3 ±6.743.1 ±4.7

On MLE-bench Lite, we rerun the open-source baselines with Gemini 3.7 Flash to compare different autoresearch methods using the same base model.

MLE-bench Lite · 22 low-complexity competitions

Comparison with a fixed model (Gemini 3.7 Flash)
RSI-top across base models
MLE-bench Lite (22 competitions). Bars show the any-medal rate (All), valid submissions, above-median submissions (Med+), and gold medals, in percent, averaged over 3 seeds. Hover a bar to see the standard deviation across seeds.

What's next

Autoresearch agents are starting to run for days, and the bottleneck is shifting from how much compute an agent gets to how it sees its own history. RSI-top is a first step: give the agent a dashboard of its own history, let it retrieve only the trajectories worth reading, and push the search in more than one direction when it stalls. We are excited about where this goes next.

  • Better context management for multi-agent autoresearch. Combining RSI-top with DeLM, where parallel agents coordinate through a shared context and a task queue, would let the dashboard serve as that shared context.
  • A dashboard for every long-running agent. The same look-then-unfold pattern applies to any agent, or team of agents, whose history outgrows its context, from coding agents to research assistants.
  • From stall-triggered to always-on. Once agents claim work asynchronously, there is no need to pause the search and wait for a stall: agents can check the dashboard continuously and steer the search before it settles into a valley.

Notes & references

Concurrent work. Several concurrent systems see long autoresearch runs plateau and fix it the same way: discard the conversation and keep the work. Fork-and-Flush [3] calls the effect "idea basins"; it forks an agent into copies that share the workspace but start with an empty context, runs them for a fixed horizon, and continues from the best copy. Scaling Discovery Requires Forgetting [4] periodically discards every agent's session and the candidate history, then restarts from the best candidate so far. Anthropic's Memento harness [5] stops each agent at a fixed timeout and hands a fresh agent the codebase and a short note. These approaches reset the conversational context and carry forward only the workspace or the best candidate. RSI-top instead keeps a structured index of prior experiments to guide selective retrieval and intervention planning, and diversifies the agents it launches.

References.

  1. OpenEvolve: an open-source implementation of AlphaEvolve. github.com/codelion/openevolve
  2. R. T. Lange et al. ShinkaEvolve: Towards Open-Ended and Sample-Efficient Program Evolution. arXiv:2509.19349, 2025.
  3. Z. Cai et al. Fork-and-Flush: Escaping Idea Basins in Autoresearch Agents. arXiv:2610.07447, 2026.
  4. S. Tan et al. Scaling Discovery Requires Forgetting. arXiv:2610.20563, 2026.
  5. Anthropic. AI models may be capable of self-replicating without access to a datacenter (Memento harness). anthropic.com, 2026.
  6. D. Breunig. Context Inertia: When Agents Won't Let Go. dbreunig.com, 2026.
  7. J. Zhang et al. Verbalized Sampling: How to Mitigate Mode Collapse and Unlock LLM Diversity. arXiv:2510.01171, 2025.
  8. J. S. Chan et al. MLE-bench: Evaluating Machine Learning Agents on Machine Learning Engineering. arXiv:2410.07095, 2024.
  9. Anthropic. Original performance take-home (kernel optimization). github.com/anthropics/original_performance_takehome
  10. Y. Mao et al. DeLM: Decentralized Multi-Agent Systems with Shared Context. yuzhenmao.github.io/DeLM
  11. htop: an interactive process viewer. htop.dev