class_docstr: BaseEnv that executes its sub environments as @ray.remote actors.
  
  This provides dynamic batching of inference as observations are returned
  from the remote simulator actors. Both single and multi-agent child envs
  are supported, and envs can be stepped synchronously or asynchronously.
  
  NOTE: This class implicitly assumes that the remote envs are gym.Env's
  
  You shouldn't need to instantiate this class directly. It's automatically
  inserted when you use the `remote_worker_envs=True` option in your
  Algorithm's config.
class_docstr_tok: ["BaseEnv","that","executes","its","sub","environments","as","@","ray.remote","actors",".","This","provides","dynamic","batching","of","inference","as","observations","are","returned","from","the","remote","simulator","actors",".","Both","single","and","multi-agent","child","envs","are","supported",",","and","envs","can","be","stepped","synchronously","or","asynchronously",".","NOTE",":","This","class","implicitly","assumes","that","the","remote","envs","are","gym.Env's","You","should","n't","need","to","instantiate","this","class","directly",".","It","'s","automatically","inserted","when","you","use","the","`","remote_worker_envs=True","`","option","in","your","Algorithm","'s","config","."]
code: def get_agent_ids(self) -> Set[AgentID]:
      if self.multiagent:
          return ray.get(self.actors[0].get_agent_ids.remote())
      else:
          return {_DUMMY_AGENT_ID}
  
imports: import gymnasium
  import logging
  from typing import Callable, Dict, List, Optional, Set, Tuple, TYPE_CHECKING
  import ray
  from ray.util import log_once
  from ray.rllib.env.base_env import BaseEnv, _DUMMY_AGENT_ID, ASYNC_RESET_RETURN
  from ray.rllib.utils.annotations import override, PublicAPI
  from ray.rllib.utils.typing import AgentID, EnvID, EnvType, MultiEnvDict
label_desc: Use image node_id 11 for calling the RemoteBaseEnv obj's underlying member method code with example usage: obj.get_agent_ids() and returns: ray, unknown