A file-based evolution framework for evaluator-driven learning, reproducible candidate lineage, and controllable modification.
RSIHub Website · What RSIHub Does · How It Works · What Can Evolve · Recipes · Showcase · Quick Start · Documentation
Tip
New to AI-for-AI and agent self-improvement? Start with the curated Awesome-AI4AI paper list, read the AI4AI Survey (PDF) for the full landscape, and follow the AI4AI blog for ongoing notes from Simple Agent Lab. RSIHub is the experimental infrastructure that puts these methods on common ground.
RSIHub gives an agent a controlled way to improve itself. It runs candidate agents against a fixed evaluator, keeps the provenance of every generation — what changed and why — and carries verified improvements to the agent forward while the evaluator itself stays untouched.
- For agent builders: Improve prompts, skills, harnesses, and agent code in a reusable experiment workspace.
- For researchers: Compare evolution strategies under fixed evaluation and mutation boundaries.
- Evidence built in: Connect every candidate agent to scores, artifacts, archive records, and Git lineage.
Every recipe composes the same loop:
select → rollout → analyze → mutate → guardrail → evaluate → absorb
A recipe decides how parent nodes are selected, how traces are analyzed, what may be edited, and which evaluations admit a new generation. The framework owns the two phases that make those decisions inspectable, and executes every trial on Harbor, which provides container execution, trajectory capture, and per-task verification.
The diagram labels the seven phases of the loop. Operators plug into nine
named stages — five required (select, rollout, mutate, gate,
record) and four optional, marked * below (analyze, validate, novelty,
reflect). Three phases group more than one stage, which is why the two
vocabularies differ:
| Phase | Owned by | Stages that run here | What happens |
|---|---|---|---|
select |
recipe | select |
Choose an eligible parent node from the archive and fork its exact commit. |
rollout |
recipe | rollout |
Run the parent node on the training split and return execution evidence. |
analyze |
recipe | analyze* |
Distill rollout traces into bounded mutation evidence. |
mutate |
recipe | mutate |
Propose edits inside the declared mutable surface. |
guardrail |
framework | validate, novelty |
Check the actual tree diff against the mutable surface. The two optional operators may then reject the proposal: validate applies a method-specific pre-evaluation check, novelty drops near-duplicates. |
evaluate |
framework | none | Commit the reviewed tree, score a clean checkout, certify the outcome. No recipe-selected operator runs here. |
absorb |
recipe | gate, record, reflect* |
gate decides from the certified score whether the child becomes a parent, record proposes annotations, reflect distills insights for later generations. |
Three terms cover the composition model:
| Term | Meaning |
|---|---|
stage |
One fixed lifecycle slot, named exactly as registered: select, rollout, analyze, mutate, validate, novelty, gate, record, reflect. |
operator |
One reusable implementation of a stage, at library/<stage>/<name>.py. |
recipe |
Code-free selection and configuration of those operators. |
Evaluation is never a selectable operator — it stays framework-owned. See the operator guide for authoring, validating, and composing operators from the CLI.
| Surface | Examples | Best fit |
|---|---|---|
| prompts and skills | system prompts, task skills, reusable instructions | policy and behavior improvement |
| harnesses and target code | tools, orchestration, agent implementation | agent engineering |
| selected evolution operators | analysis or mutation policy chosen by a recipe | controlled co-evolution |
Each recipe declares its mutable paths. The evaluator, the archive stamps, and the framework code itself stay outside that surface.
evolve view serves as a read-only view of one generated workspace, or as a
unified index of related workspaces with --catalog:
evolve view /path/to/experimentIt shows experiment health, generation progress, modifications, canonical performance, and paginated trial outcomes. When a workspace retains Harbor jobs, trial rows open Harbor's full trajectory, logs, verifier output, and artifacts on the same server. The viewer is a local inspection tool, not an authorization boundary.
See the experiment viewer guide for catalogs, remote (DevBox) tunnels, Harbor inspection, and troubleshooting.
| Choose this when you want to… | Recipe | Mutable surface |
|---|---|---|
| improve one candidate agent from its current best parent node | hill_climb |
target |
| evolve prompts and reusable agent skills | aevolve |
prompt and target skills |
| engineer the agent harness against evaluator feedback | ahe |
target |
| balance multiple objectives with minibatch validation | gepa |
prompt and task skill |
| co-evolve the target and selected evolution policy | hyperagents |
target and selected operators |
See the recipe guide for each strategy’s workflow and configuration.
RSIHub can improve a Skill as a complete package: instructions, references, and validation scripts evolve together while a frozen evaluator keeps the comparison honest. In this local Paper2Poster run, the same Codex model and paper prompt produced both LoRA posters below.
Across the four-paper showcase, the deterministic completion pass rate moved from 1/4 at Gen 0 to 4/4 at Gen 2. The trials ran concurrently through Harbor's local environment without Docker, retaining the full agent trajectories alongside evaluator-owned visual feedback. This is a representative evolution run rather than a broad benchmark; see the result snapshot, frozen rubric, and minimal seed Skill.
Run one of the supported recipes against the shared, content-pinned
Terminal-Bench 2.0 subset with ./scripts/setup_terminal_bench.sh and
./scripts/run_recipe_demo.sh. The
quick start guide covers prerequisites, credential setup,
supported recipe values, and launcher overrides.
Scores are percentages shown as seed → evolved agent. The train score is measured on the recipe's training split; the full benchmark score is measured across the complete benchmark. Parenthesized changes are purple for improvement, orange for no change, and red for regression. All runs use GPT-5.4 at high reasoning effort as the target model and a Codex mutate operator backed by GPT-5.4 at xhigh reasoning effort.
| Benchmark |
Target agent |
Method |
Train Score |
Full Benchmark Score |
|---|---|---|---|---|
| Terminal-Bench 2 50 train / 19 gate / 20 sealed |
MiniSWE | AHE | 70.0% → 74.0% |
56.2% → 65.2% |
| Hyperagents | 58.0% → 68.0% |
56.2% → 69.7% |
||
| A-Evolve | 66.0% → 68.0% |
56.2% → 69.7% |
||
| GEPA | 58.0% → 68.0% |
56.2% → 64.0% |
||
| Codex | AHE | 60.0% → 74.0% |
69.7% → 71.9% |
|
| Hyperagents | 58.0% → 72.0% |
69.7% → 70.8% |
||
| A-Evolve | 62.0% → 62.0% |
69.7% → 70.8% |
||
| GEPA | 68.0% → 68.0% |
69.7% → 69.7% |
||
| Tau³ Banking 50 train / 20 gate / 27 sealed |
MiniSWE | AHE | 20.0% → 34.0% |
27.8% → 28.9% |
| Hyperagents | 28.0% → 40.0% |
27.8% → 33.0% |
||
| A-Evolve | 26.0% → 26.0% |
27.8% → 27.8% |
||
| GEPA | 22.0% → 28.0% |
27.8% → 29.9% |
||
| Codex | AHE | 32.0% → 36.0% |
24.7% → 34.0% |
|
| Hyperagents | 34.0% → 36.0% |
24.7% → 28.9% |
||
| A-Evolve | 36.0% → 38.0% |
24.7% → 28.9% |
||
| GEPA | 28.0% → 30.0% |
24.7% → 33.0% |
RSIHub separates evolvable policy from the mechanism that judges it:
- The evaluator is frozen. Candidate agents cannot change the scoring contract.
- Mutation is bounded. Each recipe declares which target and operator paths may change.
- Evaluation is canonical. New generations are scored from a clean snapshot of the candidate agent.
- Evidence is durable. Reports recompute results from stamped
archive.jsonlrecords and Git generation tags.
Operators run as subprocesses rather than being imported into the framework process. See the design guide for the complete ownership model and invariants.
RSIHub is an active prototype for research and controlled experimentation. The current focus is reliable experiment mechanics, local-first workflows, and composable strategies for different agent-evolution scenarios.
- DeepSeek harness (
dsh) integration: a supported target agent alongside MiniSWE and Codex. - Richer trajectory analysis tooling: more analyze-stage operators that turn retained traces into actionable mutation feedback.
- Asynchronous evolution: let selection, rollout, and mutation overlap across generations instead of running in lockstep.
- Scenario-oriented recipes: opinionated recipes for more agent-evolution use cases.
- Local-first workflows: first-class Docker-free iteration for trusted local agents, prompts, and skills.
- More method integrations: additional evolution and search methods under the shared evaluator, lineage, and evidence contracts.
Working on or with RSIHub from a coding agent? Start here:
llms.txt— a machine-friendly index of the documentation following the llms.txt convention, with links to raw Markdown sources.AGENTS.md— repository instructions for coding agents, including the layered test policy (do not run the full suite after every edit).- Terminology — the glossary that defines the ubiquitous language used across the framework, recipes, and workspaces.
- Design and the architecture map —
required reading before non-trivial changes; the operator contract in
src/evolve/frozen/interfaces.pyis authoritative for interfaces.
| Document | Purpose |
|---|---|
| Documentation site | Installation, operation, concepts, guides, and reference. |
| Quick start | Recipe launcher setup and configuration. |
| Design | System model, ownership boundaries, and invariants. |
| Architecture | Enforced source-module map and line budgets. |
| Recipes | Supported evolution strategies. |
| Operators | Authoring, validating, and composing operators. |
| Experiment viewer | Read-only experiment inspection, DevBox tunnels, and Harbor drill-down. |
| Contributing | Development setup and repository conventions. |
| Releasing | Source, artifact, and publication checklist. |
RSIHub is licensed under Apache-2.0. See NOTICE for required attributions.

