def METHOD_NAME(self, batch_size, state_size, nlayers, out_features, batch=True):
    r"""
    Further initializes agent to be aware of rpc environment
    Args:
        batch_size (int): size of batches of observer requests to process
        state_size (list): List of ints dictating the dimensions of the state
        nlayers (int): Number of layers in the model
        out_features (int): Number of out features in the model
        batch (bool): Whether to process and respond to observer requests as a batch or 1 at a time
    """
    self.batch = batch
    self.policy = Policy(
        reduce((lambda x, y: x * y), state_size), nlayers, out_features
    )
    self.optimizer = optim.Adam(self.policy.parameters(), lr=1e-2)
    self.batch_size = batch_size
    for rank in range(batch_size):
        ob_info = rpc.get_worker_info(OBSERVER_NAME.format(rank + 2))
        self.rewards[ob_info.id] = []
    self.saved_log_probs = (
        [] if self.batch else {k: [] for k in range(self.batch_size)}
    )
    self.pending_states = self.batch_size
    self.state_size = state_size
    self.states = torch.zeros(self.batch_size, *state_size)