Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rollouts

Scope

This repository contains experimental code and selected trajectories for automatic task discovery, task generation, execution, and verification in interactive environments. It is a selective code release, not a copy of the private research workspace or its Git history.

The retained code covers AppWorld state normalization and causal checks, HydroGym numerical diagnostics, and deterministic scheduling for a rejected AppWorld semantic-prior cycle. The artifact set includes one complete AppWorld causal comparison and normalized public records for one strongly verified but solver-easy AppWorld task.

Current status

This is work in progress. It does not provide a validated general task factory. Some modules came from failed or pre-execution attempts and are retained because the observed failure defines a useful regression or boundary. The machine-readable attempt ledger uses only executed, component_tested, and pre_execution_rejected as execution classifications.

Attempt ledger

Attempt Environment and approach Classification and actual run What passed What failed and output Public locations Strongest limitation
Archived generic factory Heterogeneous plugin environments; adapter-backed execution and verification executed: end-to-end task execution, replay, admission, and data export paths Execution, final-state verification, replay, counterfactual checks, alternate routes, SFT and RL record construction Task meaning, goals, and verifier semantics remained encoded in adapters and authored grammars; prior runs produced records, but none are republished here Ledger Generic infrastructure did not establish automatic semantic task discovery.
appworld-accept-seed-17-v2 AppWorld; retrospective induction, native replay, falsification, alternate-route checks, hidden verifier, and witness-hidden solvers executed: one derived Phone account and contact task passed the complete native and solver path Two positive replays, one alternate route, six counterfactuals, three action deletions, access isolation, and 8 solver verifications One task and 21 complete public trajectory records were produced; all 8 solver attempts passed, outside the useful RL band Attempt, task and trajectories One 8/8 task establishes correctness controls, not useful difficulty or population yield.
appworld-causal-frontier-reset-correction-seeds-149-151-157-v1 AppWorld; execution-updated causal selection against schema novelty executed: three matched causal and baseline seeds, with replay and predecessor omission checks Causal passed 3/3 with 9 strong edges and 9 durable path effects; baseline passed 0/3 Every causal seed found the same Gmail lifecycle; no task, verifier, solver, reward, or training population was produced Code, complete executed traces, tests The comparison is small, structurally duplicated across seeds, and taskless.
appworld-ordering-development-seeds-5-7-v4 AppWorld; prospective specification against retrospective induction under a lifecycle-aware successor executor executed: contaminated development seeds only; 97 responses and 44 public actions across three traces Lifecycle grounding, exact snapshot recovery, local behavioral tests, and durable effects across several apps No candidate survived freezing, so no replay, verifier, solver, reward, or task was produced; the executed contract also recorded the wrong checksum Ledger, state code Mostly independent mutations and weak relations did not form intervention-supported multi-step candidates.
hydrogym-native-preflight-seed-17-v3 HydroGym; AURORA-style open-loop coverage against uniform random search executed: two 64-sequence arms and native validation Coverage won both recorded descriptor statistics; five replays, eager execution, falsifiers, alternate acceptance, and shorter search passed The candidate failed the dt=0.005 diagnostic and exceeded its witness margin; no solver ran and no accepted task population was produced Attempt, diagnostics, tests The selected effect was numerically fragile.
hydrogym-robust-native-seed-23-v2 HydroGym; three-context stability screening and held-out numerical validation executed: internally complete development reproduction on an already observed seed Held-out timestep, six context checks, five replays, metric agreement, falsifiers, and alternate acceptance Only 1/4 action ablations was essential and 56/64 shorter controllers passed; no accepted population or solver trace was produced Ledger, diagnostics The task was causally trivial and the rerun was seed-contaminated.
hydrogym-metra-stability-dev-seed-101-v1 HydroGym; METRA-style learned metric against a fixed public-state metric executed: one CPU/x64 qualification Formula and component tests, 264 finite intervals, two finite learner updates per arm, and failure localization Both arms became nonfinite at DNS step 1105 before evaluation or task induction; no task or trajectory population was produced Attempt, diagnostics The shared numerical profile failed before the mechanisms could be compared.
appworld-semantic-prior-stage1-cycle-01 AppWorld; three paired semantic-prior arms pre_execution_rejected: static implementation and 243 private component tests only Review exposed chronology, isolation, accounting, and artifact-consumer defects before an environment action Maximum liability exceeded the cycle cap, provider input counting was not authoritatively bounded before requests, and no coherent end-to-end consumer existed; no task or trajectory population was produced Attempt, schedule code, tests Passing component tests did not establish an executable experiment or a semantic-prior result.

The five-environment census record is a source and prior-evidence census, not an executed experiment attempt. It reviewed AppWorld, ToolSandbox, WebArena-Verified through BrowserGym, AndroidWorld, and SWE-Gym without running an environment.

