class_docstr: Offline Rainbow agent with BC regularization (akin to CQL).
docstr: Returns the agent's next action and update agent's state.
  
  Args:
    reward: float, the reward received from the agent's most recent action.
    observation: numpy array, the most recent observation.
  
  Returns:
    int, the selected action.
docstr_tok: ["Returns","the","agent","'s","next","action","and","update","agent","'s","state",".","Args",":","reward",":","float",",","the","reward","received","from","the","agent","'s","most","recent","action",".","observation",":","numpy","array",",","the","most","recent","observation",".","Returns",":","int",",","the","selected","action","."]
code: def step(self, reward, observation):
      """Returns the agent's next action and update agent's state.
  
      Args:
        reward: float, the reward received from the agent's most recent action.
        observation: numpy array, the most recent observation.
  
      Returns:
        int, the selected action.
      """
      self._record_observation(observation)
      self._rng, self.action = rainbow_agent.select_action(
          self.network_def,
          self.online_params,
          self.state,
          self._rng,
          self.num_actions,
          self.eval_mode,
          self.epsilon_eval,
          self.epsilon_train,
          self.epsilon_decay_period,
          self.training_steps,
          self.min_replay_history,
          self.epsilon_fn,
          self._support,
      )
      self.action = onp.asarray(self.action)
      return self.action
  
imports: import functools
  from absl import logging
  from dopamine.jax import losses
  from dopamine.jax.agents.full_rainbow import full_rainbow_agent
  from dopamine.jax.agents.rainbow import rainbow_agent
  from dopamine.labs.offline_rl import fixed_replay
  from dopamine.labs.offline_rl.rlu_tfds import tfds_replay
  import gin
  import jax
  import jax.numpy
  import numpy
  import optax
  import tensorflow
label_desc: Use image node_id 8 for calling the OfflineJaxRainbowAgent obj's underlying member method code with example usage: obj.step(reward, observation) and returns: self