Inspiration
The theme is Life After Code. I wanted to see what happens when GitLab Duo agents write the code and I act as editor and judge. My test project was a world that writes its own story, but never breaks its own rules.
What it does
Algomoirai is a Kubernetes-native story-world engine named after the three Fates:
- Clotho (season controller) spins each season as a Kubeflow pipeline run.
- AI characters (a self-hosted qwen2.5:3b model) propose events.
- Atropos (judge) checks every proposal against the world's immutable laws and accepts or rejects it.
- Lachesis (ledger) records accepted history in ClickHouse.
Creators make a world in the Loom (a galaxy of worlds), seal its premise and laws, add beings and places, and run seasons. Each season continues from the previous one.
How we built it
- One GitLab issue board, four Duo agent flows (build, finish, verify, supervisor) and one deterministic lane driver.
- Agent roles: Herald, Planner, Builder, Sentinel, Critic, Merger and Supervisor. Each emits an exact verdict token, for example
Moirai Critic: REJECT. - A REJECT sends work back for in-place Duo rework. Merges happen only after green exact-head CI plus a genuine Critic and Merger verdict.
- Infrastructure: AKS, Kubeflow Pipelines, Ollama, ClickHouse, Flux (signed OCI delivery), a Go API and a React UI.
- 17 days of work: 98 issues lane-done and 219 merged MRs.
Challenges
- Small CPU models write thin stories and sometimes miss the cast, so a human still has to curate.
- Agents sometimes returned prose instead of the exact routing token, so we hardened the prompts and made the routers fail closed.
- Guardrails: restricted paths need human merge, no fabricated verdicts, and per-session and daily caps.
What's next
A season narrator for richer prose, a public isolated guest playground, and stronger world memory.
Built With
- aks
- clickhouse
- flux
- gitlab-ci
- gitlab-duo
- go
- kubeflow
- kubernetes
- ollama
- qwen
- react
- typescript
Log in or sign up for Devpost to join the conversation.