Model or dataset
Optima-CityU/LLM4AD_Next avatar
Optima-CityU/LLM4AD_Next

LLM4AD_Next: Turning a Problem Description into an Evolutionary Search Project

A next-generation automatic algorithm design platform, making automated algorithm design more accessible and easier to use

507 stars38 forksPythonBSD-3-Clause

At a glance

What is it?
LLM4AD_Next is a Python platform from Optima-CityU that generates a runnable LLM-driven evolutionary algorithm search pipeline from an interactive chat session. It is BSD-3-Clause, requires Python 3.12 or newer, and its search-method table shows several orchestrators still pending.
Who is it for?
Adopt LLM4AD_Next if you want to generate a first runnable evolutionary search project from a natural-language problem statement and you are comfortable on Python 3.12 with uv. Do not adopt it if your work depends on FunSearch, LLaMEA, HillClimb, LHNS, MLES, PartEvo, RandSample, MOEA/D, or NSGA-II as orchestrators: the README marks all of those as pending.
Can I use it commercially?
Yes. BSD-3-Clause is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 1 day ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

The configuration tax that LLM4AD_Next is trying to remove

The README frames the problem in terms of entry cost. Using an LLM for automated algorithm design, it argues, previously meant a "tedious, multi-step configuration pipeline": you assemble an evaluator, an algorithm skeleton, a configuration file, and something to debug the generated code before any search can start. LLM4AD_Next targets that assembly step rather than the search itself. The intended user is someone who has a problem they can score but not a working harness around it. The project describes the outcome as a "runnable evolutionary algorithm search project", generated from a natural-language description. That is a narrower claim than "designs your algorithm for you", and it is the more defensible one. The platform also ships an online trial at llm4ad-next.cn, which the release notes describe as running the full problem-to-algorithm workflow in a browser with no local setup. For a first look at whether the generated project shape suits you, that path avoids installing anything.

What llm4ad chat actually produces

The mechanism is an interview. You create a directory, run `uv run llm4ad chat`, and a conversational consultant asks about your requirements. According to the README, the output is a complete runnable app framework: an evaluator, an algorithm skeleton, a configuration, and a debugger. Those four artifacts are the interesting part, because they define where the platform stops and your work begins. The evaluator encodes your scoring function. The skeleton is the code the LLM will mutate. The configuration drives the search. The debugger is what you use when generated code fails to run, which it will. Everything after that is the evolutionary loop: an LLM proposes code changes, the evaluator scores them, and a search method decides what survives. The README describes this as "LLM-Powered Design" combined with "Evolutionary Optimization". A second entry point, the Evolve-Block Advisor, points at an existing repository and scans, scores, and recommends which blocks of code are most promising to evolve. That is a different job from the chat flow: it assumes you already have code and need to choose a target region for mutation.

Search methods: what is implemented and what is not

The README's search-method table is the most useful page in the documentation, and it is also the most cautionary. It splits each method into Impl (a working orchestrator in code) and Skill (an algorithm design skill for coding agents), and the two columns do not agree. IslandGA, Diverse Island GA, MEoH, DyCA, EoH, ReEvo, and MCTS-AHD are marked available on both axes. FunSearch, MOEA/D, and NSGA-II have skills but no orchestrator, marked pending. HillClimb, LHNS, LLaMEA, MLES, PartEvo, and RandSample are pending on both. If your plan depends on FunSearch, the skill exists but the orchestrator does not, so you would be driving a coding agent through a SKILL.md file rather than calling `llm4ad run`. The selection itself happens through one config key. Set `evolution.type` and run `llm4ad run <config.yaml>`. The README lists the accepted values as "diverse_island_ga", "island_ga", "eoh", "meoh", "reevo", "mcts_ahd", and "dyca", and points to `examples/config/config.complete.yaml` for full examples. Note that the accepted strings are lowercase and do not always match the table's display names: the table says Diverse Island GA, the config says diverse_island_ga.

The skills path, and why it is a separate workflow

Algorithm Design Skills are modular definitions (EoH, FunSearch, ReEvo, MEoH, MOEA/D) that let a coding agent design algorithms on its own. This is not the same as running the platform. You hand an agent a prompt naming the problem, the skill, and a task directory, then ask it to read the skill, read the task package, run N generations, and return the best algorithm. The README gives a TSP plus EoH example under `skills/algo-design/use_example/`. The prompt template points at a SKILL.md file on the develop branch, which is worth noting: the README's own example URL references develop rather than main. If you follow that template literally, you are pulling instructions from a moving branch. The skills route trades the platform's orchestration for the agent's own loop, which means your results depend on the agent's tool use and context handling rather than on the search method's migration and memory logic. That is a real difference in reproducibility, not a cosmetic one.

