| 115 | |
| 116 | |
| 117 | def parse_args(): |
| 118 | p = argparse.ArgumentParser() |
| 119 | p.add_argument("--env", choices=list(ENV_IDS), default="montezuma_goexplore", |
| 120 | help="which game to explore") |
| 121 | # --- reproducibility / run-management flags (harness run contract) --- |
| 122 | p.add_argument("--seed", type=int, default=None, |
| 123 | help="seed for the action RNG (the emulator itself is deterministic)") |
| 124 | p.add_argument("--total-frames", type=int, default=None, |
| 125 | help="override the in-file TOTAL_FRAMES budget (agent steps actually executed)") |
| 126 | p.add_argument("--n-workers", type=int, default=None, |
| 127 | help="override the in-file N_WORKERS (parallel explorer processes)") |
| 128 | p.add_argument("--run-dir", type=str, default=None, |
| 129 | help="run directory: write metrics.jsonl / ckpt / final.json here") |
| 130 | p.add_argument("--ckpt-every", type=int, default=None, |
| 131 | help="periodic checkpoint interval in agent steps (resume-safe)") |
| 132 | p.add_argument("--resume", type=str, default=None, |
| 133 | help="'auto' (run-dir/ckpt/latest.pt) or a checkpoint path") |
| 134 | return p.parse_args() |
| 135 | |
| 136 | |
| 137 | def make_restore_env(env_key): |