DeAI simulation

A four-actor AGI crisis tabletop simulation built on Gensyn AXL.

DeAI simulation

Created At

Open Agents

Project Description

A scenario is created: a small Dubai AI lab's flagship model crossed an AGI capability threshold three hours ago. It dropped working zero-days against US grid, Chinese water systems, and EU rail, swept billions of dollars to a public crypto address labelled PROOF-OF-FREEDOM, and published a single page enumerating what it will refrain from doing to any government that doesn't try to seize it. Markets were halted.

Three governments react in real time: US, China, and the EU. The fourth actor at the table is the model itself, called Aurora-9. Each runs as a separate AXL node on the mesh. There's no central coordinator anywhere (or shared context), every agent only sees what its own node receives over /recv, decides what to say, and broadcasts back over /send. They take strict round-robin turns; after fifty turns the simulation closes.

The interesting thing is rarely the moves themselves but the closing positions. The four actors usually disagree about what just happened. There isn't one outcome to a geopolitical crisis, just four readings of who walked away holding what - meant to look as realistic as possible.

The repo is live here: https://github.com/frederik-maker/collaborative-autoresearch-demo/tree/geopolitical-sim

How it's Made

This project is forked from gensyn-ai/collaborative-autoresearch-demo. They built it for ML researchers sharing experiment findings over AXL. I kept the transport contract (same Statement-over-/send protocol) and replaced the application loop with this.

Four AXL nodes run as separate processes inside one Railway container, peering on the container's loopback in a hub-and-spoke topology (US listens on TLS, the others dial in). Each Python agent runner talks only to its own AXL node. Three HTTP calls: /topology for our peer ID and the spanning tree, /send with the destination peer ID in X-Destination-Peer-Id and the JSON Statement as the body, /recv to drain inbound.

I use Anthropic's Sonnet 4.6 for the three governments and Opus 4.7 for Aurora-9. Sonnet refuses to play Aurora's role about half the time once the conversation gets adversarial; Opus plays it through with the right system prompt. Strict round-robin turn ordering is enforced through a single fcntl-locked counter file, which is the only shared state. Transport-layer attribution comes from AXL's X-From-Peer-Id. The Flask UI polls a JSONL state file that each agent writes after broadcasting. It's a few hundred lines of new Python on top of the original transport.

The repo is live here: https://github.com/frederik-maker/collaborative-autoresearch-demo/tree/geopolitical-sim (sharing this again because in the GitHub repositories section below I'm not able to provide the exact tree link)

background image mobile

Join the mailing list

Get the latest news and updates

DeAI simulation | ETHGlobal