| held-out episodes | Recorded demonstrations kept OUT of training and used only for scoring. Every figure we publish is measured on the same held-out episodes of one dataset, so the numbers compare with each other and say nothing about a scene the dataset does not contain. | eval.dataset |
| artefact | One concrete conversion of a trained checkpoint — the directory a server actually loads. The same training run can produce more than one (the pipeline a runner serves, the conversion a downloader gets), and they can score differently, which is why a figure names the artefact it was measured on. | |
| stock checkpoint | A third-party checkpoint we did not train, served under its own stock-* id so a lease of ours never silently lands on it. The "vs stock" column compares our checkpoint with the one the same slot used to serve. | stock-* |
| seed | The number that fixes a stochastic sampler so a measurement can be repeated. A diffusion policy without one returns a different chunk — and a different score — every run, so a published figure names its seed or it cannot be checked. | eval.gates.ours.seed |
| spread | How far a figure moves when something harmless changes — another seed, another run. Two numbers closer together than the spread are not ranked, they are level; our deterministic policies have no spread and the preview model does. | across_seed_spread |
| policy | A trained model that maps what the robot sees and feels to what it should do next. agi.diy serves its own three for the SO-101 — an ACT, a SmolVLA and a world foundation model in preview — plus the stock third-party checkpoints under their own ids. | |
| model | A policy family bound to one robot, named family/robot. Canonical ids are ours: agi-act/so101, agi-smolvla/so101, agi-wfm/so101; the first-day ids act/so101, smolvla/so101 are aliases of them and still lease. The id you pass to POST /v1/sessions; the Session comes back with the canonical one. | |
| alias | An older model id that resolves to a canonical row: act/so101 → agi-act/so101. Leasing an alias never fails; Session.model is the canonical id. | aliases |
| checkpoint | The exact trained weights behind a model, pinned by Hub repo and revision. Task-specific: each was trained for one kind of task in one kind of scene. | |
| VLA | Vision-language-action policy: images, joint state and a task sentence in, actions out. SmolVLA is one. It was fine-tuned for one task, so a task sentence is not general instruction following. | |
| world foundation model | A model that predicts how a scene will evolve. agi-wfm/so101 (post-trained from nvidia/Cosmos3-Edge) is served as the flagship tier in preview, with its held-out numbers beside it; 32 actions at 15 Hz. | WFM |
| observation | One snapshot sent by the client: six joint values, two camera images and, for SmolVLA, the task text. | |
| feature | One named field of an observation, with a fixed shape and dtype, advertised in the lease. | observation.state, observation.images.<camera> |
| camera name | The short name of an image feature. ACT expects top + wrist; SmolVLA expects front + wrist; each 640×480 RGB. | top · front · wrist |
| action | One returned time step: six target joint values for one tick of the control loop. The billable unit. | |
| chunk | The sequence of actions one call returns: n rows × 6 joints, float32. The robot plays it back at the model's fps. | action chunk |
| open loop | Playing actions without new observations reaching the policy: what the arm does with the rest of its queue when the link drops (at most one chunk). | |
| starvation grace | How long LeRobot holds the arm on an empty queue before it ends the run: 3 s with agi rollout, 1 s by LeRobot's default. | --inference.action_starvation_grace_s |
| rename map | LeRobot's mapping from your camera names to the model's (observation.images.<yours> → observation.images.<model's>). agi rollout builds it; check the cameras: line it prints. | --rename_map |
| horizon | Rows per chunk: ACT 100, SmolVLA 50. Fixed at lease time. | action_horizon |
| fps | The rate the chunk is meant to be executed at: 30 actions per second, so 100 rows ≈ 3.3 s of motion and 50 ≈ 1.7 s. Not a request rate. | |
| call | One observation sent, one chunk returned. | |
| session | One lease on one warm policy process: groups calls, carries the bill and the trace. | ses_… |
| lease | What POST /v1/sessions does: reserves a ready slot for you until the session ends. | |
| slot | One warm policy process on a runner. A model is Ready when it has a free slot, Busy when all are leased. | |
| runner | A GPU machine that hosts slots and reports them every second. Several run at once; GET /v1/health names them with a role, demo or production, and the Session says which one served you. | |
| deployment name | The private address of your slot, handed out in the lease and retired when the session ends. | d_… |
| custom checkpoint | A checkpoint of your own on the Hugging Face Hub, leased by passing it as the model. The hf: prefix marks it as yours; act, smolvla or diffusion, safetensors only, at most 3 GB. Validated before anything is charged, and the commit is pinned. | hf:<org>/<repo>[@<revision>] |
| dynamic deployment | The slot a custom checkpoint gets: brought up for your session rather than kept warm in the pool, which is why it starts warming and why there is a per-account limit on live ones. | |
| tier | Which capacity a model is served from: default (agi-act/so101, agi-smolvla/so101 — our checkpoints), flagship (agi-wfm/so101, a preview listed with its held-out numbers) or custom (your own hf: checkpoint). The stock third-party checkpoints are their own stock-* rows (tier third-party), leased by name — a lease of ours never lands on them. It describes where the slot comes from, not how good the policy is. | tier |
| token | Billing unit. 1 token = 1 returned action = $0.0001. Not an LLM text token. | |
| usage credit | Your token balance shown in dollars: 200,000 tokens = $20, granted once to new accounts. Not cash, not withdrawable. A price may be written "$0.01 credit equivalent" (accepted, used in docs and dashboard). | |
| normalized units | LeRobot's default joint scale: arm joints −100…100 over the calibrated range, gripper 0…100. Every hosted checkpoint uses it, whatever the session label says. On a real arm this means LeRobot use_degrees=false (its current default is true). | |
| semantics | The units label carried in the lease. Two values are live: so101-normalized-v1 on agi-* rows and their leases, the legacy so101-degrees-gripper-percent-v1 on stock-* rows. The data is normalized under either; read units, never branch on this string. | so101-degrees-gripper-percent-v1 |
| policy time | How long the model's forward pass took for one call. | trace server_ms.policy |
| time on the runner | From the observation reaching the runner to the chunk leaving it: policy time plus decoding and post-processing. Excludes your network. The trace's rtt_ms is this number. | trace rtt_ms |
| round trip | Time from sending an observation to holding the chunk, as your client measures it: time on the runner plus the network both ways. Not recorded in the trace. | |
| trace | The recording of a session: every observation (state, task, camera frames) and every returned chunk, with timing. | |
| playback | Viewing a recorded trace. Free; nothing runs. | |
| run inference again | Feeds a trace's recorded observations to a policy in a new session. Billed like any session; no robot moves; output may differ. | POST /v1/sessions/:id/replay |
| public relay | How the runner's Zenoh endpoint reaches the public internet. The lease carries zenoh.endpoints, a list in preference order — measured 2026-10-26: our own TLS router first (tls/zenoh.api.agi.diy:7447, public CA, nothing to configure), the bore tunnel second. Walk the list and use the first that connects; entries are added and removed without an SDK release, so never hard-code one. | |
| browser wire | The WebSocket data plane a page uses instead of Zenoh: signed URL from GET /v1/sessions/:id/wire, JPEG observations in, chunks out, billed identically. Open within 120 s, 8 MB a message, an observation at least every 120 s. | agi-wire/1 |
| simulation | The browser SO-101 at /play: MuJoCo physics, rendered camera images, real policy calls. Simulated inputs, live policy output. | |
| test call | One billed call with synthetic inputs (black images, synthetic state). Tests the connection and inference, not task success. | agi run <model> --probe -n 1 |