YAML Param Schema Format
The parameter schema tells the OmniLoop dashboard what controls (sliders, toggles, text inputs) and readouts to render for your application. This means no manual UI code (like App.jsx edits) is needed.
When you use the TrainingLoop API, this schema generation is handled under the hood. However, you can also define it explicitly via a YAML file or programmatically.
When to use
Section titled “When to use”Use explicit schemas when you are building a custom integration using the Raw SDK Primitives and need to define how the dashboard should render your state and mutations.
YAML Format
Section titled “YAML Format”Load your YAML schema at startup with load_param_schema("params.yaml").
params: - name: learning_rate # key used in get_mutations()/publish_telemetry_raw type: float # float | int | bool | string kind: slider # slider | toggle | readonly | text min: 0.00001 max: 0.01 step: 0.00001 default: 0.0003 label: "Learning Rate" # optional, defaults to `name` group: "Optimizer" # optional section heading in the dashboard - name: reward_mean type: float kind: readonly # display-only metric, no mutation controlField Reference
Section titled “Field Reference”| Field | Required? | Description |
|---|---|---|
name |
Yes | Key used in mutations and telemetry payloads. |
type |
Yes | How the dashboard parses the value: float, int, bool, or string. |
kind |
Yes | Control type: slider (requires min/max/step), toggle (for bools), readonly (display-only), or text (free-form entry). |
min, max, step |
No | Required if kind is slider. Defines the range and granularity. |
default |
No | Initial value shown in the dashboard before the first telemetry frame arrives. |
label |
No | Display name in the UI. Defaults to the name field if omitted. |
group |
No | Section heading to group related parameters together visually. |
Programmatic Alternative
Section titled “Programmatic Alternative”If you prefer defining schemas in code rather than YAML, use the declare_param function:
from omniloop import declare_param
declare_param( "learning_rate", type="float", kind="slider", min=0.00001, max=0.01, step=0.00001, default=0.0003, label="Learning Rate", group="Optimizer")