A quantitative-finance benchmark for AI coding agents.
Léon Faro, M.Sc. Statistics
Recursive self-improvement
Dream-RSI and Harness² in brief. 2026-10-20.
Recursive self-improvement: a system improves the process by which it improves. The idea goes back to
I. J. Good [3]. Dream-RSI [1] and Harness² [2] do this
for AI agents without training. The model's weights stay fixed; only the code and text around the model
change, as in STOP [4] and the Darwin Gödel Machine [5].
Dream-RSI
Learns how an agent spends its search budget. Google, Google DeepMind, University of
Maryland, University of Virginia; September 2026.
Harness²
Learns the agent's harness: prompt, rules, memory, tools and skills. Google Cloud AI
Research, Northwestern University; October 2026.
DREAM-RSI: NEW STRATEGIES, TESTED ON PAST SEARCHES
An agent that searches for better code, such as a faster GPU kernel, runs hundreds or thousands of
propose-and-test cycles. Its exploration policy decides which attempts to build on, how many to run in
parallel and when to stop. Testing a new policy for real means running the whole search again.
The key idea: a finished search is a tree of attempts whose scores are all stored. Another policy would walk
the same tree differently: other branches, another order, an earlier stop. Its result can be read off the
stored scores, without running the agent or the evaluator again. The agent "dreams" in its own history, much
as a reinforcement-learning agent can learn inside a world model [6].
Fig. 1. The loop. (1) The current policy explores online and stores its discovery tree. (2) The
tree becomes a replay simulator. (3) The agent writes new policy versions, tests them in the simulator pool
and deploys the best one. Source: [1], Fig. 1, from
github.com/zhengkid/Dream-RSI.
Each round, an agent rewrites the policy code, every version is replayed on all stored trees, and the best
version, which may be the old one, runs the next search. Only the policy changes; the model, the coding
agent, the evaluator and the task stay fixed. The baseline, Recursive Fixed Exploration, runs the same rounds
and keeps the starting policy.
Fig. 2. One recorded tree scores many policies. Each alternative policy replays a different part of
it and gets a score for quality, cost and latency. Source: [1], Fig. 2, from
dream-rsi.com.
Results
GPU kernels (KernelBench), against the fixed policy: the same speed with 1.8–2.4× fewer generations, or
up to 2.1× faster kernels for a similar budget (Fig. 3).
Lasso path solver: faster than sklearn and glmnet on six held-out datasets, with up to 162× fewer agent
calls than SimpleTES, which used a different model.
Mathematical optimization: best or tied best of the compared methods on two of three problems.
Harness search on Terminal-Bench 2.1: from 0.725 to 0.809, above Claude Code (0.75) and Meta-Harness
(0.79) in the paper's setting.
Fig. 3. GPU kernels: speed of the best kernel so far (1/ms, higher is better) against the number of
generations. Blue: Dream-RSI; grey: the fixed policy. Source: [1], Fig. 3, from
dream-rsi.com.
HARNESS²: A HARNESS THAT IMPROVES HARNESSES
A harness is everything around a model that lets it act as an agent. Harness² edits eight parts of it:
system prompt, guardrails, memory, tool guidance, subagents, skills, scripts and plugins. It does so on tasks
the harness was not built for, where no answer key exists to check an edit against.
Fig. 4. The eight components around the frozen model, grouped by their role at run time. Source:
[2], Fig. 2, from github.com/google-research/harness2
(Apache 2.0).
Two loops run on top of each other, with the model's weights fixed:
Task level: Propose–Probe–Compose. After a reference run, an editor proposes two harnesses: one against
weaknesses that recur in any domain, such as planning or tool use, and one for the task's domain. Each
runs the same task. A composer compares the runs and keeps only the changes the comparison supports; this
contrast replaces the missing answer key. More candidates in parallel, or more steps in sequence, help
further.
Harnessing level: after each task, a reflector stores the adopted harness and the lessons the evidence
supports in an improvement harness. It guides the edits on the next task.
Fig. 5. The pipeline. Task level (blue): run, propose, probe, compose. Harnessing level (purple):
reflect, then update the improvement harness for the next task. Source: [2], Fig. 3, from
github.com/google-research/harness2 (Apache 2.0).
Results
Three benchmarks of professional work (WorkBuddy-Bench, JobBench, LAB) and four model–harness pairs with
GLM-5 and Gemini 3.5 Flash: one step beats the base harness in every case, by up to 11.5 points on
WorkBuddy-Bench, 4.5 points on JobBench and 11.8 percentage points on LAB's partial pass rate.
A larger budget k keeps paying off (Fig. 6, right).
Lessons transfer: a library of harnesses and lessons built on JobBench raises scores on
WorkBuddy-Bench.
Fig. 6. Left: WorkBuddy-Bench by domain, Gemini 3.5 Flash with the OpenCode harness; base harness,
Meta-Harness and Harness² (parallel, k = 5). Right: the code domain as the budget k grows. Source:
[2], Fig. 1, CC BY 4.0.
Dream-RSI runs σ-Bench's experiment loops (method). The implementation follows the
paper and uses its prompts word for word; Claude Code, Codex and pi serve as coding agents.
Harness² comes from Google's code (commit 1cfe254), unchanged, and runs its agents in the same
sandbox.
Both are frozen: any change to either needs a new version. No scored runs yet.
[3] I. J. Good. Speculations concerning the first ultraintelligent machine. Advances in Computers
6, 1965.
[4] E. Zelikman, E. Lorch, L. Mackey, A. T. Kalai. Self-Taught Optimizer (STOP): Recursively
Self-Improving Code Generation. COLM, 2024. arXiv:2310.02304.
[5] J. Zhang, S. Hu, C. Lu, R. Lange, J. Clune. Darwin Gödel Machine: Open-Ended Evolution of
Self-Improving Agents. ICLR, 2026. arXiv:2505.22954.
[6] D. Ha, J. Schmidhuber. World Models. arXiv:1803.10122,
2018.