Home โ€บ Blog โ€บ Running RSI Repos Yourself: A Hands-On Walkthrough
Practitioner's Primer ยท Deep Dive โš™๏ธ

Running RSI Repos Yourself: A Hands-On Walkthrough

The practitioner's primer lists which RSI repos are real and runnable. This piece goes one level deeper on three of them โ€” FunSearch, the Self-Improving Coding Agent (SICA), and Gรถdel Agent โ€” actually cloning each and reading through what setting them up really involves, so you know what you're getting into before you start.

FL
FrontierAGI Team
What "hands-on" means here, precisely: all three repos below were actually cloned and their real README files, directory structures, and setup instructions read directly โ€” this is not secondhand summary. What was not done: none of the three were actually executed end-to-end, since that requires LLM API keys (SICA needs at least one provider key plus Docker; Gรถdel Agent needs an OpenAI key), and in SICA's case a full benchmark run that takes real compute time. So treat everything below as "verified setup steps and repo structure," not "confirmed final output" โ€” the distinction matters and is called out again per repo below.

Why This Companion Exists

The primer's repo table tells you a technique has a real, official repository and gives a one-line note on what running it takes. That's useful for deciding what to try, but it stops short of telling you what you'll actually see when you clone the thing โ€” what files are there, whether "just run the demo" is really that simple, and where the friction actually is. This piece exists to close that gap for three repos spanning the difficulty range the primer describes: FunSearch (the easiest โ€” zero local install), Gรถdel Agent (a middle case โ€” plain Python, one API key), and SICA (the most involved โ€” Docker, multiple possible API providers, and an explicit safety warning from the authors themselves).

FunSearch: Zero Install, Runs in Colab

google-deepmind/funsearchVerified by direct clone
The repository's own README states plainly: "No installation is required. All notebooks can be opened and run in Google Colab." That's confirmed accurate from reading the actual README โ€” there's no setup section beyond that one line. The repo is organized as six independent directories, four of which (cap_set, admissible_set, bin_packing, cyclic_graphs) each hold a runnable Colab notebook plus the specific mathematical objects FunSearch discovered for that problem, provided in numerical format so you can inspect the actual output without running anything. A fifth, corner_free_sets, provides discovered index sets in the same numerical format without a notebook. The sixth, implementation, is different in kind: it's the evolutionary-algorithm and code-manipulation logic itself โ€” but the README is explicit that this directory does not include the language model that proposes new programs, the sandbox for executing untrusted code, or the distributed infrastructure DeepMind actually used. It's there for understanding the method and adapting it to your own LLM/sandbox setup, not for a one-command reproduction.
What this means practically: if you want to see FunSearch's actual discovered solutions with no setup at all, open one of the four notebooks in Colab and read through it โ€” the interesting mathematical objects are already there as data. If you want to adapt FunSearch's search-and-evaluate loop to your own problem, you're building the LLM-sampling and sandboxing layers yourself on top of the provided `implementation` directory โ€” a real engineering task, not a config change.

SICA: Docker, API Keys, and an Explicit Safety Warning

MaximeRobeyns/self_improving_coding_agentVerified by direct clone
This is the most operationally involved of the three. The README's first instruction, in bold, is: always run the agent in the provided Docker container, because the agent can execute shell commands and this offers isolation from your host machine. The actual setup sequence, as written in the repo: export at least one LLM provider API key (the README lists support for Anthropic, OpenAI, Gemini, Vertex, Fireworks, and DeepSeek โ€” you only need one, and omitting the others just makes those providers' models unavailable to the agent); build the Docker image via make image (or make image-mac on Apple Silicon); then separately pip install the requirements plus the swebench package into your local Python environment. To confirm the setup worked, make int starts the container and attaches your shell, from which you run the agent interactively and can watch its execution on a local web UI at localhost:8080, showing the event bus and agent callgraph in real time.

The actual self-improvement loop is a separate step from the interactive test: after confirming the interactive agent works, running python runner.py starts the full loop described in the primer โ€” evaluate the current agent version on benchmark tasks, archive the results, let the agent edit its own codebase, repeat. Before doing this, the README says to check base_agent/src/benchmarks/__init__.py and make sure the benchmarks you actually want included are uncommented. The repo's own "Things to work on" list is candid about the system's current limits โ€” it names reducing the variance of self-improvement runs (since early features reportedly influence what gets built later) and building more of the agent's own benchmarks as open problems, not solved ones.

Gรถdel Agent: The Middle Ground

Arvid-pku/Godel_AgentVerified by direct clone
Simpler than SICA, more setup than FunSearch. The full install is three steps per the README: clone the repo, pip install -r requirements.txt, then run python src/main.py. The one piece of required configuration is an OpenAI API key, set in a key.env file โ€” no Docker, no choice of provider, no separate benchmark-selection step. The codebase is organized so that agent_module.py holds the actual self-awareness and self-modification logic (this is the file the primer's repo table points to directly), while separate task_*.py files (adapted from the ADAS project, per the README) define what environment or benchmark the agent is being evaluated against. The README's own "Development Tips" section is a genuine extension guide, not filler: it walks through exactly what you'd add to give the agent a new action (an entry in agent.action_functions, the implementation itself, and optionally a mention in the goal prompt) or to point it at a new environment (a reward function, an action_evaluate_on_task implementation, and an initial policy).

Comparing the Three

RepoInstallRequired credentialsWhere the "self-improvement" actually happens
FunSearch None โ€” open a notebook in Colab None to inspect existing results; your own LLM API access if you extend it The evolutionary loop over generated programs, in the (LLM-less) implementation directory you'd extend yourself
Gรถdel Agent pip install -r requirements.txt One OpenAI API key in key.env agent_module.py โ€” the agent modifies its own code via what the paper calls monkey patching
SICA Docker image build + local pip install At least one of six supported LLM provider keys; optionally Modal tokens for web access runner.py's full loop โ€” evaluate, archive, self-edit the codebase, repeat

A Safety Note Worth Repeating

SICA's own authors put a warning at the very top of their README, not buried in a docs page: run the agent only in the provided Docker container, because it can execute shell commands and unsandboxed use risks unintended file-system changes on your actual machine. This isn't a generic disclaimer this article is adding โ€” it's the repo's own stated first instruction, underlined by the fact that the primer's synthesis piece explicitly connects benchmark-gaming and evaluator design to real research risk. If you're trying any of these three repos yourself, treat SICA's Docker requirement as non-optional, and be similarly cautious with any RSI-adjacent agent framework that executes generated code, regardless of whether its own README says so as directly as this one does.

โš ๏ธ Confidence Notes and Gaps

Everything above about file structure, README content, and stated setup steps was read directly from each repository during research for this piece โ€” it is not secondhand. What was not verified: whether following these steps actually produces a working run end to end (no API keys or Docker execution were used here), whether the specific benchmark numbers referenced in the primer and earlier RSI pieces reproduce if you run these repos yourself, and how each repo's setup instructions may have changed since this was written โ€” these are actively maintained projects. If you hit a mismatch between what's written here and what you see when you clone a repo, trust the repo.

๐Ÿ”— Full Reference List