pub trait PlannerCycleObserver {
// Required methods
fn observe_percept(
&mut self,
step: usize,
observations: &[u64],
reward: Reward,
) -> Result<(), PlannerAgentError>;
fn observe_action(
&mut self,
step: usize,
action: Action,
provenance: PlannerActionProvenance,
) -> Result<(), PlannerAgentError>;
fn end_cycle(&mut self, step: usize) -> Result<(), PlannerAgentError>;
}Expand description
Observer strategy for ordered planner-cycle telemetry.
Implementations receive a controller’s native event ordering, which is one of:
- decision-percept: the percept for step
t, then actiont; after the final scheduled action, one terminal successor percept at stepN = learn_cycles + eval_cycles. - action-then-post-percept: action
t, then the reached percept, both at stept, with no separate terminal percept.
Observers must tolerate either ordering and a percept reported at step == N.
Each concrete controller documents which ordering it produces.
Required Methods§
Sourcefn observe_percept(
&mut self,
step: usize,
observations: &[u64],
reward: Reward,
) -> Result<(), PlannerAgentError>
fn observe_percept( &mut self, step: usize, observations: &[u64], reward: Reward, ) -> Result<(), PlannerAgentError>
Observe a percept event for step.
Under the decision-percept ordering, step may equal the total number of
scheduled cycles N for the terminal successor percept; observers must
accept this one-past-the-last-cycle index.
Sourcefn observe_action(
&mut self,
step: usize,
action: Action,
provenance: PlannerActionProvenance,
) -> Result<(), PlannerAgentError>
fn observe_action( &mut self, step: usize, action: Action, provenance: PlannerActionProvenance, ) -> Result<(), PlannerAgentError>
Observe an action event for step.