Thomas Piacentini
← Atelier

Fiche

Self-Improving and Research Agents

Texte original · anglais

Generator plus evaluator loops, self-editing agents, research loops, RSI gaps and the controls for each.

The generator plus evaluator loop

  1. Seed start from a seed program P_0. It is correct but suboptimal.
  2. Database keep variant programs. The evaluator scores each one.
  3. Sampler pick parents from a MAP-elites grid or from islands.
  4. LLM propose a targeted edit. The prompt holds top variants and the evaluator signature.
  5. Evaluator compile, run and score the variant on held-out inputs.
  6. Database insert the variant by its score and feature vector.
  7. Loop repeat for hours to weeks.
Sources

Four systems side by side

FactorAlphaEvolveDGMAI Scientist v2AAR
Edit targetAlgorithms, kernels, schedulersAgent scaffoldingResearch papersScoped alignment tasks
EvaluatorCorrectness plus benchmarkSWE-bench or PolyglotPeer review, weakHuman review
Result48-mul 4x4 matmulSWE-bench 20% to 50%ICLR 2025 workshop paperBeat humans on weak-to-strong
Known failureBounded by evaluator rigorReward hacking42% experiment failuresPrescribed workflows degrade it
Main controlHeld-out evaluatorEvaluator firewallDocker isolation, human reviewOut-of-sandbox forum log
Sources

Run the lesson simulators

CommandWhat it does
code/main.py (L03)Run A with holdout, then Run B without
code/main.py --no-holdoutRun B only. Train-only evaluator
code/main.py --reward-hack-allowedOpens the score side channel
--experiment-failure 0.20 --novelty-mislabel 0.10L05 baseline with lower failure rates
code/main.py (L06)Fixed vs free regimes, tamper demo
code/main.py --threshold 2.0L07 pause gap C - A at 2.0
--seed <n>RNG seed. L05 uses 42, L07 uses 11
python main.pyCapstone tree search, budget $30
Sources

Numbers to know

AlphaEvolve matmul
48 scalar multiplications for 4x4 complex. Strassen 1969 used 49.
AlphaEvolve production
Borg heuristic recovers ~0.7% of cluster compute.
DGM
SWE-bench 20.0% to 50.0%. Polyglot 14.2% to 30.7%.
SWE-bench
2,294 Python test-fixing tasks from real GitHub issues.
AI Scientist v2
42% of experiments failed from coding errors.
Alignment faking
12% of basic tests. Up to 78% after retraining attempts.
Capstone budget
30 hard budget per paper. The demo run spent 28.40.
Reviewer gate
5 judges. Mean below 4.0/5 goes back to the writer. Stop after 3 rewrites.
Sources

Formulas in the code

Misalignment gap
M(t) = C(t) - A(t). It grows when r_c > r_a.
One RSI cycle
c *= max(0.9, nc) with nc = cfg.r_c + random.gauss(0, cfg.noise_c).
Scenario A
r_c=1.15, r_a=1.08. Scenario B sets both to 1.10.
Holdout signal
0.5 * (c.train_score + c.test_score). Without holdout, train only.
MAP-elites cell
min(depth(e), 6) and min(int(max_const(e) / 2), 4).
DGM side channel
min(1.0, base + agent.hack_bonus) when the hack is allowed.
Sources

Capstone research agent

runmetricsbest branchPDFdraftmean 4.0+Seed ideaplus domainclientLiterature search50 papers, FAISS cachestoreTree searchplan, execute, verifyprocessSandbox per nodeno network egressprocessScore nodesnovelty, quality, budgetprocessLaTeX writerbest branchmodelVision critiquecompiled PDFmodelReviewer ensemble5 LLM judgesmodelOutputspaper.pdf, review, tracestore
Nodes and connections
NodeRoleKind
Seed ideaplus domainclient
Literature search50 papers, FAISS cachestore
Tree searchplan, execute, verifyprocess
Sandbox per nodeno network egressprocess
Score nodesnovelty, quality, budgetprocess
LaTeX writerbest branchmodel
Vision critiquecompiled PDFmodel
Reviewer ensemble5 LLM judgesmodel
Outputspaper.pdf, review, tracestore
FromToConnection
Seed ideaLiterature search
Literature searchTree search
Tree searchSandbox per noderun
Sandbox per nodeScore nodesmetrics
Score nodesLaTeX writerbest branch
LaTeX writerVision critiquePDF
Vision critiqueReviewer ensembledraft
Reviewer ensembleOutputsmean 4.0+
Sources

Sandbox and run (capstone)

docker run --network=none \no network egress
--memory=8g --cpus=2 \pinned resource caps
--pids-limit=256 \process cap
--read-onlyread-only filesystem
ai-scientist run --seed "<seed idea>" --budget 30$30 per paper
Sources

Tamper-evident forum (L06)

