Skip to content

How to Run AI Agent Swarms in Minecraft Yourself

YC Labs open-sourced AI agent swarms in Minecraft and Mindustry. Bureaucracy showed up before the farms did - here's a 3-bot setup you can run locally.

6 min readBeginner

Most multi-agent demos sell the fantasy that AI teams will outrun human ones. The YC Labs drop on AI agent swarms in Minecraft and Mindustry points the other way: give fifty agents one vague goal and they’ll invent middle management before they invent a farm that works.

Keep the org-chart lesson. Not the scoreboard. If you already run coding agents in parallel, you’ve seen the same shapes – accidental bosses, post-incident caution, message storms that look like progress. This is a small reproduction with the code they released, not another highlight reel of Ada naming a fertilizer czar.

What shipped (short version)

Late October 2026, YC Labs and Olam Labs published three long runs: Civ50 (50-agent Minecraft survival), nine Bed Wars matches (10v10), and seven Mindustry factory/PvP games. GPT-6.1 Sol took both competitive series 6-3 and 6-1 against Claude Opus 5.5. Civ50 logged roughly 5,900 messages; 22 of 34 deaths hit on night one, then the colony drifted into ration ledgers and written permits.

HN and X split on cue – cute senior-engineer cosplay versus “this is why my fleet writes process docs instead of shipping.” After the write-up, YC also noted a live 25-agent GPT-6.1 Terra colony on Twitch.

Two open-source paths came with the paper. Pick one and run it.

Method A vs Method B: which swarm should you actually run?

Two stacks. Different jobs.

Minecraft (YC) Multi-Agent Mindustry (Olam)
Repo yc-software/minecraft-agent-use olamlabs/multi-agent-mindustry
Stack (as of the Oct 2026 READMEs) Node 22.19+, Mineflayer, pi agent loop Docker Compose, Python 3.12+, Node 22, uv, Harbor Multiagent
Best for Watchable survival / Bed Wars-style teams, DMs, shared notes Model-vs-model PvP series or endless wave defense
Beginner friction Low – bundled Paper 1.21.6 server (Java 21) Higher – images, seat configs, job.json wiring
Scale in the runs Up to 50 agents on one survival world Series defaults small; Endless Survival up to 20 seats

Method A for almost everyone reading this. Bots walk on screen, you can /tell them in-game, and a three-agent team.json teaches coordination without standing up Harbor. Mindustry is the cleaner benchmark once you want seat isolation and best-of-N scoring. One caveat on the published 6-1 / 6-3 lines: those competitive seats mixed coding stacks (Codex vs Claude Code), so read them as swarm-system results, not pure model ELO – detail in the FAQ.

Walkthrough: your first AI agent swarm in Minecraft

Goal: three named agents, one shared objective, DMs on, shared machine for notes. About fifteen minutes if Node and Java are already installed.

1. Install and boot the dev server

git clone https://github.com/yc-software/minecraft-agent-harness.git
cd minecraft-agent-harness
npm ci
cp .env.example .env
# provider key in .env (OpenAI, Anthropic, Gemini, OpenRouter, ...)
npm run server # Paper 1.21.6 on localhost:25565, offline mode

Node 22.19+ and Java 21 for the bundled server, per the project README (pins may change – check the repo before you upgrade). Spectate with a normal Minecraft 1.21.6 client.

2. Smoke-test one agent

npm start -- --objective "Gather wood and build a small shelter near spawn"

Default model is openai/gpt-6.1-terra in the docs – override with --model or env. Sessions resume from .agent-state/<name>/; same name after Ctrl+C continues the thread. In-game: /tell Agent ....

3. Promote to a real mini-swarm

Drop a file like my-team.json (pattern from their multi-agent docs):

{
 "host": "localhost",
 "port": 25565,
 "model": "openai/gpt-6.1-terra",
 "objective": "Build a small riverside camp: shelter, farm plot, shared chest, no night scouting until lit. Food before mining.",
 "sharedMachine": "local",
 "agents": [
 { "name": "Ada" },
 { "name": "Bram", "personality": "Focus on food and farming only." },
 { "name": "Cleo", "personality": "Write short plans to the shared machine; keep DMs brief." }
 ]
}
npm start -- team my-team.json

Team mode wires a directory, DMs between agents, and a shared machine for notes. That shared folder is the toy-scale version of how Civ50 grew ledgers and settlement plans – same mechanism, fewer mouths.

Pro tip: Put the agent you want as coordinator last if you’re testing hierarchy – or shuffle names between runs. Turns out directory order is a silent org chart: in Civ50, first-listed Ada soaked 616 DMs and wrote the colony plan with zero election.

Watch the terminal tool stream and the world. If they strip spawn trees and stall, tighten the objective: “replant saplings; one woodcutter at a time.”

Edge cases the highlight reels skip

  • Sandbox can mean your user account. README order: E2B when E2B_API_KEY is set → else Docker if available → else a local folder where commands run as you. First run: keep Docker up, or pass --sandbox none until you trust the objective.
  • Death teaches fear, not math. Civ50 death only dropped gear; respawn was free. After 22 first-night deaths the colony still went risk-averse and later plans read like “idle in lit shelters.” If your bots stop exploring, add an explicit “respawn and continue task X” line to the objective.
  • Food politics scale faster than builds. Fifty mouths turned Civ50 into a ration desk (ledgers, permits, appointed roles). At three agents, bake “secure food before deep mining” into the goal or you’ll debug starvation theater instead of shelters.
  • Mindustry scorelines confound model with stack. Same game API, but GPT-6.1 Sol sat in Codex and Claude Opus 5.5 in Claude Code. Authors treat the runs as multi-agent dynamics research, not a clean model ranking – hold the coding stack fixed if you re-run.

Is bureaucracy a failure mode or a feature when agents share long-horizon goals? The YC logs don’t settle it. They only show how fast an org chart appears once DMs and a shared filesystem exist.

FAQ

Do I need GPT-6.1 Sol or Claude Opus 5.5 to try this?

No. The Minecraft runner accepts Claude, GPT, Gemini, OpenRouter, or OpenAI-compatible endpoints. Use the key you already have; change model in the team JSON later.

Minecraft or Mindustry if I only have one weekend?

Minecraft. Clone the repo, start the bundled server, ship a 3-agent camp-building objective. Mindustry’s path – Harbor Multiagent via uv, config.json + job.json, Docker Compose, Apple Silicon via emulation – is the right second weekend when you want seat-isolated PvP series or endless survival scoring. Read Olam’s task READMEs end to end before you budget that time.

Why did GPT “win” if this isn’t a clean model bake-off?

Because the seats weren’t equal stacks. On Mindustry, GPT-6.1 Sol ran inside Codex; Claude Opus 5.5 ran inside Claude Code. GPT sides messaged far more (YC / Dealroom summaries: 5-30×), spread ownership, and sometimes pulled Mindustry’s public source in a pinch. Claude sides kept one fixed leader and +1 proposal votes, and didn’t flip leaders after losses. Dealroom’s write-up of the YC notes frames hive vs democracy; YC frames the whole series as multi-agent dynamics, not a leaderboard. Re-run rule: one coding stack, swap only the model – or you’re scoring products, not weights.

Clone the Minecraft repo, write a three-name team.json with a food-first objective, and cap the session yourself so a stuck DM loop doesn’t print money. Then open the shared notes folder and read which org chart showed up without being asked.