SICA
A Self-Improving Coding AgentSICA, a coding agent that edits its own Python codebase between benchmark runs, removing the split between a separate meta-agent and the target agent used in earlier work.
The best-performing agent in the archive acts as the meta-agent: it reviews past benchmark results and implements a change to its own code, such as smarter file-editing tools or an AST-based symbol locator. The edited agent is benchmarked and archived, and becomes a candidate to make the next edit, so the agent being improved is also the one doing the improving.
- Best agent changes its own code
- Edited agent is benchmarked and archived
- Archived agent makes the next edit
- Best agent changes its own code
- Edited agent is benchmarked and archived
- Archived agent makes the next edit
Why it is a road to recursion
Because the meta-agent is always the current best agent, each improvement to its coding ability directly improves its ability to write the next improvement to itself.
Evidence
Through successive self-edits, performance on a random subset of SWE-bench Verified rose from 17% to 53%, with smaller gains on LiveCodeBench.
Related loops
More self-modifying agents →- Coding agent edits its own code
- Scored child agents enter the archive
- Archived agents make later self modifications
- repeat
- Claude Code writes its own code changes
- Changes become next Claude Code versions
- Release becomes harness for next development round
- repeat
- Outer agent rewrites inner agent code
- Accepted rewrites become the incumbent agent
- Discovered agent becomes the outer loop agent
- repeat