← All work

P-001 · 2025

OpenClaw — 15-agent autonomous system

A self-hosted AI agency on a $10/month VPS — 15 sub-agents across three agencies (Dev/Shuri, Creative/Maya, LinkedIn/Natasha) reporting to Jarvis the COO. One Telegram message kicks off a full product cycle: build → QA → deploy → post.

Role
Founder · solo engineer
Year
2025
Outcome
15 agents · 3 agencies · 0 headcount
Hostinger KVM2 VPSDockerGLM-5GroqGemini 2.5 FlashClaude CodeTelegram BotFirebaseVercel

The problem

Building AI-powered products solo means orchestrating dozens of moving parts across research, design, code, deploy, QA, content, and marketing — every day. The existing SaaS multi-agent platforms lock you in, leak your data, or stack subscriptions. I wanted a self-hosted agency I owned end-to-end: cheap to run, fork-able, fully customisable. One Telegram message in, a shipped product out.

Approach

  • Three-layer hierarchy on a $10/month Hostinger KVM2 VPS (Docker). Layer 1: Jarvis the COO. Layer 2: agency CEOs — Shuri (Dev), Maya (Creative), Natasha (LinkedIn). Layer 3: 15 specialised sub-agents.
  • Jarvis runs a ReAct loop with persistent context in SOUL.md (identity / behaviour), USER.md (preferences), and MEMORY.md (running state). The single point of contact is a Telegram Bot — you message Jarvis, Jarvis routes.
  • Routine routing decisions run on Groq's free tier (cheap + fast). Heavier models are invoked only on explicit request. Image and video agents always require user confirmation before firing.
  • Dev Agency (Shuri): Coder uses GLM-5 via Claude Code for implementation; UI uses Gemini 2.5 Flash + Stitch MCP for Apple / Vercel / Stripe-grade design; Research uses a Tavily → Gemini → web_fetch fallback chain; Git, Deploy (Vercel CLI), and QA (build / TypeScript / secrets / .gitignore / package.json checks) are rule-based.
  • Creative Agency (Maya): hero images, short-form video, voiceover. Brand-check filter sits at the output stage — every visual passes the brand style check before shipping.
  • LinkedIn Agency (Natasha): a fully isolated pipeline — Research → Content → PDF Carousel → Firebase → Auto-post. Carousels render via headless Chromium at 1080×1350 with hand-written light/dark templates, then ship straight to LinkedIn.
  • OpenClaw Skills — a CLI-loaded skill library — keeps every agent focused, structured, and on-brand across runs. No prompt drift between sessions.
  • Shared state in Firebase, not prompt-passing. Agents read and write to the same store — the moment that became true, hallucinations dropped sharply.

Architecture

Three-layer agency hierarchy on a $10/month Hostinger VPS. A single Telegram message reaches Jarvis (Layer 1 COO running a ReAct loop with persistent context in SOUL.md / USER.md / MEMORY.md). Jarvis routes through Groq's free tier to one of three agency CEOs — Shuri (Dev), Maya (Creative), Natasha (LinkedIn) — each owning a narrow pipeline of specialists. Heavy models (GLM-5, Gemini 2.5 Flash) are invoked only when needed; image and video agents always confirm with the user before firing. Shared Firebase state, not prompt-passing, is what keeps the whole agency coherent — and what makes a $10/month VPS replace a 5–7 person team.

Outcome

  • 15 agents across 3 agencies — fully autonomous after task input.
  • Running 24/7 on a $10/month Hostinger KVM2 VPS, zero downtime since launch.
  • Replaces what would otherwise be a 5–7 person team for a side project.
  • No SaaS subscriptions stacking up, no vendor lock-in, no data leaving the box. Fully customisable agency structure — fork it, rewire it, add your own CEOs.

Lessons learned

  • Specialisation beats generalisation. Narrow-scope agents with clear boundaries fail less than one big "do everything" model.
  • Shared state > prompt-passing. The moment agents share a store, hallucinations drop sharply.
  • One COO > round-robin routing. A single agent deciding who-does-what prevents infinite loops between peer agents.
  • Brand-check is mandatory — Maya (Creative) has a brand-checker built in so every output passes a visual style filter before shipping.
  • Persistent context files (SOUL / USER / MEMORY) beat re-prompting every turn. The agent stays itself across days, not just turns.

On LinkedIn