Key points
- Premise. Shinka Evolve treats an LLM as the mutation engine of a code-level evolutionary loop, not as a one-shot answer generator. The goal is open-ended discovery in regions beyond human-designed heuristics.
- Evolution loop. Maintain a program archive with fitness scores. At each generation: sample parent programs, let the LLM mutate, reject near-duplicates, evaluate the new program on the task, and update the archive.
- Parent sampling. A combined strategy blends three signals: uniform (exploration), quality-weighted (exploitation), and novelty-weighted (diversity). The default weighting is
alphafor quality,betafor novelty, and1 - alpha - betafor uniform sampling, balancing hill-climbing with occasional distant jumps. - Novelty rejection sampling. Two-layer filter: a fast code-embedding cosine-similarity check above a threshold (e.g., 0.95) triggers a second LLM-based semantic comparison that returns YES/NO on whether two programs represent materially different algorithmic ideas. This prevents population collapse from "renamed-variable" variants.
- Bandit-based LLM routing. Instead of fixing a single LLM, Shinka treats model selection as a multi-armed bandit using UCB1:
exploitation + sqrt(2 * ln(total_rounds) / attempts). Rarely-tried models get a bonus, so the system keeps probing cheaper or less-used LLMs instead of over-fitting to one. - Three mutation operators. (1) Diff-based edits using SEARCH/REPLACE blocks for surgical changes; (2) full rewrites prompted from a high-level summary of the parent, used to escape local optima; (3) crossover where the LLM extracts strengths from two parents and synthesizes a child. The author argues LLM-driven crossover is more meaningful than naive code splicing.
- Circle packing result. Shinka reached a new state of the art using only about 150 program evaluations versus AlphaEvolve's thousands, and the discovered algorithm used a force-directed geometric heuristic that human experts had not previously explored.
- Other reported gains. AIME math-reasoning agent accuracy improved about 15% via a new "verify-and-retry" tool-use strategy; an ALE-Bench Kaggle-style pipeline was improved and a subtle bug in the baseline was found; for Mixture-of-Experts training, a new load-balancing loss emerged that revealed a previously unexamined trade-off between expert balance and model quality.
- Comparison with AlphaEvolve. AlphaEvolve is closed-source, expensive (estimated $10K+ per run), and tied to Gemini. Shinka Evolve is Apache 2.0, sample-efficient, multi-model, exposes explicit exploration/exploitation parameters, has built-in novelty checks, and ships a WebUI for monitoring fitness curves, diversity, per-LLM success rates, and a code lineage tree.
- Philosophical framing. The piece cites Kenneth Stanley: solving a "wrong" relaxed problem can act as a stepping stone to a better solution than directly optimizing the exact objective. Shinka reportedly used an approximate circle-packing fitness that tolerates small overlaps as a surrogate and converged faster.
- Practical use. Install via
pip install shinka-evolve(oruv pip install shinka-evolve). AShinkaEvolveRunneris configured with a fitness function, a list of LLM models, generation count, population size, mutation types, sampling strategy, and a novelty threshold. Monitoring usesshinka webui --log-dir ./evolution_logs. A Claude Code / Codex skill is available vianpx skills add SakanaAI/ShinkaEvolve --skill '*' -a claude-codewith commandsshinka-setup,shinka-convert,shinka-run, andshinka-inspect. - Limitations. Requires an automatic verifier or fitness function, struggles on tasks like "write a funny story"; long programs can exceed LLM context windows; hundreds of LLM calls per run still cost money.
- Future directions. Meta-evolution of Shinka's own hyperparameters; cross-domain transfer of evolutionary strategies (e.g., to protein folding); human-in-the-loop guidance mid-evolution; eventually, having the system propose the problems worth solving, not just the solutions.
- Lange, R.T., Imajuku, Y., & Cetin, E. (2025). *ShinkaEvolve: Towards Open-Ended And Sample-Efficient Program Evolution*. arXiv:2509.19349. GitHub: https://github.com/SakanaAI/ShinkaEvolve