These docs describe unreleased changes on main. See the latest release.

rlmesh.recorder.WorkloadRecord

classfrom rlmesh.recorder import WorkloadRecord[source]

One model x env x task cell: the episodes from one or more run calls.

WorkloadRecord(
    model: str,
    env: str,
    task: str,
    config: dict[str, Any] = dict(),
    episodes: list[EpisodeRecord] = list(),
)

task is the natural workload key the dashboard groups by; it defaults to env when the caller does not distinguish tasks within an env. config is free-form caller metadata (seeds, horizon, notes) carried verbatim.

model

attribute[source]
model: str

env

attribute[source]
env: str

task

attribute[source]
task: str

config

attribute[source]
config: dict[str, Any]

episodes

attribute[source]
episodes: list[EpisodeRecord]

mean_reward

property[source]
property mean_reward: float

Mean reward over metric-counted episodes (0.0 when none).

success_rate

property[source]
property success_rate: float | None

Fraction of metric-counted episodes the env reported as a success.

None when no episode counts or any counted episode lacks the env-reported outcome, the same rule as rlmesh.RunResult.success_rate, so an SDK metric and an uploaded successRate cannot drift apart.

total_steps

property[source]
property total_steps: int

Total env steps across all episodes (counted or not).

to_dict

function[source]
to_dict() -> dict[str, Any]

JSON-native workload record with computed metrics and its episodes.