Defensible findings

  • The earlier generic infrastructure executed and verified tasks, but task semantics remained encoded in adapters and verifier grammars. It did not establish automatic semantic task discovery. See the attempt ledger.
  • Schema novelty was insufficient in the recorded AppWorld comparison. The causal explorer passed 3/3 seeds against 0/3 for the comparator, but all three runs found the same Gmail lifecycle and produced no accepted task population. See the published metrics and complete traces.
  • The single strongly admitted AppWorld task was solved 8/8 times. Strong admission therefore did not establish useful difficulty. See the task record and solver trajectories.
  • Fresh-process replay, reset discipline, state normalization, hidden-verifier isolation, alternate-route acceptance, and deletion counterfactuals were necessary correctness controls in the examined AppWorld path. The retained mechanics and regressions are in AppWorld code and tests.
  • HydroGym exposed independent numerical and replay diagnostics, but the examined configurations were numerically fragile, causally trivial, or development-seed contaminated. See the structured result and diagnostic code.
  • The semantic-prior cycle was rejected before scientific execution because cost and source-closure gates failed. It provides no arm comparison. See the attempt record.
  • Component tests did not establish a coherent end-to-end experiment. The published semantic-prior code is classified as component-tested mechanics from a pre_execution_rejected attempt, not executed research code. See its tests.
  • AppWorld was the strongest substrate in the five-environment census. ToolSandbox remained a promising source-qualified preflight candidate, not a qualified result. See the census record.

Methodological lesson

Every generated task must answer four separate questions:

  1. Feasibility: Is the outcome reachable through native actions?
  2. Meaning: Is the outcome worth expressing, and does the instruction denote it?
  3. Correctness: Does the final native state satisfy the stated outcome without disallowed collateral effects?
  4. Learning value: Is the task useful for the target model population rather than uniformly trivial or impossible?

Success on one question does not imply success on another. Reachability does not supply meaning. Verification does not establish difficulty. Difficulty alone does not establish training value.

Trajectories and structured records

trajectories/appworld-causal-frontier-reset-correction/ contains the complete executed traces, replays, edge checks, effects, summaries, reset result, metrics, and source audit from the causal comparison. Its 46-file publication tree has a manifest covering the other 45 files by byte count and SHA-256. The private frozen contract is excluded, and the tests verify every published member.

trajectories/appworld-accepted-task/ contains one task record, one complete taskless source trajectory, 12 complete native validation trajectories, and 8 complete public solver trajectories. Each trajectory preserves public model outputs, tool calls, tool results, initial and final database digests, final output, and verifier outcome. Synthetic password and access-token values are consistently redacted without changing the action structure or verifier result. AppWorld databases are not distributed.

HydroGym root trajectory files were not published because they were indexes into large omitted native arrays and runtime trees. Publishing those indexes as complete trajectories would be misleading. The executed outcomes are retained as structured attempt records instead.

Code layout

  • src/rollouts/appworld/: canonical serialization, owned-cache cleanup, normalized SQLite capture and deltas, content-addressed snapshots, reference checks, public binding, strong-edge construction, path selection, and predecessor omission checks.
  • src/rollouts/hydrogym/: finite-value serialization, native action checks, DNS accounting, array diagnostics, and first-nonfinite localization.
  • src/rollouts/semantic_prior/: canonical serialization, deterministic seed construction, and a fixed paired schedule with 32 candidates per arm.
  • tests/: behavior regressions plus JSON, JSONL, manifest, redaction, and trajectory-completeness checks.
  • attempts/ and trajectories/: structured outcomes and publication-safe executed traces.

Portability and provenance

The Python package does not import AppWorld or HydroGym. Its only runtime dependency is NumPy for the retained numerical diagnostics. Environment-facing code was narrowed to portable mechanics with standalone tests.

The compatible upstream revisions used by the experiments were AppWorld a072b7a86e7c1d5b1d7175659d750ebb9b79f10a and HydroGym 4ab9854dea3d84e38a59c25e0f5835a00cf8225f. AppWorld is Apache-2.0 and HydroGym is MIT licensed. No upstream source, database, model, checkpoint, or environment data is copied into this repository.

All published source is original experiment code or a narrowed version of it. The repository uses the MIT license. No third-party notice is required for the selected files because third-party source and data are not redistributed.

Usage

From a fresh clone with Python 3.11 or newer:

git clone https://github.com/lightonai/rollouts.git
cd rollouts
python3 -m venv .venv
. .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -e '.[test]'
python -m pytest -p no:cacheprovider

The lock file can be used instead when uv is installed:

uv sync --extra test --frozen
uv run python -m pytest -p no:cacheprovider

Example: construct the fixed 96-candidate paired schedule without an environment or private workspace:

python - <<'PY'
from rollouts.semantic_prior.schedule import build_population_schedule

schedule = build_population_schedule("0" * 64, ["gmail", "phone"])
print(len(schedule.blocks), len(schedule.candidates))
PY

Expected output:

32 96

Limitations

  • No state-of-the-art claim.
  • No scaling claim.
  • No model-capability result.
  • No claim that automatic task discovery has been solved.
  • No accepted large task population.
  • No successful semantic-prior comparison from the rejected cycle.
  • Some code represents failed or pre-execution attempts and is retained because the failure is informative.
  • The AppWorld traces use database digests rather than redistributing databases.
  • The HydroGym learners, checkpoints, and large native trajectories are not included.

About

Experimental code and selected traces for automatic task discovery and verification

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages