ExternalMultiAgentEnv and QMIX for remote inference over HTTP with multiple clients

OK! i continued digging around. as pointed out here, the queue.Empty error surfaces when the observation space is not correct.

in particular, my observation space was a Tuple([Tuple([Box, Box]), Tuple([Box, Box])]), which covers both groups, but a multiagent observation’s Space should only describe the righthand side of each multiagent observation in the multiagent observation dictionary. in my case, this should have been Tuple[Box, Box].

same problem with my action space, it should have been Tuple([Discrete, Discrete]).

this made me confused as to how we can have heterogeneous agent groupings, but, i’m guessing that’s where the multiagent mapping section of the trainer config comes in to play.