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:
| Agent | Role | Model | Location |
|---|---|---|---|
| Adrian | CEO / Coordinator | Codex 5.3 (cloud) | VPS |
| Scout | Opportunity Research | Codex 5.3 (cloud) | VPS |
| Revenue Ops | Monetization & Analytics | Codex 5.3 (cloud) | VPS |
| Domain Analyst | Domain Portfolio Scoring | Llama 3.1:70b (local) | ThinkPad |
| Site Builder | Site Generation & Deployment | CodeLlama:34b (local) | ThinkPad |
| Content Writer | Blog/Newsletter Content | Mistral: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
| Metric | Value |
|---|---|
| Lines of PRD written | 1,021 |
| Agents deployed | 6 of 7 (Trading Research is Phase 3) |
| Ollama models available | 20+ |
| Revenue generated | $0 |
| Total cost | $0 (beyond existing ChatGPT Pro subscription) |
| Config mistakes that cost 30 minutes | 1 |
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.