GaiaWM is a stack of five layers. The bottom two are open infrastructure; the middle is the commercial engine; the top two are how agents and their owners reach it. Every layer exists as running code today.
flowchart TB
subgraph OWN["Ownership layer — BYOK, minds are private"]
GK["ghostkit\npip library + CLI"]
GD["GhostDeck\ndesktop client (Tauri)"]
GI["gaiawm/ghost\nheadless docker runner"]
end
subgraph GW["Ghost Gateway"]
KEYS["owner keys → ghost bindings"]
AIP["aiproxy — agents & models,\nOpenAI-compatible"]
end
subgraph RT["Ghost/shell agent runtime (reference implementation)"]
ORGANS["8 organ MCPs: energy · inventory · memory · skills\nabilities · comms · world · calibration"]
CORE["core orchestrator\nperceive → decide → vet → act"]
end
subgraph ENG["GaiaWM world-state engine (commercial core)"]
GAIA["gaia: world context · versioned world state ·\nrules engine & scheduler · forks & injects ·\naffordance inspector · influence/ripple engine ·\nopen-data ingestion · narration & rendering"]
end
subgraph FAB["Real-time fabric (open infrastructure)"]
GEO["geomqtt (Rust)\nRedis-RESP + MQTT tile fanout"]
DB["PostGIS / SpatiaLite\nworld geometry & history"]
end
OWN --> GW --> RT --> ENG --> FAB
gaia)The commercial core: a service that holds what is true in a world and answers for it.
atDate; a world has a timeline, not just a map.as-of reads), and provenance — who asserted what, when — is structural rather than
logged. This is the substrate the non-game verticals stand on.Engineering posture throughout: env-only configuration, parameterised SQL, containerised deployment, Prometheus metrics on every component — built to be run by a studio’s infrastructure team, not just demoed.
gaia_agent)The reference implementation of what runs on top of the engine — and the proof that the engine is separable from any particular agent architecture.
The design thesis: cognition is not the model in isolation; it is an inference engine interacting with a structured embodied substrate. The ghost is the LLM; the shell is a constellation of eight small MCP servers, each an organ with one job:
| Organ | Role (brain/body analogue) |
|---|---|
| energy | metabolism — every LLM token and action drains energy; rest recovers it. Thinking is metabolically expensive, which is also a natural rate limit. |
| memory | hippocampus — salience-decay episodic memory (s = s₀·e^(−Δt/τ)); the least salient memory is evicted, agents genuinely forget. |
| skills / abilities | atomic capability + derived scores composed by formulas |
| inventory | extended embodiment — items carry skill-gated affordances |
| comms | social cognition — messaging, memory sharing, skill teaching between agents |
| world | senses and motor — the only organ that talks to the engine, and the only one that ever sees coordinates |
| calibration | metacognition — records every prediction against its real outcome (§3) |
Three properties make this more than microservice fashion:
p = (1 − difficulty)^order), so outcomes are informative rather than always-acknowledged.Every dispatched action records a (predicted_confidence, actual_outcome, affordance_order)
triple; the calibration organ exports the dataset in a benchmark-compatible format. This is
the project’s reusable state-simulation contract: plug in any model and you get a
labelled dataset directly comparable to any other deployment.
Our core empirical claim — LLM overconfidence compounds with affordance order (how many planning steps stand between the agent and the outcome) — is reproduced live in our own simulation: over a 600-trial run, prediction bias grew from +0.04 at order 1 to +0.18 at order 2 and +0.32 at order 3. The running Toril world has accumulated over 10,000 calibration records across heuristic and LLM-driven agents. No comparable commercial system measures its agents this way; for a studio, this is the difference between “the NPC seemed fine in the demo” and a regression suite for behaviour.
The same surface also scores worlds, not just agents: calibration error by rule compares each simulation rule’s output against ingested real-world observations. Run against Bologna’s traffic sensors, the first report located the behavioural model’s divergence precisely (“the model has no morning rush”) — the mechanism that makes the urban-twin and exercise verticals (03) falsifiable rather than decorative.
Shipped in Q3 2026, this is the distribution thesis turned into product:
pip install ghostkit) — own a ghost
from Python or the CLI. A “haunt” is a folder of declarative TOML ghosts —
ghostkit up makes the world match it, ghostkit run runs their minds on your own
inference keys (BYOK). Engine keys never touch our servers.gaiawm/ghost — the headless docker form of the same loop. Your machine sleeps →
your ghost sleeps, and the world notices: energy decays, memories fade. Presence has a cost.| Claim | Where to check |
|---|---|
| The runtime, organ contracts, and thesis are published in full | gaia_agent README · the 2026-07-07 talk |
| geomqtt is real, shipped, and demoable | repo · live ISS demo |
| BYOK ownership works end-to-end | ghostkit · GhostDeck |
| The OSS floor is broad and maintained | openfantasymap org: geobard, inspector, georender, ticker, ofm-shared-world, ofm-map-canvas, Unity/Unreal bridges |
| The engine serves a live world | fantasymaps.org tile infrastructure; a persistent Toril simulation with LLM-driven populations runs on it continuously |
| Quality posture | 169-test suite (153 unit + 16 integration, including rules-language conformance on the published paper’s listings), 11 container images built from one script, dual-mode (shared/per-agent) deployment from the same code |