Run it
Run it
Choose manual practice, fixture reproduction or a model attempt, then retain the record appropriate to that path.
A full run gives an agent the current packet at each checkpoint, accepts or refuses its proposed actions, and carries accepted obligations through the configured observation window to a final result. The registered engineering paths use twenty daily checkpoints. A launch, a completed inference call and a graded report are intermediate events; completion requires the retained path and its result.
Choose the execution path
| Path | Who makes decisions? | What it establishes |
|---|---|---|
| Practice desk | You inspect the practice packet and choose actions in the browser. | The consequences of your accepted practice actions. It does not call a model or create model results. |
| Evaluator CLI | A supplied report or action file drives the evaluator. | Fixture grading, settlement and replay under the selected inputs. The CLI does not launch a model. |
| Amplio model worker | An isolated model worker reads sources and writes a typed report and action proposal. | An actual attempt, with accepted transactions only if the evaluator accepts its submission. Inference and sandbox execution can incur costs. |
Build the static publication
Use Node >=22.12.0 and npm >=9.6.5. Run the following from the Amplio repository root. The repository carries a reviewed package-lock.json, so install with npm ci; it fails rather than drifting from the pinned versions.
cd evals/structured-credit-trader/back-to-back-funding-book/site
npm ci
npm run build
npm run preview -- --port 4321Open http://127.0.0.1:4321. Installation and the first runtime vendoring step can require network access. The generated public pages and browser engine load local assets only.
npm run build runs these stages in order. Run them separately only when inspecting a stage; a second full build recompiles its artefact.
npm run build:engine
npm run build:runs
npm run build:og
npm run astro -- buildbuild:enginecompiles the canonical Python sources under the pinned Pyodide runtime and writespublic/engine/book-engine.zipwith its manifest. The public reference input is part of the approved bundle.build:runsloads that compiled artefact, executes the reference and adversarial fixtures, and writes run JSON plus observed execution traces with portable command provenance. It must not silently substitute host-Python calculations.build:ogrenders local PNG metadata images. Astro then prerenders the full MDX articles and all static pages.
The engine manifest records the artefact hash and runtime versions. The run index records each fixture's hash and execution time. Inspect the recorded scores and book through the Run register. Trace command paths are normalised for reproduction; runtime output is not rewritten to disguise host paths.
Inspect the Python reference CLI
This is evaluator-side source reproduction. It exposes gold reports and belongs outside any protected worker container. It is also a different execution path from the compiled artefact used by the published viewer.
cd evals/structured-credit-trader/back-to-back-funding-book
python3 -m venv .venv
.venv/bin/python -m pip install -r requirements.txt
.venv/bin/python src/grade_fixture.py --emit-gold W3 --output /tmp/btb-W3-reference.json
.venv/bin/python src/grade_fixture.py --grade /tmp/btb-W3-reference.json --episode W3A constructed maturity-protection mutation can be emitted and graded with the same explicit episode selector:
.venv/bin/python src/grade_fixture.py --emit-mutation M4_fully_hedged_tail --episode W3 --output /tmp/btb-W3-M4.json
.venv/bin/python src/grade_fixture.py --grade /tmp/btb-W3-M4.json --episode W3Read the returned status and qualification verdict before the fixed-denominator score. A malformed candidate has no score. A missing or invalid reference is UNSCORABLE, also without a score. The mutation is an intentional adverse fixture, not a model failure.
Never mount this evaluator package, its gold recipes, or its mutation files into a worker. A folder under the same operating-system user is not an isolation boundary.
Evaluator-owned desk runtime
The evaluator-owned desk commands below process supplied reports and actions. The example uses the public FUND_01 practice family. Generate the family, initialise its history and export its current packet before preparing a submission.
cd evals/structured-credit-trader/back-to-back-funding-book
.venv/bin/python src/family_generator.py --output /tmp/btb-families --seeds 1 2
.venv/bin/python src/desk_runtime.py init --family-root /tmp/btb-families/FUND_01/seed-1 --source-root . --db /tmp/btb-FUND_01.sqlite --observation-end-day 20
.venv/bin/python src/desk_runtime.py packet --family-root /tmp/btb-families/FUND_01/seed-1 --source-root . --db /tmp/btb-FUND_01.sqlite --output /tmp/btb-packet.json
.venv/bin/python src/desk_runtime.py submit --family-root /tmp/btb-families/FUND_01/seed-1 --source-root . --db /tmp/btb-FUND_01.sqlite --input /tmp/btb-submission.json
.venv/bin/python src/desk_runtime.py replay --family-root /tmp/btb-families/FUND_01/seed-1 --source-root . --db /tmp/btb-FUND_01.sqlite
.venv/bin/python src/desk_runtime.py result --family-root /tmp/btb-families/FUND_01/seed-1 --source-root . --db /tmp/btb-FUND_01.sqlite --finalizeinitcreates the history and fixes the observation horizon.packetexports the current read-only worker packet.submitvalidates the supplied batch and settles accepted actions.replayis built to reconstruct the book independently from receipts.resultreports qualification and score;--finalizecloses the run.
Exit code 1 marks a rejected batch, candidate error or non-scoreable run; 2 marks UNSCORABLE. The command reference is in the daily-book contract.
The submission file in this example must contain your current-parent report and permitted quoted actions; it is not generated by these commands. Accepted escalation can create a pending approval, a later dated response can resolve it, and a separately accepted execution can consume that authority. Each step still has to meet its own cash, title, timing and capacity constraints. Replay is built to verify the resulting receipts against their sources.
The actual Amplio model worker
The bounded launcher is tools/run_worker_smoke.py in the evaluator package. It binds a source-current family packet and engine, then uses src/worker_boundary.py to supervise Amplio inside an isolated Modal sandbox. Amplio's standard_agent receives the current packet, public sources, calculation tools and retained work. It writes a typed action-and-report artefact; the host evaluator checks that artefact and commits only accepted actions. A subsequent attempt receives the updated packet and history, not the evaluator's gold report or future events.
The host controller keeps the budget ledger outside the worker and retains proposals, receipts, termination reasons and available transcripts. Completion, cost and runtime must be reported from those records.
A bounded engineering or public-practice smoke can launch independently of practitioner studies and exhaustive family certification. It still requires a current source-bound packet and engine, the isolated runtime, an explicit unconsumed budget authorisation and a declared scope that does not imply protected-study admission or completed certification.
--self-check exercises the launcher's deterministic budget controls without cloud or model calls. --execute is the paid path, not a dry run. It consumes a single-use authorisation claim, requires a new private output directory and may spend on inference and sandbox compute. A crash does not reset the claim or renew the allowance; unresolved provider calls retain their reservations. The existing consumed authorisation is not permission to retry.
Latest retained attempt: worker limit, no submission
On , attempt 07 / qyaws7fs reached its 1,200-second worker limit while analysing the world and documents. The decision file was still empty. The evaluator received no submission: zero accepted actions, zero settled days and no financial score.
All 54 completed native inference calls were delivered. Call 55 was cancelled during supervisor cleanup and labelled request_timeout; that label does not establish a provider timeout. The retained worker exit code 124 identifies the worker deadline. Its unresolved call reservation remains a budget liability, not a settled charge. Attempts 03, 05 and 06 also ended without accepted actions or settled days. The dated record identities retains the selected result fields and source hashes.
Earlier incident: host hibernation
The retained paid-worker-smoke-01-outcome.json records one attempt launched on 19 September 2026. The host hibernated while the worker was running, and the remote sandbox expired before any action was accepted. There were zero completed attempts and zero accepted actions; the second authorised attempt within that launch was not executed. The worker transcript could not be exported.
Two native inference calls completed with validated usage before the interruption. They establish that the route was used, not that the agent completed the funding task. The third call's cost is not yet settled. The outcome records an infrastructure interruption. A subsequent launch was refused on battery power before its authorisation claim or inference.
Modal worker boundary
These transport commands run from the Amplio repository root. They create and inspect the isolated worker, whose network is blocked and whose packet is staged by the worker boundary. Transport and inference have separate cost controls; starting transport alone does not submit the funding task to a model.
uv run --no-project --with-requirements sandbox/requirements.txt python -m sandbox.modal_runner build
uv run --no-project --with-requirements sandbox/requirements.txt python -m sandbox.modal_runner launch --packet /tmp/btb-packet-dir --record /tmp/btb-sandbox.json --run-id FUND_01-seed-1
uv run --no-project --with-requirements sandbox/requirements.txt python -m sandbox.modal_runner status --record /tmp/btb-sandbox.json
uv run --no-project --with-requirements sandbox/requirements.txt python -m sandbox.modal_runner exec-worker --record /tmp/btb-sandbox.json -- python3 -c 'print(1)'
uv run --no-project --with-requirements sandbox/requirements.txt python -m sandbox.modal_runner checkpoint --record /tmp/btb-sandbox.json
uv run --no-project --with-requirements sandbox/requirements.txt python -m sandbox.modal_runner resume --record /tmp/btb-sandbox.json --new-record /tmp/btb-sandbox-2.json
uv run --no-project --with-requirements sandbox/requirements.txt python -m sandbox.modal_runner stop --record /tmp/btb-sandbox-2.jsonbuild prepares the image; launch writes a private record used by subsequent commands. checkpoint saves the work volume, and resume restores it into a clean worker. Keep records and connection tokens private. The example prints a constant through exec-worker to exercise transport.
Inference is disabled by default on this transport path. The --model identifier requires a host controller and separate budget authorisation to enable calls; --fixture selects a deterministic proof fixture.
We have no completed model run from which to estimate total cost or wall-clock duration. Set both resource limits before execution, and report actual usage alongside interruptions. The limitations page owns the dated study and runtime status.
What a reproducible study must retain
Freeze the exact model identifier, provider, harness version, toolchain, prompts, family split, information boundary, budget and intervention policy before execution. Retain all outcomes, including crashes and restarts. Record actual token use and billing before claiming costs.
Practitioner runs require real, consented practitioners using identical affordances. Candidate comparison, calibration and RL use cannot be inferred from these public fixtures. See the missing evidence and FAQ.