Meta^n freezes the meta-op and recurses on its input, alone scoring above zero on ARC-AGI-2

Meta$^n$: Recursive Self-Improvement through Emergent Depth

Zae Myung Kim, Young-Jun Lee, Seungyeon Jwa, Dongyeop Kang

cs.AI, cs.CL, eess.SY

2026-08-25

Meta^n keeps Ω fixed and recurses on growing input, leading OpenEvolve and Gödel Agent on eight families and reaching 0.331 on ARC-AGI-2 where both baselines sit near zero.

What problem this solves

Most self-improving LLM agents revise answers, not the process that produces them. FunSearch, AlphaEvolve, and ADAS hang a frozen search or evolution loop outside the solver; the improver never changes, so realized meta-depth is 1. Gödel Agent and DGM let the agent edit its own source, then freeze a driver so the system cannot rewrite itself into garbage, which caps realized meta-depth near 2.5. Recursing the improver buys depth only by putting stability at risk.

Meta^n, from Minnesota NLP, changes what gets recursed. The meta-operation Ω is frozen. Recursion is applied to its input.

Method

Ω is one fixed prompt. Each layer reads how the stack below scored on the whole task set, and from depth 3 also reads the code earlier layers wrote, then emits the next layer: a strategic pre-process that runs before each solve, plus a library of helpers the solver may call. A wrapper slots the new layer around the previous solver. Context threads downward. Libraries merge by name, with deeper layers winning collisions. Ω never mutates, so it cannot destabilize the system. Its input strictly grows, so each call reasons from a higher-order view than the last.

Depth is not set in advance. The loop stops when Ω emits empty code, when several layers fail a scale-aware gain threshold, or at a cap. Runs in the paper halt between depth 3 and 6 because Ω stops finding improvements, not because context fills up. Linear deepening can die on one bad injection, so an evolutionary archive samples parent chains by score plus an exploration bonus, expands several children per parent, and tracks the best score any chain has achieved on each task (archive-best). Layers can interfere: depth 3 often overwrites a depth-2 strategy that still worked, and depth 4 rolls it back.

The inner solver can be a single LLM call or an observe-act loop of up to 8 turns. The same Ω template is used on all eight benchmark families.

Results

Two backbones: Gemma 4 31B-IT and GPT-5.2. The eight families cover combinatorial optimization, text classification, terminal tasks, mathematical discovery, symbolic regression, algorithm speedup, and ARC-AGI-2.

SettingMeta^n archive-bestOpenEvolveGödel Agent
Gemma / CO-Bench0.8510.8140.451
GPT-5.2 / CO-Bench0.8700.7020.527
GPT-5.2 / ARC-AGI-20.3310.0030.054
Gemma / LawBench0.8150.7450.775

On GPT-5.2, the CO-Bench gap over OpenEvolve is +0.168 with disjoint per-seed ranges. ARC-AGI-2 is scored pass@2: archive-best 0.331, best single chain 0.123, both baselines near the floor. The paper states that on the held-out split only Meta^n solved any task. Removing recursion (depth-1) drops Gemma CO-Bench validation from 0.845 to 0.714, a +0.131 from recursion itself. Channel ablation attributes about 72% of that recursion gain to the inter-layer strategy string, about 15% to the callable library, and about 13% to the rest of the machinery. Raising Gödel Agent's budget 10× on GPT-5.2 CO-Bench still plateaus at 0.628, short of Meta^n's 0.870.

Depth 2 emits generic primitives; simulatedannealing later appears in 15 of 36 CO-Bench winners. Depth 3 specializes, and 41% of (chain, task) pairs strictly regress there. Depth 4 and beyond correct and refine. No prompt assigns these roles; two independent raters still recover the same progression.

Why it matters

The design splits "edit your own improver" from "keep the improver frozen." Meta-depth beyond two does not require Ω to rewrite itself. Giving Ω a strictly richer input is enough. Most of the recursion gain is a string of strategy passed downward, not a library of functions. That is a cheaper knob for anyone building recursive self-improvement: get the conditioning right before trying to evolve Ω.

It also marks where the framework does not pay. On AlgoTune the seed already extracted a pre-optimized kernel contract; extra context over-constrains the code. The agentic mean is ×15.10, while single-shot reaches ×18.47 on a matched seed. On SWE-Bench the seed is already strong enough that the archive's best is the generation-0 candidate and Ω never activates. On Symptom2Disease the action surface is one prompt over 22 labels, and the lead over OpenEvolve falls inside seed noise.

Limitations

The authors say this themselves: the base solver and every Ω call use the same model, which isolates depth from capability but leaves the practical case untested, a stronger model at Ω over a weaker solver. Runs stop between depth 3 and 6; whether deeper stacks would help is open. Archive-best sits 0.06 to 0.07 above the best single chain, so the headline numbers assume per-task selection across chains. If only one chain can be deployed, the table shrinks. The 0.331 on ARC-AGI-2 is a dev score; the held-out split is described as above zero with both baselines at zero, without a reported number. Gödel Agent's published single-solver interface collapses on CO-Bench, so the tables use a corrected per-task setup.

Terms

Source

Related papers

All paper explainers