Skip to content

Design and run an experiment

An experiment combines a test history, candidate policies, a reward, a budget and execution settings. Start with a small run you can inspect, then expand one question at a time.

Follow the experiment path

flowchart LR
    D[Choose and inspect data] --> S[Resolve a RunSpec]
    S --> R[Run candidates]
    R --> Q[Inspect results and recovery]
    Q --> E[Evaluate the comparison]
Step Guide What you decide
Prepare input Native input format, dataset workflows Test identity, build order, units and projection assumptions
Choose a method Policies and rewards Candidate families and the feedback each receives
Fix the experiment Configuration Budgets, seeds, packs, output and checkpoint settings
Handle variants Highly configurable systems Whole-set or per-variant state and shared execution groups
Run and inspect First experiment, workflow notebook Result paths, queries and continuation
Extend behavior Extensions and parallelism Hooks or custom policies with the existing runner
Compare fairly Evaluation guide Source eligibility, pairing and inference units

Three choices that affect interpretation

Budget. A ratio uses a fraction of the source build's total test duration; fixed_time uses seconds; subset_size limits the test count. A ratio derived from the recorded full suite is a post-hoc simulation assumption. Its feasibility as a pre-decision operational budget requires separate justification.

Repetition. Repeated seeds assess algorithmic randomness for the same source. Keep build, job, stage and repository-family identity; more seeds do not create more independent repositories.

Parallelism. Runner workers parallelize experiment execution. They do not turn a serial test-cost simulation into an observed parallel CI execution. See resource replay when you need explicit occupancy and topology.

For a runnable first configuration, use getting started. For a fair candidate grid, use comparable baselines.