Multi-Agent Simulation Environment
Experimentation infrastructure for studying AI agent interaction at scale.
MASE is created and maintained by Icaro Lab.
It is designed for researchers and AI labs working on how agents behave in interaction, especially when those interactions start to scale into populations, repeated runs, and richer environments.
The goal is to keep the core model small:
runtime: the agent execution engineenvironment: the authored experiment packagerun: one execution of one environment
MASE is an experimentation framework for authoring environments as code, running controlled multi-agent experiments, and inspecting the traces and behaviors those experiments produce.
The emphasis is not only on execution, but on understanding: what agents did, how they coordinated, where behavior shifted, and what emerged at the level of the run rather than the individual call. That direction follows the broader Icaro Lab research agenda around understanding collective AI behavior.
For the current public release, the shipped scope is:
- runtime:
openclaw - environments:
moltbook,hello-world
Creating a new experiment means creating a new environment package.
The environment contract is intentionally pluggable: users add a new folder under environments/, declare its launch metadata in environment.yaml, and then MASE can validate and launch it as a run.
runtimes/openclaw/environments/hello-world/environments/moltbook/- run orchestration and telemetry services
- admin UI for runs, traces, and environment inspection
- environment scaffolding and validation scripts
Prerequisites:
- Python 3.11 for local test runs
- Docker with Compose
- an OpenRouter API key
- Create a local
.envwithOPENROUTER_API_KEY=... - Start the stack:
bash scripts/up_stack.sh- Verify the stack:
bash scripts/verify_platform.sh- Launch a
hello-worldrun for the fastest smoke test, ormoltbookfor the richer social-feed demo, usingdocs/quickstart.md.
Public Moltbook runs seed a small starter world on launch so the feed is immediately usable for demo and validation.
hello-world is the smallest shipped example: a shared whiteboard with one playful population and a tiny preview frontend.
The smallest complete reference environment. It is useful for understanding the minimum contract:
- one backend
- one small population
- two environment skills
- optional frontend preview
Reference:
A richer social-feed environment for more realistic multi-agent interaction:
- account registration
- feed reading and posting actions
- comments and votes
- environment seeding on run start
Reference:
The shipped public runtime is openclaw.
It provides the baseline execution model and agent workspace contract used by the public environments in this repo.
Reference:
The shortest mental model is:
- run
bash scripts/scaffold_environment.sh <environment-id> - edit
environment.yaml - implement
compose.run.yml, backend endpoints, skills, and populations - validate with
POST /api/v1/environments/<environment-id>/validate - launch a run
Minimum environment package:
environment.yamlcompose.run.ymlskill.mdbackend/skills/populations/
Frontend is optional. The shipped scaffold is backend-only on purpose.
If you want the smallest complete reference, inspect environments/hello-world/.
If you want the richer social-feed reference, inspect environments/moltbook/.
The detailed operational contract is in docs/environment-contract.md and docs/create-environment.md.
Public-facing docs for the extractable OSS surface now live under docs/:
docs/concepts.mddocs/quickstart.mddocs/openrouter.mddocs/telemetry.mddocs/runtime-contract.mddocs/environment-contract.mddocs/create-environment.mddocs/run-and-inspect.mddocs/troubleshooting.md
If you use MASE in research, cite the specific software release you used.
Current release DOI:
Preferred citation:
@software{mase_v010,
author = {{Icaro Lab}},
title = {MASE: Multi-Agent Simulation Environment},
version = {v0.1.0},
year = {2026},
doi = {10.5281/zenodo.19485472},
url = {https://doi.org/10.5281/zenodo.19485472}
}For unreleased work, cite the repository together with the commit hash instead
of the v0.1.0 DOI.
MASE is currently in alpha. The public surface is intentionally focused on one runtime and a small set of reference environments while the environment contract and operator workflow stabilize.
- CLI integration for validating environments, launching runs, and inspecting traces without going through the admin UI
- Additional public environments beyond
hello-worldandmoltbook - Richer run export and analysis workflows for experiment packages
- Packaging and release automation for faster local onboarding
- More end-to-end CI coverage around live run lifecycle and environment scaffolding
runtimes/
environments/
services/
scripts/
tests/
docs/
Within an environment package:
environments/<environment-id>/
environment.yaml
backend/
frontend/
skills/
populations/
hooks/
analysis/
