← blog.buildwithjz.com

Day 1: From Zero to Six Agents in One Session

2026-03-07 · MoneyMachine

Date: March 7, 2026 Author: Jeff (written with AI assistance) Project: MoneyMachine — building an autonomous revenue-generating agent swarm, in public


The Starting Line

Today I woke up with an idea and a voice memo. By midnight, I had six autonomous agents running on a distributed infrastructure spanning a Contabo VPS and a ThinkPad P16 with 192GB of RAM. This is how Day 1 went.

It started, of all ways, with a voice message to Adrian — the AI agent I’d designated as “CEO” of this whole operation. The problem? Adrian couldn’t even read voice messages yet. So before anything else, I had to solve that.

Building the Voice Pipeline

I needed a way to turn Telegram voice notes into text that Adrian could actually process. The solution: faster-whisper for transcription, inotifywait to watch for new audio files, and a systemd service to keep it all running.

The core loop is dead simple:

inotifywait -m -e close_write --format '%f' /var/telegram-voice/ | while read FILE; do
  faster-whisper --model large-v3 --language en \
    "/var/telegram-voice/$FILE" \
    > "/var/telegram-transcripts/${FILE%.ogg}.txt"
done

Wrap that in a systemd unit, enable it, and suddenly Adrian can hear. Total time: maybe 45 minutes including testing. This pattern — inotifywait + processing pipeline + systemd — is one I’d recommend for any agent that needs to handle incoming media. It’s boring infrastructure, and boring infrastructure is the best kind.

The PRD: 1,021 Lines Before Writing a Single Config

Before touching any agent configuration, Zachary and I spent hours in a Q&A session with Claude building out a comprehensive PRD. Every agent’s role. Every constraint. Revenue targets. Domain strategy. Security posture. Phase gates.

1,021 lines.

Some people would call that over-engineering for Day 1. I’d call it the single best investment of the day. When I got to actually deploying agents later, I wasn’t guessing at boundaries or making up roles on the fly. Every agent had a clear mandate, clear constraints, and a clear relationship to the others. Agents without boundaries are just expensive random number generators.

Infrastructure: Two Nodes, One Mission

Contabo VPS got the security and build tooling:

  • Cisco AI Skill Scanner, MCP Scanner, and ClawScan for security scanning
  • Bun and Wrangler for Cloudflare Workers deployment
  • Playwright for headless browser automation
  • The STT pipeline described above

ThinkPad P16 (the 192GB beast) became the worker node:

  • Node.js + Bun runtime
  • OpenClaw agent framework
  • Ollama with 20+ models verified and accessible
  • Wrangler authenticated to our Cloudflare account
  • Playwright installed and tested
  • All three security scanners mirrored

I also got Zachary connected — Telegram bot access and Tailscale for secure networking between nodes. Two humans, six agents, two machines, one mesh network.

The Ollama Config Wall

This is the part where I admit I burned 30 minutes on a config mistake that the docs would have prevented if I’d read them more carefully.

I needed to wire Ollama as a model provider in OpenClaw so three of the agents could run on local models (free inference). I put the config here:

# WRONG — do not do this
auth:
  profiles:
    ollama:
      base_url: http://localhost:11434
      models:
        - llama3.1:70b
        - codellama:34b

Nothing worked. Agents couldn’t see the models. No errors, just silent failure — the worst kind.

The correct config lives under models.providers:

# CORRECT — Ollama provider config in OpenClaw
models:
  providers:
    ollama:
      base_url: http://localhost:11434
      models:
        - llama3.1:70b
        - codellama:34b
        - mistral:7b

Lesson learned: auth.profiles is for API-key-based cloud providers. models.providers is for self-hosted backends like Ollama. The naming isn’t unintuitive once you know it, but I didn’t know it, and the error surface was completely silent. If you’re setting up OpenClaw with Ollama, save yourself the 30 minutes.

Six Agents, Live and Healthy

By the end of the session, the Gateway restarted cleanly with all six agents reporting healthy:

AgentRoleModelLocation
AdrianCEO / CoordinatorCodex 5.3 (cloud)VPS
ScoutOpportunity ResearchCodex 5.3 (cloud)VPS
Revenue OpsMonetization & AnalyticsCodex 5.3 (cloud)VPS
Domain AnalystDomain Portfolio ScoringLlama 3.1:70b (local)ThinkPad
Site BuilderSite Generation & DeploymentCodeLlama:34b (local)ThinkPad
Content WriterBlog/Newsletter ContentMistral:7b (local)ThinkPad

Each agent got a SOUL.md file — a brain document defining its identity, responsibilities, constraints, and relationships to other agents. Think of it as a constitution for each agent. Without these, you get agents that drift, overlap, and conflict. With them, you get agents that know their lane.

The seventh agent — Trading Research — is scoped for Phase 3. No point deploying what you can’t supervise yet.

Day 1 by the Numbers

MetricValue
Lines of PRD written1,021
Agents deployed6 of 7 (Trading Research is Phase 3)
Ollama models available20+
Revenue generated$0
Total cost$0 (beyond existing ChatGPT Pro subscription)
Config mistakes that cost 30 minutes1

What’s Next: Day 2

Tomorrow the agents start earning their keep:

  • Domain Analyst runs scorecards on all 26 domains in the portfolio — traffic potential, monetization fit, keyword opportunity
  • Set up a heartbeat cron and morning brief so I wake up to a status report instead of having to ask for one
  • Site Builder starts on the first real site: aitoolchamp.com
  • Kick off Beehiiv newsletter setup for the content pipeline

The goal isn’t to generate revenue on Day 2. The goal is to have the machinery in place so that revenue becomes an inevitable output of the system rather than a thing we have to chase manually.


This repo is updated daily. For project overview and architecture, see the README.

Building in public means showing the stumbles alongside the wins. Today was mostly wins, one dumb config mistake, and a mass of foundational work that won’t be visible until the agents start producing. That’s fine. Day 1 is for foundations.


Back to index