class_docstr: Write me
      
code: def forward(self, observation):
      # Select an action.
      q_values = self.compute_q_values([observation])
      if self.training:
          action = self.policy.select_action(q_values=q_values)
      else:
          action = self.test_policy.select_action(q_values=q_values)
  
      # Book-keeping.
      self.observations.append(observation)
      self.actions.append(action)
  
      return action
  
imports: import collections
  import numpy
  from keras.callbacks import History
  from keras.models import Model
  from keras.layers import Input, Lambda
  import keras.backend
  from rl.core import Agent
  from rl.agents.dqn import mean_q
  from rl.util import huber_loss
  from rl.policy import EpsGreedyQPolicy, GreedyQPolicy
  from rl.util import get_object_config
label_desc: Use image node_id 10 for calling the SARSAAgent obj's underlying member method code with example usage: obj.forward(observation) and returns: action