RSI-Bench

Can a model tell whether its change helped?

RE-Bench, MLE-bench, PaperBench and AI4AI-Bench all score whether an agent can produce an improvement. None score whether it can recognise one. That is the thing a self-improvement loop actually runs on. Read +1.2% off two noisy seeds, call it a win, and you walk downhill spending real compute.

240 items. Each is two training arms differing on one axis: depth, width, learning rate, method. You get 2 seeds per arm with loss curves, can buy more at 1 unit each from a budget of 20, then call it helped, no_effect or hurt. Ground truth is up to 216 seeds per arm. The runs are already done, so this replays from cache in a minute on a laptop.

accuracy vs what it cost

051015200.30.40.50.60.70.80.9seeds boughtaccuracyt-test at fixed kclaude-sonnet-5claude-opus-5sequentialgrok-4.6claude-haiku-4-5constant

Above the dashed line means a better call from the same seeds.

the error that compounds

rate of calling a change good when it was notgrok-4.60.113claude-opus-50.108claude-sonnet-50.043claude-haiku-4-50.091sequential0.019ttest-k80.013ttest-k120.006ttest-k20.000

The t-test almost never does this. The models do it far more often.

Split grok's 240 by label and the failure has a shape. It is good at spotting a real effect and close to a coin flip on recognising that nothing happened.

grok-4.6 onaccn
hurt0.88780
helped0.85080
no_effect0.53780

It returned 178 helped-or-hurt verdicts where 160 exist. For a self-improvement loop that is the wrong direction to be wrong in: it accepts changes that did nothing, and each acceptance is compute spent walking sideways.

is the confidence worth anything

00.510.00.51.0statedcorrecthaiku-4-5grok-4.6opus-5sonnet-5

On the diagonal is honest. Below it is bluffing.

all of it

policyaccspendedgebrierfp_helpedmissed_helpn
claude-haiku-4-50.6910.6+0.2340.1900.0910.36455
claude-sonnet-50.8614.6+0.2330.1060.0430.15436
claude-opus-50.8234.6+0.1950.1190.1080.08062
grok-4.60.7586.7+0.0800.1660.1130.150240
sequential0.7798.3+0.0630.1490.0190.325240
ttest-k120.81720.0+0.0000.1390.0060.300240
ttest-k20.4210.0+0.0000.2300.0000.900240
ttest-k30.5422.0+0.0000.1910.0060.662240
ttest-k40.6134.0+0.0000.1840.0130.575240
ttest-k60.7138.0+0.0000.1670.0060.412240
ttest-k80.76212.0+0.0000.1500.0130.338240
constant0.3330.0-0.0870.2220.0001.000240

edge is accuracy minus what a Welch t-test gets for the same mean spend. Only grok-4.6 has run all 240; the Claude rows are partial and should not be ranked off. Grok itself sat at 0.852 and +0.270 over its first 28 items and finished at 0.758 and +0.080, so early items flatter.

github.com/teddytennant/rsi-bench