code: def __init__(
      self,
      name,
      game_inputs=None,
      callbacks=None,
      seed=420133769,
      logger=Loggers.NOOP,
      logger_kwargs=None,
  ):
      self.name = name
  
      if not isinstance(game_inputs, list):
          raise SerpentError("'game_inputs' should be list...")
  
      self.game_inputs = game_inputs
      self.game_inputs_mappings = self._generate_game_inputs_mappings()
  
      self.callbacks = callbacks or dict()
  
      self.current_state = None
  
      self.current_reward = 0
      self.cumulative_reward = 0
  
      self.analytics_client = AnalyticsClient(
          project_key=config["analytics"]["topic"]
      )
  
      random.seed(seed)
      np.random.seed(seed)
  
      self.logger = Agent.logger_mapping[logger](
          logger_kwargs=logger_kwargs
      )
  
file_path: SerpentAI/serpent/machine_learning/reinforcement_learning/agent.py
imports: from serpent.config import config
  from serpent.analytics_client import AnalyticsClient
  from serpent.logger import Loggers
  from serpent.loggers import *
  from serpent.enums import InputControlTypes
  from serpent.utilities import SerpentError
  import os
  import json
  import time
  import random
  import numpy
label_desc: Use image node_id 1 to create a new Agent object  with example: obj = Agent(name, game_inputs, callbacks, seed, logger, logger_kwargs)