Memory, islands, and the newer machinery

Two additions deserve scrutiny because they change what a run costs. Long-term memory is backed by MindMemOS, with global, project, and task scopes plus configurable Chat and Embedding model bindings, documented in `docs/en/guides/memory.md`. Configurable embedding bindings mean a second model dependency alongside whatever LLM you use for generation, and memory scopes mean state persists across runs in ways that can make two runs of the same config diverge. Diverse Island GA is the other one: it assigns a continuous spectrum of exploitation, correction, and independent-exploration behaviors across any number of islands, and coordinates migration and memory use. The phrase "any number of islands" is a scaling claim without a stated cost model. More islands with coordinated migration and shared memory is more concurrent LLM calls and more bookkeeping; the README does not give guidance on where the tradeoff turns. The AlphaEvolve Mathematics Benchmark Suite adds 11 independently runnable cases with case-local evaluators, evolved implementations, and reusable experience artifacts. The README's featured-case table lists a circle-packing result of 2.6359830833 against a published AlphaEvolve figure of 2.6358627564, a delta of +1.21e-7. That is a single case from the project's own benchmark, reported by the project, and the margin is in the seventh decimal place.

Where the platform gets in the way

The first constraint is Python 3.12 or newer, per the PyPI badge. That is a hard floor, not a preference, and it will exclude anyone pinned to an older interpreter for dependency reasons. The second is the dependency surface: an LLM provider, plus Chat and Embedding model bindings if you enable memory. The platform does not remove the cost of model calls; it moves the cost from configuration time to run time, and evolutionary search is call-hungry by construction. The third is the pending-orchestrator problem described above, which is a documentation-visible gap rather than a hidden one. The fourth is the least comfortable to state: the README's own framing is promotional. It says LLM4AD_Next "destroys this entry barrier", and the README offers bonus website tokens in exchange for GitHub stars. Neither tells you whether the generated evaluator matches your scoring semantics. That is the failure mode worth planning for. A generated evaluator that scores the wrong thing will happily produce a best algorithm that optimizes the wrong objective, and no amount of search quality will catch it. The debugger artifact exists for exactly this class of problem, but it debugs code, not intent.

Alternatives and the actual difference

The obvious comparison is the original LLM4AD, which the README links directly and describes as the source of the AHD search methods. The difference is where the work sits. Original LLM4AD gives you the search methods and expects you to build the surrounding pipeline yourself; LLM4AD_Next generates that pipeline through the chat flow and adds the Evolve-Block Advisor for choosing mutation targets in existing code. If you already have a working evaluator and config and only want the search, the older project is the smaller dependency. If the pipeline is what is blocking you, the newer one is aimed at you. The skills route is a third option, and it is genuinely different: instead of the platform orchestrating generations, a coding agent reads a SKILL.md and runs the loop itself. That gives up the platform's migration and memory coordination in exchange for working inside whatever agent environment you already use. The tradeoff is control versus reproducibility, and it is not a close call in either direction.

Maintenance, licensing, and what to check before adopting

The project is BSD-3-Clause, which permits commercial use and modification provided the copyright notice and licence text are retained; it includes no patent grant. That is the standard reading of the licence text, not legal advice, and if you are embedding this in a product you should have counsel review it. On maintenance: the last push is dated 2026-09-10, the sole release is v1.0.0 from 2026-07-09, and the README's news items run from 2026.07 through 2026.09, so the project is active on a roughly monthly cadence. The repository is not archived. Versioned Docker Hub images are described as aligned with GitHub Release tags for reproducible local deployment, which is the cleaner path if you want a pinned environment rather than a moving one. The upgrade cost is the part I would watch. The README's own skill prompt template points at the develop branch, and the search-method table shows a steady migration of methods from "pending" to "available". Both suggest that APIs and file paths move between releases. Pin to a release tag or a Docker image, and re-read the method table after each upgrade before assuming your `evolution.type` still behaves the same way.

Editorial conclusion

Adopt LLM4AD_Next if you want to generate a first runnable evolutionary search project from a natural-language problem statement and you are comfortable on Python 3.12 with uv. Do not adopt it if your work depends on FunSearch, LLaMEA, HillClimb, LHNS, MLES, PartEvo, RandSample, MOEA/D, or NSGA-II as orchestrators: the README marks all of those as pending. Before committing, run `uv run llm4ad chat` on one small problem and check that the generated config, evaluator, and debugger actually execute, then confirm the `evolution.type` you intend to use appears in `examples/config/config.complete.yaml`.

Official sources

  1. License: BSD-3-Clause
  2. Optima-CityU/LLM4AD_Next on GitHub
  3. Project website
  4. README
  5. Releases
Community notes

Community notes