class_docstr: Tracks the current state of a (possibly multi-agent) episode.
class_docstr_tok: ["Tracks","the","current","state","of","a","(","possibly","multi-agent",")","episode","."]
docstr: Returns list of agent IDs that have appeared in this episode.
  
  Returns:
      The list of all agent IDs that have appeared so far in this
      episode.
docstr_tok: ["Returns","list","of","agent","IDs","that","have","appeared","in","this","episode",".","Returns",":","The","list","of","all","agent","IDs","that","have","appeared","so","far","in","this","episode","."]
code: def get_agents(self) -> List[AgentID]:
      """Returns list of agent IDs that have appeared in this episode.
  
      Returns:
          The list of all agent IDs that have appeared so far in this
          episode.
      """
      return list(self._agent_to_index.keys())
  
imports: import random
  from collections import defaultdict
  import numpy
  from typing import TYPE_CHECKING, Any, Callable, Dict, List, Optional, Tuple
  from ray.rllib.env.base_env import _DUMMY_AGENT_ID
  from ray.rllib.evaluation.collectors.simple_list_collector import _PolicyCollector, _PolicyCollectorGroup
  from ray.rllib.evaluation.collectors.agent_collector import AgentCollector
  from ray.rllib.policy.policy_map import PolicyMap
  from ray.rllib.policy.sample_batch import SampleBatch
  from ray.rllib.utils.annotations import DeveloperAPI
  from ray.rllib.utils.typing import AgentID, EnvID, EnvInfoDict, PolicyID, TensorType
label_desc: Use image node_id 3 for calling the EpisodeV2 obj's underlying member method code with example usage: obj.get_agents() and returns: list