Seeded optimization · Persistent experiment dashboard
Evolution Lab
The HELLO OS Evolution Lab is a backend-connected experiment workspace. Create a seeded population, optimize candidate gene vectors against a named synthetic objective, evolve generations with selection, crossover, and bounded mutation, then inspect scores and snapshots persisted in SQLite through Prisma.
Run the lab locally
Start HELLO OS, apply the current Prisma schema to its configured SQLite database, then open http://localhost:3000/evolution. Applying the additive schema creates the run and generation tables needed by the optimizer.
git clone https://github.com/CodesbyFebin/Hello-OS.git
cd Hello-OS
npm install
cp .env.example .env
npm run db:push
npm run dev
For Docker Compose, start the app as described in the repository README, then run docker compose exec mcp bunx prisma db push against the shared database before creating runs. Prisma schema pushes are non-destructive by default; review any warning before choosing a destructive option.
Create and evolve a run
- Choose a run name and one objective: balanced, reasoning, coding, memory, or collaboration.
- Create a run. The API chooses and stores a random seed unless one is explicitly supplied.
- Step one generation at a time, or run to the generation limit. Pause and resume are persisted in the database.
- Inspect the saved best and average proxy scores, mutation count, parent IDs, and candidate gene vectors.
Default UI runs use population 16, mutation rate 0.12, and a 12-generation limit. The API accepts populations from 8 to 64, mutation rates from 0 to 0.4, and limits from 1 to 100. Given the same starting seed and run parameters, the optimizer produces the same generations.
Backend API
GET /api/evolution/runslists recent persisted experiments and their latest generation summary.POST /api/evolution/runsvalidates parameters, generates generation zero, and stores the run and population atomically.GET /api/evolution/runs/{id}returns a run and its most recent generation snapshots.POST /api/evolution/runs/{id}/stepadvances exactly one generation with deterministic selection, crossover, bounded mutations, and a compare-and-set update to prevent duplicate concurrent steps.PATCH /api/evolution/runs/{id}/statusaccepts{"action":"pause"}or{"action":"resume"}.GET /api/stats,GET /api/evolution/apprenticeships, andGET /api/evolution/curriculumcontinue to provide agent-workspace metrics and learning records.
Each generation stores the full candidate population, champion, proxy score summaries, mutation count, and timestamp. Each run stores its parameters, seed, progress, current status, and best score. Database transactions keep a run step and its generation snapshot together. A listed curriculum node still does not prove an agent passed that skill.
What this optimizer does not do
- It does not train or mutate model weights, prompts, tools, memories, or live agent records.
- It does not measure real agent behavior, run production tournaments, or prove capability improvement.
- It does not launch Firecracker microVMs or report VM utilization.
- It does not use random fitness per request; the score is deterministic for the stored gene vector and selected proxy objective.
Use the Ecosystem dashboard for the broader API-backed workspace view. Check the current source for the exact API behavior and deployment configuration.