You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .autoloop/programs/tsb-perf-evolve/code/README.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,7 @@ This directory holds the **fixed inputs** for the program: the benchmark scripts
4
4
5
5
## Files
6
6
7
-
-`config.yaml` — tunables read by the AlphaEvolve playbook (`exploitation_ratio`, `num_islands`, `population_size`, `archive_size`, dataset size).
7
+
-`config.yaml` — tunables read by the OpenEvolve playbook (`exploitation_ratio`, `num_islands`, `population_size`, `archive_size`, dataset size).
8
8
-`benchmark.ts` — tsb-side benchmark. Builds a Series of `dataset_size` random floats with ~5% NaN, calls `sortValues` in a tight loop, prints `{"function": "Series.sortValues", "mean_ms": …, "iterations": …, "total_ms": …}`.
9
9
-`benchmark.py` — pandas-side benchmark. Builds an equivalent `pd.Series`, calls `.sort_values()` in the same loop structure, prints the same JSON shape.
Copy file name to clipboardExpand all lines: .autoloop/programs/tsb-perf-evolve/program.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,7 +14,7 @@ Concretely, we minimize the **ratio**
14
14
15
15
`fitness < 1.0` means tsb is faster than pandas; lower is better. We will keep iterating as long as fitness keeps improving.
16
16
17
-
This is a **performance-evolution program** — there is one self-contained artifact (`Series.sortValues`), one scalar fitness (the ratio), and many plausible algorithmic families to try (comparison sort, typed-array indirect sort, dtype-dispatched non-comparison sort, batched/SoA, etc.). It is the canonical case for the AlphaEvolve strategy.
17
+
This is a **performance-evolution program** — there is one self-contained artifact (`Series.sortValues`), one scalar fitness (the ratio), and many plausible algorithmic families to try (comparison sort, typed-array indirect sort, dtype-dispatched non-comparison sort, batched/SoA, etc.). It is the canonical case for the OpenEvolve strategy.
18
18
19
19
### Validity invariants
20
20
@@ -43,10 +43,10 @@ Do NOT modify:
43
43
44
44
## Evolution Strategy
45
45
46
-
This program uses the **AlphaEvolve** strategy. On every iteration, read `strategy/alphaevolve.md` and follow it literally — it supersedes the generic analyze/accept/reject steps in the default autoloop loop.
46
+
This program uses the **OpenEvolve** strategy (modeled on [openevolve](https://github.com/algorithmicsuperintelligence/openevolve)). On every iteration, read `strategy/openevolve.md` and follow it literally — it supersedes the generic analyze/accept/reject steps in the default autoloop loop.
47
47
48
48
Support files:
49
-
-`strategy/alphaevolve.md` — the runtime playbook (operators, parent selection, population rules).
49
+
-`strategy/openevolve.md` — the runtime playbook (operators, parent selection, population rules).
50
50
-`strategy/prompts/mutation.md` — framing for exploitation and exploration operators.
51
51
-`strategy/prompts/crossover.md` — framing for crossover and migration operators.
Copy file name to clipboardExpand all lines: .autoloop/programs/tsb-perf-evolve/strategy/openevolve.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,4 @@
1
-
# AlphaEvolve Strategy — tsb-perf-evolve
1
+
# OpenEvolve Strategy — tsb-perf-evolve
2
2
3
3
This file is the **runtime playbook** for this program. The autoloop agent reads it at the start of every iteration and follows it literally. It supersedes the generic "Analyze and Propose" / "Accept or Reject" steps in the default autoloop iteration loop — all other steps (state read, branch management, state file updates) still apply.
4
4
@@ -90,7 +90,7 @@ Append a new entry to the `## 🧬 Population` subsection in the state file usin
90
90
91
91
### Step 8. Fold through to the default loop
92
92
93
-
Continue with the normal autoloop Step 5 (Accept or Reject → commit / discard, update state file's Machine State, Iteration History, Lessons Learned, etc.) as defined in the workflow. The only additional requirements from AlphaEvolve are:
93
+
Continue with the normal autoloop Step 5 (Accept or Reject → commit / discard, update state file's Machine State, Iteration History, Lessons Learned, etc.) as defined in the workflow. The only additional requirements from OpenEvolve are:
94
94
95
95
- The Iteration History entry must include `operator`, `parent_id(s)`, `island`, and `fitness` fields (in addition to the normal status/change/metric/notes).
96
96
- Lessons Learned additions should be phrased as *transferable heuristics* about the problem space, not as reports of what this iteration did. (E.g. "Indirect sort over `Uint32Array` indices beats object-pair sort above n≈10k" — not "Iteration 17 tried indirect sort.")
@@ -113,7 +113,7 @@ The population lives in the state file `tsb-perf-evolve.md` on the `memory/autol
113
113
```markdown
114
114
## 🧬 Population
115
115
116
-
> 🤖 *Managed by the AlphaEvolve strategy. One entry per candidate that has been evaluated (accepted or rejected). Newest first.*
116
+
> 🤖 *Managed by the OpenEvolve strategy. One entry per candidate that has been evaluated (accepted or rejected). Newest first.*
117
117
118
118
### Candidate <id> · island <n> · fitness <score> · gen <iter>
Copy file name to clipboardExpand all lines: .autoloop/programs/tsb-perf-evolve/strategy/prompts/crossover.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# Crossover & Migration prompt — tsb-perf-evolve
2
2
3
-
You are about to apply a **two-parent operator** — either crossover (combine ideas from parents on different islands) or migration (graft a technique that works on one island into a solution on another). This file frames how to reason about that change. Use it together with `strategy/alphaevolve.md`.
3
+
You are about to apply a **two-parent operator** — either crossover (combine ideas from parents on different islands) or migration (graft a technique that works on one island into a solution on another). This file frames how to reason about that change. Use it together with `strategy/openevolve.md`.
Copy file name to clipboardExpand all lines: .autoloop/programs/tsb-perf-evolve/strategy/prompts/mutation.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# Mutation prompt — tsb-perf-evolve
2
2
3
-
You are about to apply a **single-parent operator** — either exploitation (refine an elite) or exploration (try something new in an under-represented island). This file frames how to reason about that change. Use it together with `strategy/alphaevolve.md`.
3
+
You are about to apply a **single-parent operator** — either exploitation (refine an elite) or exploration (try something new in an under-represented island). This file frames how to reason about that change. Use it together with `strategy/openevolve.md`.
Copy file name to clipboardExpand all lines: .autoloop/strategies/openevolve/CUSTOMIZE.md
+18-16Lines changed: 18 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,19 +1,21 @@
1
-
# Adopting the AlphaEvolve strategy for a new program
1
+
# Adopting the OpenEvolve strategy for a new program
2
2
3
-
This file is a **creator-time guide** — it is read by the maintainer (or a "create program" agent) **once**, when authoring a new program that wants to use AlphaEvolve. It is **not** copied into the program's `strategy/` directory and is **not** read by the iteration agent at runtime.
3
+
> **Inspiration.**This strategy is modeled on [OpenEvolve](https://github.com/algorithmicsuperintelligence/openevolve) — an open-source implementation of the evolutionary-code-search approach popularized by DeepMind's AlphaEvolve paper. We've adapted the core ideas (MAP-Elites niching, island model, four operators — exploitation / exploration / crossover / migration) into a playbook the autoloop agent follows at iteration time. Consult the OpenEvolve repo for background on the underlying algorithm and worked examples.
4
4
5
-
If you are an iteration agent and have somehow ended up here: stop, go back to `strategy/alphaevolve.md` in the programdirectory, and follow that.
5
+
This file is a **creator-time guide** — it is read by the maintainer (or a "create program" agent) **once**, when authoring a new program that wants to use OpenEvolve. It is **not** copied into the program's `strategy/`directory and is **not** read by the iteration agent at runtime.
6
6
7
-
## When to pick AlphaEvolve
7
+
If you are an iteration agent and have somehow ended up here: stop, go back to `strategy/openevolve.md` in the program directory, and follow that.
8
8
9
-
AlphaEvolve is the right strategy when **all** of the following are true:
9
+
## When to pick OpenEvolve
10
+
11
+
OpenEvolve is the right strategy when **all** of the following are true:
10
12
11
13
- The target is a **self-contained artifact** — a single function, a single file, a config blob — that can be replaced atomically each iteration.
12
14
- Fitness is a **scalar metric** the evaluator can produce in a few seconds to a few minutes (lower or higher is better — pick one).
13
-
- There are **multiple plausible algorithmic families**, not just one obvious approach with knobs to tune. AlphaEvolve's island model is wasted if everything collapses to one family.
14
-
- Iterations are **independent** — a candidate's fitness does not depend on the previous candidate's state. (If you need to *accumulate* changes, use the default loop, not AlphaEvolve.)
15
+
- There are **multiple plausible algorithmic families**, not just one obvious approach with knobs to tune. OpenEvolve's island model is wasted if everything collapses to one family.
16
+
- Iterations are **independent** — a candidate's fitness does not depend on the previous candidate's state. (If you need to *accumulate* changes, use the default loop, not OpenEvolve.)
15
17
16
-
If the program is "add another test", "port another feature", or any kind of coverage / accumulation task — **do not use AlphaEvolve**. Use the default loop.
18
+
If the program is "add another test", "port another feature", or any kind of coverage / accumulation task — **do not use OpenEvolve**. Use the default loop.
17
19
18
20
## Steps to adopt
19
21
@@ -22,15 +24,15 @@ If the program is "add another test", "port another feature", or any kind of cov
This program uses the **AlphaEvolve** strategy. On every iteration, read `strategy/alphaevolve.md` and follow it literally — it supersedes the generic analyze/accept/reject steps in the default autoloop loop.
46
+
This program uses the **OpenEvolve** strategy. On every iteration, read `strategy/openevolve.md` and follow it literally — it supersedes the generic analyze/accept/reject steps in the default autoloop loop.
45
47
46
48
Support files:
47
-
-`strategy/alphaevolve.md` — the runtime playbook (operators, parent selection, population rules).
49
+
-`strategy/openevolve.md` — the runtime playbook (operators, parent selection, population rules).
48
50
-`strategy/prompts/mutation.md` — framing for exploitation and exploration operators.
49
51
-`strategy/prompts/crossover.md` — framing for crossover and migration operators.
50
52
@@ -55,7 +57,7 @@ Population state lives in the state file on the `memory/autoloop` branch under t
55
57
56
58
### `strategy.md` markers
57
59
58
-
-**`# AlphaEvolve Strategy — <CUSTOMIZE: program-name>`** — the program name as it appears in the file path.
60
+
-**`# OpenEvolve Strategy — <CUSTOMIZE: program-name>`** — the program name as it appears in the file path.
59
61
-**`## Problem framing`** — 2–4 sentences. State the artifact, the fitness function, and the validity invariants. The agent reads this every iteration; make it dense.
60
62
-**Operator weight table** — only change defaults if you have a strong prior. The defaults bias toward exploitation, which is right for most perf problems.
61
63
-**Islands** — the most important thing to get right. Pick 3–6 **algorithmic families** that span the design space. Examples:
You are about to apply a **two-parent operator** — either crossover (combine ideas from parents on different islands) or migration (graft a technique that works on one island into a solution on another). This file frames how to reason about that change. Use it together with `strategy/alphaevolve.md`.
3
+
You are about to apply a **two-parent operator** — either crossover (combine ideas from parents on different islands) or migration (graft a technique that works on one island into a solution on another). This file frames how to reason about that change. Use it together with `strategy/openevolve.md`.
Copy file name to clipboardExpand all lines: .autoloop/strategies/openevolve/prompts/mutation.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# Mutation prompt — <CUSTOMIZE: program-name>
2
2
3
-
You are about to apply a **single-parent operator** — either exploitation (refine an elite) or exploration (try something new in an under-represented island). This file frames how to reason about that change. Use it together with `strategy/alphaevolve.md`.
3
+
You are about to apply a **single-parent operator** — either exploitation (refine an elite) or exploration (try something new in an under-represented island). This file frames how to reason about that change. Use it together with `strategy/openevolve.md`.
> **Inspiration.** This strategy is modeled on [OpenEvolve](https://github.com/algorithmicsuperintelligence/openevolve) — an open-source implementation of the evolutionary-code-search approach popularized by DeepMind's AlphaEvolve paper. We've adapted the core ideas (MAP-Elites niching, island model, four operators — exploitation / exploration / crossover / migration) into a playbook the autoloop agent follows at iteration time. Consult the OpenEvolve repo for background on the underlying algorithm and worked examples.
2
4
3
5
This file is the **runtime playbook** for this program. The autoloop agent reads it at the start of every iteration and follows it literally. It supersedes the generic "Analyze and Propose" / "Accept or Reject" steps in the default autoloop iteration loop — all other steps (state read, branch management, state file updates) still apply.
4
6
@@ -84,7 +86,7 @@ Append a new entry to the `## 🧬 Population` subsection in the state file usin
84
86
85
87
### Step 8. Fold through to the default loop
86
88
87
-
Continue with the normal autoloop Step 5 (Accept or Reject → commit / discard, update state file's Machine State, Iteration History, Lessons Learned, etc.) as defined in the workflow. The only additional requirements from AlphaEvolve are:
89
+
Continue with the normal autoloop Step 5 (Accept or Reject → commit / discard, update state file's Machine State, Iteration History, Lessons Learned, etc.) as defined in the workflow. The only additional requirements from OpenEvolve are:
88
90
89
91
- The Iteration History entry must include `operator`, `parent_id(s)`, `island`, and `fitness` fields (in addition to the normal status/change/metric/notes).
90
92
- Lessons Learned additions should be phrased as *transferable heuristics* about the problem space, not as reports of what this iteration did. (E.g. "Hex layouts dominate grid layouts above n=20" — not "Iteration 17 tried a hex layout.")
@@ -107,7 +109,7 @@ The population lives in the state file `{program-name}.md` on the `memory/autolo
107
109
```markdown
108
110
## 🧬 Population
109
111
110
-
> 🤖 *Managed by the AlphaEvolve strategy. One entry per candidate that has been evaluated (accepted or rejected). Newest first.*
112
+
> 🤖 *Managed by the OpenEvolve strategy. One entry per candidate that has been evaluated (accepted or rejected). Newest first.*
111
113
112
114
### Candidate <id> · island <n> · fitness <score> · gen <iter>
0 commit comments