Skip to content

Configuration & CLI ​

Start from an existing YAML example, then override the fields you need. Run commands from the repository root so relative data and output paths resolve consistently.

The configuration blocks ​

yaml
run:
  output_dir: ../runs
agent:
  name: miniagent
  max_turns: 6
  llm:
    model_name: gpt-5-mini
    api_key: null
    base_url: null
algorithm:
  name: skillopt
  num_epochs: 1
  max_steps: 1
  batch_size: 2
  reflection_minibatch_size: 2
  edit_budget: 1
  worker:
    type: llm
    llm:
      model_name: gpt-5-mini
      api_key: null
      base_url: null
benchmark:
  name: searchqa
  data_path: ./examples/data/quickstart.jsonl
  split:
    train: 0.5
    dev: 0.25
    test: 0.25
  seed: 42

This is the bundled quickstart. Method-specific fields belong under algorithm; benchmark-specific fields belong under benchmark.

Block / fieldWhat it controls
run.output_dirParent directory for experiment records.
run.mode, run.snapshotSaved-Snapshot evaluation when selected through configuration. See evaluation.
agent.nameTarget harness: miniagent, claude_code, or codex.
agent.llm.*Target model, credentials, endpoint, and supported request options.
agent.max_turnsTarget execution budget, subject to harness support.
agent.source_dirAlternate resource source for a harness.
algorithm.nameRegistered RSI method.
algorithm.worker.typellm for proposals, or agent for a native harness Worker (selected with name).
algorithm.worker.llm.*Worker's independent model and connection settings.
benchmark.name, data_pathBenchmark adapter and optional local data.
benchmark.split, split_counts, seedExperimental sampling and split policy supported by the adapter.

See algorithm settings and the benchmark configuration index for fields specific to a method or task.

Configure Target and Worker separately ​

The YAML loader reads literal values. Expand environment variables in the shell when passing credentials:

bash
flashrsi run --config examples/quickstart.yaml \
  --model "$TARGET_MODEL" \
  --worker-model "$WORKER_MODEL" \
  --set agent.llm.api_key="$TARGET_API_KEY" \
  --set algorithm.worker.llm.api_key="$WORKER_API_KEY" \
  --set agent.llm.base_url="$TARGET_BASE_URL" \
  --set algorithm.worker.llm.base_url="$WORKER_BASE_URL"

For example, --agent.llm.api_key "$TARGET_API_KEY" is equivalent to its --set form. Overrides are parsed as YAML values, including numbers, booleans, lists, and null. Saved configuration records redact known credentials.

Judge models, user simulators, and postprocessing models have their own configuration where required. Changing the Target does not configure these roles. See the launcher role guide.

CLI options ​

Run evolution ​

bash
flashrsi run --config examples/quickstart.yaml [OPTIONS]
OptionMeaning
--config PATH, -c PATHRead a YAML configuration.
--algorithm NAME, --algo NAMESelect the RSI method that proposes and evaluates candidate edits. See algorithm integrations.
--agent-harness NAME, --agent NAMESelect the Target harness to evolve and execute. See harness integrations.
--benchmark NAMESelect the task suite and scoring protocol. See the benchmark configuration index.
--model NAMESet the Target model used to solve benchmark tasks.
--worker-model NAMESet the independent Worker model used to propose edits.
--output-dir PATHChoose the parent directory for run records and artifacts.
--set PATH=VALUEOverride any dotted configuration field, including algorithm.worker.type and algorithm.worker.name. Repeat as needed.
--path.to.key VALUEAlternative dotted-field syntax.
--check-onlyCheck startup without model calls; may download data.
--prepare-onlyCreate a redacted configuration directory without checking runtime readiness.
--help, -hPrint current CLI help.

Evaluate a Snapshot ​

bash
flashrsi evaluate --config examples/evaluate_hotpotqa.yaml \
  --snapshot /path/to/snapshot.json [OPTIONS]

evaluate shares --config, --agent-harness (or the compatibility alias --agent), --benchmark, --model, --output-dir, --set, dotted overrides, and --check-only. It requires --snapshot PATH and does not use the evolution-only options.

Change the experiment ​

To switch the quickstart from skill learning to instruction search:

bash
flashrsi run --config examples/opro.yaml \
  --agent-harness miniagent \
  --benchmark searchqa \
  --set benchmark.data_path=./examples/data/quickstart.jsonl

Supply each role's model and credentials as above. Prefer the destination algorithm's example so its Worker type, budgets, and parameters stay together. Registration alone does not imply that every algorithm, harness, and benchmark combination is compatible.

For programmatic usage, see the Python API.

Released under the Apache License 2.0.