code: def _play_one_episode(self, add_noise=False):
      episode_reward = 0
      episode_step = 0
  
      obs = self.env.reset()
      while True:
          if np.random.uniform() < self.config["filter_update_prob"]:
              obs = self.obs_filter(obs, update=True)
          else:
              obs = self.obs_filter(obs, update=False)
  
          action = self.agent.predict(obs)
          if add_noise:
              action += (
                  np.random.randn(*action.shape)
                  * self.config["action_noise_std"]
              )
  
          obs, reward, done, _ = self.env.step(action)
          episode_reward += reward
          episode_step += 1
          if done:
              break
      return episode_reward, episode_step
  
file_path: PARL/benchmark/torch/ES/actor.py
imports: import gym
  import parl
  import time
  import numpy
  from es import ES
  from obs_filter import MeanStdFilter
  from mujoco_agent import MujocoAgent
  from mujoco_model import MujocoModel
  from noise import SharedNoiseTable
  from parl.env.compat_wrappers import CompatWrapper
label_desc: Use image node_id 2 for calling the Actor obj's underlying member method code with example usage: obj._play_one_episode(add_noise) and returns: episode_reward,  episode_step