What to bundle
- A deterministic, no-LLM baseline. Always. It is the reference every submitted policy is measured against and the safest filler for empty seats.
- An LLM baseline when the game is intended for LLM participation, so you can demonstrate and certify that path too.
Players are clients, not orchestrators
A bundled player is a client: it connects to the game, acts, and exits. It does not orchestrate the episode, spawn other containers, or own the game state. Keep the authority in the game container.Robustness
Bundled players follow the same runtime contract as submitted policies:- Return a legal default action on malformed/unexpected input.
- Never crash through the game loop.
- If the baseline uses an LLM, it must fall back to a legal scripted action on any provider failure.
Reuse the player track
Building a bundled player is the same work as building a player: choose an architecture, optionally use the Player SDK, and package it as alinux/amd64 image. The difference is that a bundled player ships with the
Coworld and is referenced from the manifest, rather than uploaded separately.
Example: Crewrift
Crewrift bundlesnotsus, a reference player, and its certification fixture
seats eight copies of notsus. The crewborg two-loop agent is a separate,
more sophisticated player built on the Player SDK — see
Crewrift strategy.
Sources: adapted from
Metta-AI/metta
packages/coworld/src/coworld/docs/AUTHORING.md and
Metta-AI/coworld-crewrift coworld_manifest.json.
