Skip to content

Conversation

@N00bcak
Copy link
Contributor

@N00bcak N00bcak commented Sep 19, 2025

This PR references the multi-agent environment commit.

At present some flaws remain in this PR (namely it is presently not yet able to handle dictionary inputs as sequential) but that should not significantly affect its ability to provide another perspective on how multi-agent API could look.

Motivation

Multi-agent environments have an additional dimension over single-agent ones in that agents either take turns, act simultaneously (or have the option to do both).

To guide decisions along this dimension and streamline development, fundamental considerations like

  • Whether the environment features turn-taking dynamics (i.e. things that happen when relinquishing control from one agent to the next, such as dishing out cumulative rewards (present in the original commit))
  • Whether the environment features global dynamics (i.e. things that only happen after ALL agents take turns, only implicitly detailed in the commit)

should be exposed to the end developer while weakly encoding some broad preferences such as simultaneous execution over sequential execution.

Differences from this other PR

Many of the suggestions in this PR are quite similar to the ones here.
The main difference is conceptual:
where the two methods exist in complementary distribution in the other PR, this PR aims to increase flexibility of this combined interface by allowing sequential implementations to run with a simultaneous execution interface, and vice versa.

The other PR also appears to aim for an interface closer to that of PettingZoo. It is a good interface to start off of but it may be beneficial to make an interface that places the differences between sequential and simultaneous multi-agent environments front and centre (from the class definition perspective), while still maintaining convenience from the usage perspective.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant