Skip to content

Operator overview

Operators are the composable stages of an RSIHub generation. Their names in this reference are identical to the keys used under operators: in evolve.yaml.

select
  → rollout
  → trace_analyzer
  → meta_agent
  → validate
  → novelty
  → canonical evaluation
  → gate
  → record
  → reflect

Optional stages are skipped when their configuration block is absent. Canonical evaluation is framework-owned and is not an operator.

Operator Required Responsibility
select yes choose valid parent generations
rollout yes produce training behavior and execution evidence
trace_analyzer no transform rollout cases into bounded mutation feedback
meta_agent yes edit the candidate inside the declared surface
validate no run method-specific checks before canonical evaluation
novelty no reject candidate edits that duplicate prior work
gate yes decide whether a canonical evaluation is parent-eligible
record yes attach method-specific evidence to the archive
reflect no derive reusable insights from verified history

Active and available implementations

After initialization:

operators/<name>.py       active implementation
library/<name>/*.py       available alternatives
operators/README.md       generated active/alternative summary

Inspect the active configuration with:

./evolve operator list .
cat operators/README.md

Each operator block may select a variant or an explicit script, but not both. Recipe-local variants take precedence over the shared library:

operators:
  select:
    variant: greedy
    timeout_s: 600

Custom implementations

Start from library/<name>/_skeleton.py and implement the matching interface in evolve.frozen.interfaces. Put a recipe-local implementation at:

my-recipe/operators/<name>/<variant>.py

Then select it by filename stem:

operators:
  <name>:
    variant: <variant>

Operators execute as subprocesses. They should write diagnostics beneath their generation run directory and return the typed result for their interface. They must not write evaluator truth, generation tags, or archive outcomes directly.