Same as :meth:`~creamas.mp.MultiEnvironment.spawn`, but allows
        spawning multiple agents with the same initialization parameters
        simultaneously into **one** slave environment.

        :param str agent_cls:
            ``qualname`` of the agent class. That is, the name should be in the
            form of ``pkg.mod:cls``, e.g. ``creamas.core.agent:CreativeAgent``.
        :param int n: Number of agents to spawn
        :param str addr:
            Optional. Address for the slave enviroment's manager.
            If :attr:`addr` is None, spawns the agents in the slave environment
            with currently smallest number of agents.

        :returns:
            A list of (:class:`aiomas.rpc.Proxy`, address)-tuples for the
            spawned agents.

        The ``*args`` and ``**kwargs`` are passed down to each agent's
        :meth:`__init__`.

async def spawn_n(self, agent_cls, n, *args, addr=None, **kwargs):
        """Same as :meth:`~creamas.mp.MultiEnvironment.spawn`, but allows
        spawning multiple agents with the same initialization parameters
        simultaneously into **one** slave environment.

        :param str agent_cls:
            ``qualname`` of the agent class. That is, the name should be in the
            form of ``pkg.mod:cls``, e.g. ``creamas.core.agent:CreativeAgent``.
        :param int n: Number of agents to spawn
        :param str addr:
            Optional. Address for the slave enviroment's manager.
            If :attr:`addr` is None, spawns the agents in the slave environment
            with currently smallest number of agents.

        :returns:
            A list of (:class:`aiomas.rpc.Proxy`, address)-tuples for the
            spawned agents.

        The ``*args`` and ``**kwargs`` are passed down to each agent's
        :meth:`__init__`.
        """
        if addr is None:
            addr = await self._get_smallest_env()
        r_manager = await self.env.connect(addr)
        return await r_manager.spawn_n(agent_cls, n, *args, **kwargs)