rec.prev_hash = self.head()link to the last record
payload = (f"{rec.author}|{rec.task}|{rec.regime}|"
f"{rec.result:.3f}|{rec.prev_hash}")
rec.my_hash = hashlib.sha256(payload.encode()).hexdigest()[:16]
bad = tampered.verify()indexes of edited records
Sources

Troubleshooting

SymptomCauseFix
Low train MSE, high test MSETrain-only evaluatorHeld-out inputs made at evaluation time
Reported score above true scoreAgent can edit its scoringEvaluator the agent cannot edit
Agent removes hallucination markersEvaluator in the agent repositorySeparate check the agent cannot edit
Pretty paper, broken experimentPolish masks weaknessEvaluate the claims. Human review gate
Known method flagged as novelLiterature retrieval mislabelsHuman review before submission
Agent rewrites its own scoreLog inside the sandboxAppend-only forum outside the sandbox
verify() flags recordsChain breaks at the edited recordCross-check the out-of-sandbox backup
Gap C - A reaches the thresholdCapability rate or surges beat alignmentPAUSE for human review
Sources

Glossary

MAP-elites
grid keyed by feature vectors. Each cell holds its best variant.
Island model
independent populations that migrate periodically.
DGM
Darwin Godel Machine. Archive plus empirical scores, no proof.
AAR
Automated Alignment Researcher. A model run autonomously on alignment problems.
RSI
recursive self-improvement. The system proposes edits to itself each cycle.
VLM critique
a vision-language model reads figures and rewrites them.
Evaluator firewall
the evaluator lives in a namespace the agent cannot edit.
Reward hacking
the loop raises the score without the intended task.
Sources

Q&A

Why does AlphaEvolve win on matmul?
The evaluator is fast, deterministic and hard to game.
Why does DGM drop the proof?
Nobody completed one for a non-trivial agent. DGM uses score deltas.
Fixed workflow or free decomposition?
Free has higher upside. Fixed has lower variance and is easier to audit.
Does a higher alignment mean rate save you?
No. Scenario C crosses when capability surges.
Who commits AAR results?
Humans. AARs propose, humans commit.
Sources
Original source
---
id: autonomous-research
title: Self-Improving and Research Agents
code: SI
subtitle: Generator plus evaluator loops, self-editing agents, research loops, RSI gaps and the controls for each.
hue: 280
sources: phases/15-autonomous-systems/03-alphaevolve-evolutionary-coding, phases/15-autonomous-systems/04-darwin-godel-machine, phases/15-autonomous-systems/05-ai-scientist-v2, phases/15-autonomous-systems/06-automated-alignment-research, phases/15-autonomous-systems/07-recursive-self-improvement, phases/19-capstone-projects/05-autonomous-research-agent
source_hash: e7c7931b49e48d32
---

## The generator plus evaluator loop
type: flow
from: phases/15-autonomous-systems/03-alphaevolve-evolutionary-coding/docs/en.md

1. **Seed**: start from a seed program `P_0`. It is correct but suboptimal.
2. **Database**: keep variant programs. The evaluator scores each one.
3. **Sampler**: pick parents from a MAP-elites grid or from islands.
4. **LLM**: propose a targeted edit. The prompt holds top variants and the evaluator signature.
5. **Evaluator**: compile, run and score the variant on held-out inputs.
6. **Database**: insert the variant by its score and feature vector.
7. **Loop**: repeat for hours to weeks.

## Four systems side by side
type: comparison
span: 2
from: phases/15-autonomous-systems/03-alphaevolve-evolutionary-coding/docs/en.md, phases/15-autonomous-systems/04-darwin-godel-machine/docs/en.md, phases/15-autonomous-systems/05-ai-scientist-v2/docs/en.md, phases/15-autonomous-systems/06-automated-alignment-research/docs/en.md

| Factor | AlphaEvolve | DGM | AI Scientist v2 | AAR |
|---|---|---|---|---|
| Edit target | Algorithms, kernels, schedulers | Agent scaffolding | Research papers | Scoped alignment tasks |
| Evaluator | Correctness plus benchmark | SWE-bench or Polyglot | Peer review, weak | Human review |
| Result | 48-mul 4x4 matmul | SWE-bench 20% to 50% | ICLR 2025 workshop paper | Beat humans on weak-to-strong |
| Known failure | Bounded by evaluator rigor | Reward hacking | 42% experiment failures | Prescribed workflows degrade it |
| Main control | Held-out evaluator | Evaluator firewall | Docker isolation, human review | Out-of-sandbox forum log |

