TrajectoryUtilityDefinitionConfigurationBase
Shared capability flags for trajectory utility-kind configs.
Selection, statistics, and checkpoint-snapshot code check these flags instead of branching on isinstance/type-name chains, so a new utility kind only needs to override the flags it actually has -- no existing dispatch site needs editing. Behavioural differences (the actual per-cell score formulas, outcome recording, snapshot rendering) live in per-kind registries keyed by kind (see Selection.py's _CELL_SCORERS and CaptureProcessor.py's outcome recorders), which mirrors MidpointStartPolicy.py's _BUILDERS pattern; these flags are the purely declarative subset that config-level validators and table-building code need without importing that runtime machinery.
Properties
is_backpropagated
is_backpropagated: boolWhether this is a graph-backpropagated utility (per-recording reward/penalty metadata).
is_cell_scoring
is_cell_scoring: boolWhether TrajectoryUtilityCatalog.cell_value computes this utility's score directly.
triggers_successor_route_value_table
triggers_successor_route_value_table: boolWhether this utility's presence requires the shared successor-route-value table (local_progress).
uses_cell_key_grouping
uses_cell_key_grouping: boolWhether this utility's cell keys must match its selection's bucket_by grouping.
wants_competence_table
wants_competence_table: boolWhether this utility needs a per-cell EMA outcome table (competence/local_progress).
wants_route_cost_table
wants_route_cost_table: boolWhether this utility needs a per-cell min-aggregated route-cost table (cost_aware).
Methods
competence_table_aggregator
competence_table_aggregator() -> TrajectoryCellValueAggregatorConfiguration | NoneBuild this utility's competence-table aggregator, or None when it has none.
Values
cell_key_prefix
cell_key_prefix: str = ''Prefix stripped from the selection's bucket-key field names before per-cell table lookups. Use "start_" when a cell-scoring utility scores a selection bucketed by start_* metadata (for example BC re-grouping segments by start cell), since the per-cell tables are keyed by the plain cell fields. Empty when the bucket key already matches the table (for example midpoint selection). Only read for utilities with uses_cell_key_grouping.