I built a homelab agent control plane. Most of it is running. The product is not a chatbot with root. The…
26 Aug 2026
Originally published on LinkedIn ↗
I built a homelab agent control plane. Most of it is running. The product is not a chatbot with root. The product is the contracts: who may write what, where truth lives, which models may see which data, and how a bad merge is undone.
One human. Two hats.
The builder hat sits in the IDE. That is where I author GitOps, policy, the model front door, and the tool registry. Unattended agents do not rewrite those contracts.
The operator hat sits in a self-hosted run console. Missions start there. Specialists report back. Run agents open merge requests. The shared inbox is git. A reconciler applies the default branch. The cluster is disposable. Git, secrets, DNS, and the CA are not.
Agents split the work: - The orchestrator classifies BUILD versus RUN and dispatches. - Sub-agents stay on local or self-hosted models, use read tools, and return structured findings. They do not comment, open MRs, or call write tools. Public cloud is denied for them. - Run agents may mutate after policy allow: desired-state MRs, lab-guest snapshot or start or stop, write tools through one gateway. A human still merges main. Rollback is git revert.
The board in git (image) is the shape:
- Local inference first. One LLM proxy. Policy on every class. A dedicated GPU guest for chat and embeddings. Self-hosted overflow next. Public cloud last, vault token, never for sub-agents. - Observability in the design, not after. Host logs into Splunk. Traces and metrics off the cluster. Spend and GPU views on the house dashboards. - Security by construction. One secret store. One tool gateway, no raw MCP URLs. Short-lived SSH certs. Name-limited CA. Default deny. Writes stay on the run role.
Still dropping dual-write of workload secrets. The shape is the point.
#Homelab #AIAgents #GitOps #Observability