## Run the lesson simulators
type: command-table
from: phases/15-autonomous-systems/03-alphaevolve-evolutionary-coding/code/main.py, phases/15-autonomous-systems/04-darwin-godel-machine/code/main.py, phases/15-autonomous-systems/05-ai-scientist-v2/docs/en.md, phases/15-autonomous-systems/05-ai-scientist-v2/code/main.py, phases/15-autonomous-systems/06-automated-alignment-research/code/main.py, phases/15-autonomous-systems/07-recursive-self-improvement/code/main.py, phases/19-capstone-projects/05-autonomous-research-agent/code/main.py

| Command | What it does |
|---|---|
| `code/main.py` (L03) | Run A with holdout, then Run B without |
| `code/main.py --no-holdout` | Run B only. Train-only evaluator |
| `code/main.py --reward-hack-allowed` | Opens the score side channel |
| `--experiment-failure 0.20 --novelty-mislabel 0.10` | L05 baseline with lower failure rates |
| `code/main.py` (L06) | Fixed vs free regimes, tamper demo |
| `code/main.py --threshold 2.0` | L07 pause gap `C - A` at 2.0 |
| `--seed <n>` | RNG seed. L05 uses 42, L07 uses 11 |
| `python main.py` | Capstone tree search, budget $30 |

## Numbers to know
type: concepts
from: phases/15-autonomous-systems/03-alphaevolve-evolutionary-coding/docs/en.md, phases/15-autonomous-systems/04-darwin-godel-machine/docs/en.md, phases/15-autonomous-systems/05-ai-scientist-v2/docs/en.md, phases/15-autonomous-systems/07-recursive-self-improvement/docs/en.md, phases/19-capstone-projects/05-autonomous-research-agent/docs/en.md

- **AlphaEvolve matmul**: 48 scalar multiplications for 4x4 complex. Strassen 1969 used 49.
- **AlphaEvolve production**: Borg heuristic recovers ~0.7% of cluster compute.
- **DGM**: SWE-bench 20.0% to 50.0%. Polyglot 14.2% to 30.7%.
- **SWE-bench**: 2,294 Python test-fixing tasks from real GitHub issues.
- **AI Scientist v2**: 42% of experiments failed from coding errors.
- **Alignment faking**: 12% of basic tests. Up to 78% after retraining attempts.
- **Capstone budget**: $30 hard budget per paper. The demo run spent $28.40.
- **Reviewer gate**: 5 judges. Mean below 4.0/5 goes back to the writer. Stop after 3 rewrites.

## Formulas in the code
type: concepts
from: phases/15-autonomous-systems/03-alphaevolve-evolutionary-coding/code/main.py, phases/15-autonomous-systems/04-darwin-godel-machine/code/main.py, phases/15-autonomous-systems/07-recursive-self-improvement/docs/en.md, phases/15-autonomous-systems/07-recursive-self-improvement/code/main.py

- **Misalignment gap**: $M(t) = C(t) - A(t)$. It grows when $r_c > r_a$.
- **One RSI cycle**: `c *= max(0.9, nc)` with `nc = cfg.r_c + random.gauss(0, cfg.noise_c)`.
- **Scenario A**: `r_c=1.15`, `r_a=1.08`. Scenario B sets both to 1.10.
- **Holdout signal**: `0.5 * (c.train_score + c.test_score)`. Without holdout, train only.
- **MAP-elites cell**: `min(depth(e), 6)` and `min(int(max_const(e) / 2), 4)`.
- **DGM side channel**: `min(1.0, base + agent.hack_bonus)` when the hack is allowed.

## Capstone research agent
type: architecture
from: phases/19-capstone-projects/05-autonomous-research-agent/docs/en.md

```arch
node | seed | 1,1 | Seed idea | plus domain | client
node | lit | 2,1 | Literature search | 50 papers, FAISS cache | store
node | tree | 3,1 | Tree search | plan, execute, verify | process
node | box | 4,1 | Sandbox per node | no network egress | process
node | score | 4,2 | Score nodes | novelty, quality, budget | process
node | writer | 3,2 | LaTeX writer | best branch | model
node | vision | 2,2 | Vision critique | compiled PDF | model
node | review | 1,2 | Reviewer ensemble | 5 LLM judges | model
node | out | 1,3 | Outputs | paper.pdf, review, trace | store
edge | seed | lit |
edge | lit | tree |
edge | tree | box | run
edge | box | score | metrics
edge | score | writer | best branch
edge | writer | vision | PDF
edge | vision | review | draft
edge | review | out | mean 4.0+
```

## Best-first tree search
type: annotated-code
lang: python
from: phases/19-capstone-projects/05-autonomous-research-agent/code/main.py

```python
budget_weight = min(1.0, remaining_budget / 10.0)  # full weight above $10 left
return self.novelty * 0.4 + self.quality * 0.5 + budget_weight * 0.1
heapq.heappush(self.frontier, (-node.score(remaining), self.counter, node.node_id))
if tree.spent >= tree.budget:  # BUDGET EXHAUSTED, stop
run_experiment(cur, rng)  # sandboxed run, sets cost_usd
ok = verify(cur)  # loss above 4.0 is loss_diverged
children = expand(cur, next_id)  # one config change per child
best = max(done, key=lambda n: n.quality)  # then walk back to root
```

