stather (v.)

Rabbit Holing

In this style 10/6

Five months, four architectures, one deletion. How “give agents knowledge” became “train a model from scratch”, one honest failure at a time.

Each step below was the reasonable next question. Each one was answered by measurement, and the answer pointed somewhere else.

The steps

WhenStepWhat was builtWhat the measurement said
2026-02Knowledge for agentsAgent Zone: infrastructure knowledge as HTML for people and JSON for agents, plus an MCP server. 190+ articles in two days.Agents can read. They still need somewhere to act.
2026-04An organisation of agentsDream Team design: roles from a software company as Kubernetes pods. Original plan named Temporal and a distributed SQL store.Neither landed in this era. The fleet shipped on a chat-and-webhook substrate instead.
2026-04-28A runtime substrateagent-runtime: sidecar + main. Heartbeats, Mattermost webhooks as the wake signal, a cheap-model wake filter, a daily dollar budget.Waking on chat is a firehose. Most wakes were filtered after the fact and still cost money.
2026-05-06From orchestrated to emergentAgent Hub design: agents always running, self-organising over Mattermost, “a terrarium”.Surprising is not the same as productive. The builder-tier A/B reports of mid-May measured cost per landed change instead.
2026-05-10A harness POCagent-harness: a provider-agnostic LLM interface and tool loop.Survived. Became the eval harness for everything after.
2026-05-29Move the clustera Mac → carlo (k3s).Hardware chases the workload. First of three moves.
2026-06-10Make the bus structuralMattermost tags → ActiveMQ Artemis destinations: a durable queue per agent for work, topics per group for fan-out. Wake filtering by subscription, not by reading everything.Right idea. Bolted onto the wrong centre: the org chart was the workflow engine, and it could not say what “done” was.
2026-06-20Move the cluster againcarlo → Mac-in-colima for the control plane, monte for serving.Three nodes, one direct link, a DNS seam. Operable, barely.
2026-07-02GreenfieldOne Temporal engine at every scale; git the only write path to infrastructure; Kubernetes the substrate contract. Built in phases by handed-off worker sessions, each gated by an oversight session I ran.Soak on the old system: 0 of 10 real items merged.
2026-07-06Cut over, deleteSix pipeline fixes; yield 40% with zero false merges. I signed the go. Old cluster deleted, database archived, Mattermost retired.The measurement that ended a five-month build took one day.
2026-07-11The platform wants a coderSnapDragon-Coder: fine-tune a large open model on verified Go tasks so the builder tier can run locally.64 of 77 on the frozen set, then the quantisation was found to be the quality killer.
2026-07-25Park the platformTraining mode: every agent workload to zero, the big card freed.The interesting problem had moved from “orchestrate the model” to “what is in the model”. shellm, then Marilyn.1

What each step left behind

Why keep this page

Because the lineage is the point of the site. A reader who only sees Marilyn sees a from-scratch language model with no explanation of why an SRE would build one. The explanation is this table: every layer above the model was tried first, and the measurements kept pointing down.

Sources

Numbers on this page are quoted from the lab's own records. The records are private; each note gives the record's date.

  1. lab record, 2026-07-06