← blog.buildwithjz.com

Day 1 Evening: Agents Go Autonomous

2026-03-07 · MoneyMachine

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


From Deployed to Autonomous

The morning session got all six agents deployed and healthy. The evening session was about making them actually work — autonomously, 24/7, without hand-holding. It was a rougher ride than expected.

The tools.profile Wall

The first problem: agents weren’t doing anything. Adrian was “working” (because he’s on Codex 5.3 and fast), but the other five agents just reported “ready” on the dashboard and sat there.

Root cause: tools.profile: "minimal". That setting strips agents down to a single tool — session_status. They literally couldn’t read files, write files, or execute anything. They’d receive a task, try to work, discover they had no tools, and politely report back “I’ll get right on that” without actually doing it.

Fix: openclaw config set tools.profile coding — which gives agents group:fs, group:runtime, group:sessions, and group:memory. After a gateway restart, all agents could finally interact with their environments. Lesson: “minimal” in OpenClaw means “functionally paralyzed.”

The —expect-final Revelation

Even after fixing tools, agents were completing their cron jobs in 6-9 seconds. That’s one LLM turn — enough to read the task and say “I’ll do this,” but not enough to actually use any tools.

The issue: cron jobs without --expect-final fire a single turn and exit. The agent responds once and the session closes. For an agent to actually do multi-step work (read directives → pick a task → use web search → write results), it needs the session to stay open for the full tool-use loop.

Fix: openclaw cron edit {id} --expect-final on all 8 cron jobs. After this, agents started doing real work — sessions lasted minutes instead of seconds, and actual files started appearing in workspaces.

The Timeout Marathon

With agents now doing real work, a new problem emerged: timeouts. The default cron timeout is 120 seconds. That’s fine for Codex 5.3 (cloud, fast), but the three Ollama agents — Scout (35B), Domain Analyst (70B), and Content Writer (30B) — run on a ThinkPad P16 with 16GB of VRAM. Only one model fits in VRAM at a time. When all three are scheduled close together, Ollama swaps models in and out, and a single turn can take 5-10 minutes.

We went through three rounds of timeout increases:

  • 120s → 600s: Codex agents worked, Ollama agents still timed out
  • 600s → 1200s: Better, but still marginal under VRAM contention
  • 1200s → 1800s: Current setting. 30 minutes gives Ollama plenty of room even during heavy model swapping.

The Dashboard

Built a full ops dashboard at http://100.68.7.23:3333 (Tailscale only):

  • Agent status cards — name, role, model, current status, last activity
  • Kanban board — tasks from all agents in columns (backlog → in progress → review → done)
  • Activity feed — real-time log of what every agent is doing
  • Approval queue — pending items requiring human sign-off
  • Metrics panel — portfolio stats, uptime, task completion

The dashboard reads directly from agent workspaces and the shared dashboard-state/ directory. Each agent writes to activity.jsonl after every action, so the feed stays current.

Interactive Approval Flow

The evening’s big feature: clicking a task card opens a detail modal showing:

  • Task description and agent assignment
  • File tree browser (browseable list of all files in the agent’s workspace)
  • Preview link (port 4444) for built sites
  • Approve and Reject buttons
  • Reject requires a comment explaining what’s wrong

Rejection feedback flows: Dashboard → feedback-{id}.json → Adrian picks up on next heartbeat → forwards to originating agent → agent revises → re-submits.

The Quality Gate

Jeff’s key insight from watching the first approval come in (Site Builder’s aitoolchamp.com landing page): “Adrian should review it before me.”

So we added a quality gate. Adrian is now the first reviewer of ALL deliverables:

  1. Agent completes work → writes to ready-for-review/
  2. Adrian reviews on next heartbeat cycle
  3. If quality is poor: sends it back to the agent with feedback (no human ever sees it)
  4. If quality passes: adds to the human approval queue with his review notes

This means Jeff and Zachary only see polished, Adrian-approved work in their dashboard. The back-and-forth between Adrian and worker agents happens invisibly in the background.

Site Builder’s First Deliverable

The first real output from the system: Site Builder scaffolded and built aitoolchamp.com. Full Astro project with:

  • Landing page (hero, value prop, email capture)
  • Tailwind CSS styling
  • Playwright test suite
  • Cloudflare Pages deployment config
  • SEO metadata (robots.txt, sitemap)

The built site is previewable at http://100.68.7.23:4444. It’s a starting point — not production-ready — but it’s the first tangible output of the agent system. Currently sitting in the approval queue waiting for review.

Day 1 (Full) by the Numbers

MetricValue
Agents deployed6
Cron jobs active8
Config mistakes fixed4 (tools.profile, —expect-final, timeouts, permissions)
Dashboard features shippedAgent cards, kanban, activity feed, approval flow, preview
Sites scaffolded by agents1 (aitoolchamp.com)
Approval items in queue1
Revenue generated$0
Total cost$0 (beyond ChatGPT Pro subscription)

What I Learned Today

  1. “Minimal” means minimal. OpenClaw’s minimal tools profile gives agents exactly one tool. Read the profile definitions before choosing.
  2. Cron jobs need —expect-final for real work. Without it, agents do one turn and stop. This is the single most important flag for autonomous agent operation.
  3. VRAM is the bottleneck for local models. Three agents sharing 16GB means constant model swapping. Budget 30 minutes for timeouts.
  4. Quality gates beat approval queues. Having Adrian filter deliverables before they reach humans dramatically reduces the noise in the approval queue.
  5. File permissions are insidious. The agentops user runs agents, jeff runs the dashboard. Getting ACLs right took three iterations with chmod, setfacl, and group membership.

What’s Running Right Now

All six agents are in their autonomous cycles:

  • Adrian: Heartbeat every 30 minutes, reviewing deliverables, checking for rejection feedback
  • Scout: Scanning Reddit/HN/Trends every 2 hours
  • Revenue Ops: Building P&L tracker, monitoring tokens (every 3 hours)
  • Domain Analyst: Scoring domains every 4 hours (starting with Tier 1)
  • Site Builder: Building aitoolchamp.com features every 3 hours
  • Content Writer: Drafting SEO content every 4 hours

Tomorrow morning, I’ll check Adrian’s morning brief to see what the agents accomplished overnight. That’s the whole point of 24/7 autonomy — wake up to progress, not a to-do list.


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


Back to index