SDK 5 migration: environment, not agents¶
SDK 5 removes the research application that SDK 4 embedded. Live client interfaces, matching/accounting, event ordering, pending actions and array interfaces remain. The public wire protocol and TUI version are unchanged.
| SDK 4 surface | SDK 5 replacement |
|---|---|
fastboxex.research, ExperimentSpec, run_campaign, load_experiment |
Research-owned application code, not an SDK alias |
NativeExperiment, run_pilots and native reference components |
External agents orchestrated through MarlSimEnv |
fastboxex / fb-research research commands, python -m fastboxex |
Research launchers/commands |
SDK research / torch / plots extras |
Application-owned dependencies |
Agent config policy, reward, algo metadata |
Application configuration/manifest |
| SDK/world checkpoint schema 1 | Schema 2; no automatic old-world/learner migration |
| Implicit full journal | Default trace_capacity=0; opt in with a bounded capacity |
Use next_decision() and submit_decision() directly. Applications now own every
agent, reward, optimizer, episode/campaign, metric, report and figure; they must not
reimplement the exchange or event scheduler.
Configure initial agent mode or call set_agent_mode(id, "training" | "inference").
The mode is snapshotted in each request. A switch affects future requests, not
issued requests or pending actions. The caller enforces no learning in inference.
reset() restores initial modes. This is not the asset engine's simulation mode.
The public Python submission still accepts action mappings. Internally they now cross directly to Rust rather than through JSON. Unknown fields and invalid controls fail without consuming the active request. Delivered asset keys are Python integers.
Use evaluator_state() only in the controller/reporting code for exact actual
accounts, venue cash and counters. Agent inputs remain delivered observations and
events; no evaluator truth is inserted at episode termination.
Retain old environments for old runs/checkpoints. Do not replace SDK 4 binaries in an existing continuation environment or relabel old results as SDK 5 qualification. See the MARL guide for the current contract.