Meta: Recursive Self-Improvement through Emergent Depth
Organizations: University of Minnesota · Seoul National University
Abstract
Self-improving LLM agents refine answers, not the process that produces those answers. Systems that add a meta-level hold that level fixed, and those that edit themselves must leave part of their own editing machinery untouched to stay stable, capping the meta-depth they realize at roughly two. We present Meta, which keeps the meta-operation fixed and recurses on its input instead. That operation, , is applied repeatedly to its own products, reading the traces of the solver stack below together with the code that produced them, then writing the next layer as a strategic pre-process and a library of callable helpers. Because never changes, it cannot destabilize the system, and because its input strictly grows, each layer reasons from a higher vantage than the last. Depth is set by convergence rather than fixed in advance, and an evolutionary archive searches over layer chains. Across two backbones, Meta outperforms prior self-improving agents on all eight benchmark families. The sharpest case is ARC-AGI-2, built to resist skill memorization, where it alone scores above zero. Ablations indicate that most of the gain from recursion comes from the conditioning each layer passes to the next, and distinct layer roles emerge with depth although no prompt prescribes them. Code available at https://github.com/minnesotanlp/meta-n
Figures & tables
| Method | CO-Bench | S2D | LawBench | AE Math | AlgoTune | SR |
|---|---|---|---|---|---|---|
| Meta n archive-best | 0.851 0.014 | 0.733 0.015 | 0.815 0.013 | 0.869 0.045 | 15.10 2.4 | 5.22 0.38 |
| Meta n best chain | 0.782 0.016 | 0.743 0.034 | 0.796 0.046 | n/r | n/r | 4.68 0.45 |
| OpenEvolve ( Sharma, 2025 ) | 0.814 0.022 | 0.718 0.022 | 0.745 0.034 | 0.802 0.052 | 10.45 1.8 | n/r |
| Gödel Agent ( Yin et al., 2024 ) | 0.451 0.023 | 0.710 0.034 | 0.775 0.023 | 0.581 0.061 | 13.22 2.7 | n/r |
| Method | CO-Bench | S2D | AE Math | SR | ARC-AGI-2 |
|---|---|---|---|---|---|
| Meta n archive-best | 0.870 0.011 | 0.725 0.014 | 0.917 0.016 | 5.03 0.20 | 0.331 0.010 |
| Meta n best chain | 0.806 0.017 | 0.734 0.020 | 0.820 0.024 | n/r | 0.123 (1 seed) |
| OpenEvolve ( Sharma, 2025 ) | 0.702 0.025 | 0.721 0.007 | 0.726 0.046 | 3.70 0.13 | 0.003 0.001 |
| Gödel Agent ( Yin et al., 2024 ) | 0.527 0.033 | 0.708 0.037 | 0.674 0.068 | 2.45 1.63 | 0.054 0.006 |
| Condition | Removal | Score | |
| Meta n (full; Gemma, CO) | 0.845 | ||
| code library | injection | 0.825 | |
| outer-context | inter-layer ctx d | 0.751 | |
| recursion (depth-1) | meta-layer stacking | 0.714 | |
| Meta n (full; GPT-5.2, CO) | 0.886 | ||
| recursion (depth-1) | meta-layer stacking | 0.806 |
Appendix figures & tables7 assets
Supplementary material from the paper’s appendix.
Appendix
| Symbol | Plain English |
|---|---|
| fixed meta-operation, called at each build-step | |
| , | depth- wrapper and resulting solver |
| ’s output: pre-process + library | |
| execution trace at depth on task | |
| outer-context passed from layer to layer |
| Max-iter | ||||||
| Benchmark | Pat. | Gemma | GPT-5.2 | Test split? | ||
| CO-Bench | 2 | 2 | 4 | 8 | 6 | yes |
| Symptom2Disease | 1 | 3 | off | 20 | 10 | yes |
| LawBench | 1 | 3 | off | 20 | n/r | yes |
| TerminalBench 2.0 | 1 | 2 | 3 to 4 | 6 to 10 | 13 cat-by-cat | no |
| AlphaEvolve Math | 2 | 2 | 10 | 6 | 6 | no |
| Benchmark | Mode | Depth | Cands | Tokens |
|---|---|---|---|---|
| CO-Bench (36 tasks) | Single-shot | 3 | 33 | 5.3M |
| Agentic | 3 | 29 | 36.1M | |
| Symptom2Disease | Single-shot | 5 | 61 | 422K |
| Agentic | 3 | 61 | 1.7M | |
| LawBench (Chinese) | Single-shot | 4 | 61 | 761K |
| Agentic | 4 | 61 | 2.3M |
| Category | |
|---|---|
| Task routing | 0.96 |
| Prompt engineering | 0.85 |
| Rollback / override | 0.60 |
| Specialized libraries | 0.57 |
| Environment constraints | 0.45 |
| Tactical primitives | 0.37 |
| Domain | Mode | Seed | Linear-best | Archive-best | Depth | Cands | Tokens |
|---|---|---|---|---|---|---|---|
| bio_pop_growth (24 inst.) | Single-shot | 0.477 | 2.751 | 3.782 | 3 | 25 | 2.6M |
| Agentic | 2.355 | 4.406 | 4.977 | 3 | 25 | 5.2M | |
| chem_react (36 inst.) | Single-shot | 5.458 | 6.580 | 7.599 | 3 | 25 | 2.6M |
| Agentic | 5.587 | 6.440 | 7.244 | 3 | 25 | 2.7M | |
| matsci (25 inst.) | Single-shot | 0.000 | 1.273 | 2.130 | 6 | 23 | 3.9M |
| Agentic | 1.477 | 3.296 | 3.863 | 3 | 25 | 6.7M |
| Domain | Meta n | OpenEvolve | Gödel Agent |
|---|---|---|---|
| bio_pop_growth | 4.35 0.30 | 2.83 0.08 | 2.68 0.83 |
| chem_react | 7.65 0.07 | 6.96 0.08 | 2.92 3.84 |
| matsci | 3.26 0.67 | 1.37 0.34 | 1.27 0.67 |
| phys_osc | 4.85 0.11 | 3.63 0.15 | 2.93 2.03 |
| Mean | 5.03 0.20 | 3.70 0.13 | 2.45 1.63 |
| Task | Single-shot | Agentic |
|---|---|---|
| convolve2d_full_fill | 105.37 | 101.79 |
| fft_convolution | 9.72 | 1.69 |
| fft_cmplx_scipy_fftpack | 4.17 | 1.12 |
| psd_cone_projection | 5.54 | 3.74 |
| affine_transform_2d | 2.00 | 1.05 |
| lu_factorization | 1.47 | 1.34 |
LLM Agent Self-Improvement
Large language model agent self-improvement studies how agents use experience and feedback to improve their behavior, tools, and workflows.
See all 276 papers