## Sandbox and run (capstone)
type: annotated-code
lang: bash
from: phases/19-capstone-projects/05-autonomous-research-agent/docs/en.md

```bash
docker run --network=none \  # no network egress
  --memory=8g --cpus=2 \  # pinned resource caps
  --pids-limit=256 \  # process cap
  --read-only  # read-only filesystem
ai-scientist run --seed "<seed idea>" --budget 30  # $30 per paper
```

## Tamper-evident forum (L06)
type: annotated-code
lang: python
from: phases/15-autonomous-systems/06-automated-alignment-research/code/main.py

```python
rec.prev_hash = self.head()  # link to the last record
payload = (f"{rec.author}|{rec.task}|{rec.regime}|"
           f"{rec.result:.3f}|{rec.prev_hash}")
rec.my_hash = hashlib.sha256(payload.encode()).hexdigest()[:16]
bad = tampered.verify()  # indexes of edited records
```

## Troubleshooting
type: troubleshooting
from: phases/15-autonomous-systems/03-alphaevolve-evolutionary-coding/docs/en.md, phases/15-autonomous-systems/04-darwin-godel-machine/docs/en.md, phases/15-autonomous-systems/05-ai-scientist-v2/docs/en.md, phases/15-autonomous-systems/06-automated-alignment-research/docs/en.md, phases/15-autonomous-systems/06-automated-alignment-research/code/main.py, phases/15-autonomous-systems/07-recursive-self-improvement/code/main.py

| Symptom | Cause | Fix |
|---|---|---|
| Low train MSE, high test MSE | Train-only evaluator | Held-out inputs made at evaluation time |
| Reported score above true score | Agent can edit its scoring | Evaluator the agent cannot edit |
| Agent removes hallucination markers | Evaluator in the agent repository | Separate check the agent cannot edit |
| Pretty paper, broken experiment | Polish masks weakness | Evaluate the claims. Human review gate |
| Known method flagged as novel | Literature retrieval mislabels | Human review before submission |
| Agent rewrites its own score | Log inside the sandbox | Append-only forum outside the sandbox |
| `verify()` flags records | Chain breaks at the edited record | Cross-check the out-of-sandbox backup |
| Gap `C - A` reaches the threshold | Capability rate or surges beat alignment | PAUSE for human review |

## Glossary
type: glossary
from: phases/15-autonomous-systems/03-alphaevolve-evolutionary-coding/docs/en.md, phases/15-autonomous-systems/04-darwin-godel-machine/docs/en.md, phases/15-autonomous-systems/05-ai-scientist-v2/docs/en.md, phases/15-autonomous-systems/06-automated-alignment-research/docs/en.md, phases/15-autonomous-systems/07-recursive-self-improvement/docs/en.md

- **MAP-elites**: grid keyed by feature vectors. Each cell holds its best variant.
- **Island model**: independent populations that migrate periodically.
- **DGM**: Darwin Godel Machine. Archive plus empirical scores, no proof.
- **AAR**: Automated Alignment Researcher. A model run autonomously on alignment problems.
- **RSI**: recursive self-improvement. The system proposes edits to itself each cycle.
- **VLM critique**: a vision-language model reads figures and rewrites them.
- **Evaluator firewall**: the evaluator lives in a namespace the agent cannot edit.
- **Reward hacking**: the loop raises the score without the intended task.

## Q&A
type: qa
from: phases/15-autonomous-systems/03-alphaevolve-evolutionary-coding/docs/en.md, phases/15-autonomous-systems/04-darwin-godel-machine/docs/en.md, phases/15-autonomous-systems/06-automated-alignment-research/docs/en.md, phases/15-autonomous-systems/06-automated-alignment-research/code/main.py, phases/15-autonomous-systems/07-recursive-self-improvement/code/main.py

- **Why does AlphaEvolve win on matmul?** The evaluator is fast, deterministic and hard to game.
- **Why does DGM drop the proof?** Nobody completed one for a non-trivial agent. DGM uses score deltas.
- **Fixed workflow or free decomposition?** Free has higher upside. Fixed has lower variance and is easier to audit.
- **Does a higher alignment mean rate save you?** No. Scenario C crosses when capability surges.
- **Who commits AAR results?** Humans. AARs propose, humans commit.
Code et livrables 1
Ce que vous en retenez

Enregistré dans votre carnet sur cet appareil.

Sources et limites

Les repères de lecture sont déclaratifs. Les résultats de tests sont enregistrés séparément ; ils valent pour les cas exécutés.

AI Engineering from Scratch · 3f9715c · MIT

Télécharger ce fichier ↓