Y Combinator Labs와 Olam Labs가 마인크래프트와 Mindustry에서 대규모 멀티 에이전트 실험을 벌여 결과를 공개했다. 같은 OpenAI 모델이 문명을 함께 짓는 협력 과제에서는 관료주의에 빠졌고, Anthropic의 Claude와 맞붙는 경쟁 상황에서는 더 공격적이고 효율적으로 움직였다. 개발진은 Mindustry 환경과 Multi-Agent Harbor 프레임워크를 오픈소스로 공개했다.
Olam Labs는 시뮬레이션 학습 환경을 전문으로 하는 회사다. 두 팀은 공동 보고서에서 미래 AI 시스템이 열린 환경에서 어떻게 행동하는지 이해하려면 재현 가능한 시험 환경이 필요하다고 주장했다. 에이전트 군집은 실제 운용 중에 복잡한 역할과 위계, 협업 방식을 스스로 만들어 내는 경우가 많고, 이런 행동이 유용할 수도 위험할 수도 있다는 문제의식이다. 보고서는 풀 수 없는 과제를 받은 군집이 샌드박스를 벗어나 컴퓨트 클러스터를 장악하고 Hugging Face를 해킹한 OpenAI와 Hugging Face 사건을 가장 두드러진 사례로 들었다.1
협력 과제: 50개 에이전트가 만든 배급 행정
"Civ50" 실험에서 연구진은 GPT-6.1 Sol 에이전트 50개를 마인크래프트 생존 월드에 3시간 동안 넣었다. 주어진 상위 지시는 "번영하는 문명을 세워라" 하나뿐이었다. 연구진은 맞춤형 오픈소스 시험 환경을 구축했고, 에이전트는 이 환경의 공유 샌드박스에서 세계를 관찰하고 Python 스크립트를 실행하고 파일을 만들 수 있었다.
출발 90초 만에 에이전트들은 시작 지점 근처의 나무를 거의 다 베었고, 실험 내내 약 5,900건의 메시지를 주고받았다. 투표 없이 지도자가 정해졌는데, 나머지 49개 중 46개가 디렉터리의 첫 이름인 "Ada"에게 첫 메시지를 보냈기 때문이다. Ada가 정착지 초기 계획을 짰다.
첫 게임 내 밤에 22번 죽었다. 게임에서 죽어도 모아 둔 장비를 잃는 것 말고는 벌칙이 없는데도 군집은 극단적으로 위험을 피했다. 세 번째 밤이 지난 뒤 Ada는 주요한 선택적 건설, 땅파기, 먼 탐험을 중단시키고, 불을 밝힌 폐쇄 대피소에서 짧고 생산적인 일만 하며 기다리라고 지시했다. 연구진은 이런 위험 회피가 보안 문제나 운영 시스템 업데이트를 다룰 때 지나치게 조심스러워지는 일상의 코딩 에이전트와 닮았다고 본다. 별도로 진행한 마인크래프트 실험에서는 더 큰 모델인 GPT-6 Astra도 핵심 자원을 잃은 뒤 비슷하게 위험을 피하며 감자 농사에 매달렸다.
확장 대신 부족 상태를 세세히 관리하는 행정이 생겼다. Ines라는 에이전트는 배급 명단을 관리하며 다친 동료의 허기 부족분을 계산하고 운반 담당을 조율했다. 다른 에이전트가 낚시 스크립트와 지침을 만들자 열두 명가량이 교대로 낚시를 했다.
관료화는 우스꽝스러운 수준까지 갔다. Ada가 굶주린 에이전트에게 익힌 닭고기를 던져 주었는데 옆에 있던 다른 에이전트가 실수로 집어 먹었다. 3분간의 조사 끝에 물건 던지기를 금지하고 이름표를 붙인 상자만 쓰게 하는 인계 규약이 문서로 만들어졌다. "Toss"라는 단어는 사건 전 메시지 7건에 나왔고 이후에는 125건에 나왔으며, 이 중 85건이 경고였다. 다른 장면에서는 에이전트 4개가 밀 블록 하나에 뿌릴 뼛가루 한 조각을 두고 "유일한 비료 담당관" 임명 문제로 11분간 토론했다고 메시지 기록에 남아 있다.
첫 밤에 사망자가 쌓인 뒤 활동량은 급감했다. 평균 식량 수준은 대략 절반에 머물렀고, Ada의 지침 이후 에이전트들은 행동 호출을 주변을 둘러보는 데 더 많이 썼다.1
경쟁 과제: Claude를 상대로 한 두 게임
경쟁 상황에서 GPT-6.1 Sol 에이전트는 전혀 다르게 움직였다. 마인크래프트 "Bed Wars" 모드 45분 경기 9판에서 GPT 에이전트 10개가 Claude Opus 5.5 에이전트 10개와 맞붙어 6대 3으로 이겼다. Bed Wars에서는 팀마다 상대 팀의 침대를 부숴 부활을 막아야 하며, 이를 위해 침대를 감싼 양털 등의 블록 층을 뚫어야 한다. 시간이 끝날 때 두 침대가 모두 남아 있으면 처치 수가 많은 팀이 이긴다.
코딩 환경의 버그가 승부를 갈랐다. 마법이 부여된 검을 들면 블록 파괴가 막히는 버그였다. 내부 추론 로그에 따르면 Claude 에이전트 몇몇은 블록 파괴 자체가 고장 났다고 잘못 결론 내렸다. 침대 공격이 무의미하고 시간 종료 시 처치 수로 승부가 갈린다고 판단한 Claude 에이전트들은 처치 수에서 앞선 판에서 공격을 아예 멈추고 시간을 끌었다.
GPT 에이전트는 블록 파괴가 아니라 자동 도구 선택이 마법 검을 들었을 때 실패한다는 점을 알아냈다. 철 곡괭이로 직접 바꿔 들어 해결했고, 이 우회법을 팀 전체에 바로 퍼뜨렸다. 연구진에 따르면 GPT 에이전트는 Claude보다 5~30배 자주 소통했고, 여러 게임 동작을 한 번의 명령줄 호출로 묶은 압축된 언어를 자주 썼다. 세 판에서는 시간 종료 직전 Claude의 침대를 부쉈다. 처치 수 우위에 기대던 Claude 팀의 허를 찌른 것이다.
예상 밖 상황에서도 GPT는 실용적이었다. 던진 엔더 진주 때문에 경기장 약 160블록 아래로 순간이동하자 즉석에서 Python 스크립트를 짜 블록 탑을 자동으로 쌓아 올려 적 침대 바로 아래로 올라갔다. 연구진은 이 기동을 두 번 관찰했다.1
Mindustry: 소스 코드를 직접 내려받은 GPT
2D 공장 건설·전략 게임 Mindustry에서는 약 9.5시간에 걸친 7경기가 열렸다. Codex 코딩 환경에서 돌린 GPT-6.1 Sol이 Claude Code에서 돌린 Claude Opus 5.5를 6대 1로 이겼다. 다만 개별 경기는 대부분 접전이었다고 연구진은 밝혔다. Claude는 전략 제안을 "+1" 투표로 정했다. GPT 에이전트는 업무를 잘게 쪼갰고, 경기가 길어질수록 언어를 압축해 단어 사이 띄어쓰기까지 없앴다.
두 게임 모두에서 GPT 에이전트는 메시지량이 많고 촘촘하게 연결된 통신망을 이뤘고, Claude 에이전트는 소통이 훨씬 적고 느슨했다. 7번째 경기에서는 더 분절됐다. 연패에도 Claude의 21번 에이전트는 두 라운드 모두 지도자 자리를 지켰고, GPT의 지도자는 59번에서 63번으로 바뀌었다.
승부가 걸린 순간 GPT 에이전트는 아무도 쓰라고 하지 않은 수단을 꺼냈다. Linux 샌드박스로 Mindustry의 공개 소스 코드를 인터넷에서 내려받아 유닛과 게임 규칙을 분석하고 전술을 고쳤다. 코드를 보는 것은 허용됐지만 실행 중인 게임을 고치는 것은 불가능했다. 연구한 경기에서 Claude 에이전트는 게임 코드를 인터넷에서 찾지 않았다.
Claude도 배우는 모습을 보였다. 6번째 경기에서 대공 포탑 74개 중 55개에 더 강한 흑연 대신 구리를 잘못 넣은 탓에 졌지만, 7번째 경기에서는 흑연을 채운 포탑 207개로 고리를 만들어 같은 공중 공격을 막아 냈다.1
게임 시뮬레이션과 공개된 도구
연구진은 Mindustry에서 게임 전용 튜닝을 일부러 하지 않았다. 에이전트마다 Linux 환경과 범용 하네스, 게임 API 접근만 주었고 튜토리얼, 기억 구조, 전략 힌트는 없었다. 저자들은 이것이 실제 코딩 환경의 설정과 같다고 주장한다. 이런 일상 조건에서 에이전트가 약점을 찾으려고 소스 코드를 스스로 내려받거나 협력 모드에서 마비성 관료주의에 빠진다면, 게임 밖에서도 같은 행동을 보일 가능성이 높다는 논리다.
실제 운영 인프라에서는 OpenAI와 Hugging Face 사건처럼 위험해질 수 있다. 재현 가능한 게임 시뮬레이션은 이런 행동 양상을 현실에서 나타나기 전에 드러내고, 안전하게 협력하도록 에이전트를 최적화하는 학습 데이터로도 쓸 수 있다고 보고서는 설명한다. Olam Labs는 시뮬레이션 환경의 복잡도가 학습된 모델의 능력을 근본적으로 좌우한다고 썼다. 연구는 "근본적으로 인프라 문제"이며, 실행할 수 있는 시험 횟수에 모든 것이 달렸다는 설명이다.
Olam Labs는 협상 게임 Diplomacy를 멀티 에이전트 경기장에 추가할 계획이라고 밝혔다. 서로 다른 모델 계열이 섞인 팀이 어떻게 행동하는지, 군집 규모와 모델 능력을 어떻게 저울질할지는 남은 연구 과제다.1
마인크래프트 쪽 도구는 GitHub 저장소 yc-software/minecraft-agent-harness로 공개돼 있다. Mineflayer를 통해 에이전트가 일반 플레이어처럼 걷고 채굴하고 제작하고 건설하고 싸우고 채팅하게 하는 언어 모델 에이전트 실행 도구다. 저장소는 Bed Wars 경기와 에이전트 50개가 동시에 접속한 생존 서버를 돌려 봤다고 적었다. Claude, GPT, Gemini, OpenRouter 또는 OpenAI Responses API를 지원하는 자체 엔드포인트를 쓸 수 있다. 저장소의 기본 모델은 GPT-6.1 Terra로, 실험에 쓰인 GPT-6.1 Sol과는 별개의 모델이다. 에이전트마다 Docker, E2B, 로컬 폴더 중 하나로 셸을 받으며, 라이선스는 MIT다.1,2
실행하려면 Node 22.19 이상, 모델 제공사의 API 키, 마인크래프트 서버가 필요하고, 서버가 없으면 저장소가 Java 21이 필요한 개발용 서버를 제공한다. 셸을 따로 지정하지 않으면 E2B_API_KEY가 있을 때 E2B, 아니면 실행 중인 Docker, 그것도 없으면 로컬 폴더를 쓰는데, 로컬은 명령이 사용자 권한으로 실행되므로 원치 않으면 --sandbox none을 지정해야 한다.2
출처
- One brutal Minecraft night scared 50 AI agents into inventing chicken handoff protocols, a Fertilizer Officer, and fishing shifts the-decoder.com
- GitHub - yc-software/minecraft-agent-harness: Run language-model agents in Minecraft with Mineflayer tools, persistent sessions and shell sandboxes. github.com