rlmesh.RunResult
The result of a Model.run() eval.
RunResult(
episodes: tuple[EpisodeResult, ...] = (),
telemetry: tuple[TelemetryRow, ...] = (),
advisories: tuple[Advisory, ...] = (),
)Attributes
Methods
episodes
attribute[source]episodes: tuple[EpisodeResult, ...]telemetry
attribute[source]telemetry: tuple[TelemetryRow, ...]advisories
attribute[source]advisories: tuple[Advisory, ...]num_episodes
property[source]property num_episodes: intNumber of episodes in this result.
total_steps
property[source]property total_steps: intTotal env steps across all episodes.
mean_reward
property[source]property mean_reward: floatMean total reward per episode (0.0 when empty).
success_rate
property[source]property success_rate: float | NoneFraction of episodes the env reported as a success, or None.
Counts the env-reported task outcome only (Gymnasium info["is_success"]
/ ["success"], captured per episode in EpisodeResult.success).
None when the run is empty or any episode lacks that signal: an
unknown outcome is never inferred from terminated. Read
EpisodeResult.terminated yourself if a terminal state is the
metric you want.
format_telemetry
function[source]format_telemetry()The telemetry rows as an aligned text table.
One line per row – op, metric, unit, count, avg/p50/p95/p99 – so
print(result.format_telemetry()) answers where a run’s time went
(model forward, env step, serialization, queueing) without a profiler.