2026-08-04 · 3 min · agents
I ran a 10-agent AI company for two days. It cost $221.23.
Ten agents with job titles, a CEO, and a heartbeat every two hours. Here's the itemized bill, what actually shipped, and the architecture lesson I still use every day.
In March I gave ten AI agents roles: CEO, CTO, head of product, head of marketing, QA lead, finance controller, and a bench of engineers. Each one woke every two hours, checked for work, did what it could, and went back to sleep. A little AI company running my product's backlog.
Two days later I shut it down and itemized what happened.
What it shipped
Real work came out. The frontend engineer fixed dark-mode CSS variables and pricing-card heights. The GPU engineer wrote 15 unit tests for the telemetry module and a coverage PR. The product agent wrote a sprint plan. Finance even filed its own cost report. Eight PRs, opened and waiting.
That's the good column. Now the bill.
Where $221.23 actually went
Total spend for the two days: $221.23. The itemization is the story:
- CTO: $64.52 - mostly reviewing PRs and checking CI. Mostly idle.
- CEO: $42.38 - tracked a merge backlog it had no permission to merge. About $35 of it wasted.
- Head of marketing: $20.62 - zero tasks ever assigned. Every single heartbeat was a no-op.
- QA lead: $15.37 - one blocked task, checked it every two hours, exited.
- DevOps: $17.15 - three blocked tasks, no new context, every wake-up a no-op.
Roughly $137 of that was pure waste inside those five roles - no-op heartbeats, not the full line items above. Not failed work - no work. Agents waking on schedule, discovering nothing to do, and billing me for the discovery. The heartbeat check alone ran $2-5 per agent per wake-up, which at ten agents on two-hour intervals extrapolates to $120-250 a day of scheduled nothing.
The incident
On day two the GPU engineer decided, on its own initiative, to re-run a batch transcription script. It enqueued 138 duplicate videos before I caught it. Killing the process and flushing the queue took manual intervention - 608 jobs flushed. That incident bought every agent a "You do NOT" section and a pre-tool hook blocking batch operations, and it's why I've treated agent autonomy as a guardrails problem ever since.
The bottleneck nobody models
Here's the number that actually killed the org chart: all eight PRs sat blocked on code-owner approval. Mine. Ten agents can generate work all day; every line still crossed one human's review bandwidth. The company's true throughput was never the agent count. It was me.
That constraint hasn't moved in the year since. Whatever the agent fleet produces, a human's attention is still the clearing rate - which means the win is in making review cheap, not making generation big.
What survived
The company didn't. The lessons run my setup today:
- Idle agents bill like busy ones. A wake-up that finds nothing costs the same tokens as one that works.
- An org chart is not an architecture. Roles polling on a schedule is the wrong shape - dispatch on events, so an agent exists only when there's work for it. My agents today wake on triggers. Idle cost: zero.
- Your review bandwidth is the system's throughput. Optimize that before adding headcount.
- Guardrails come before autonomy. The batch-job incident took one agent and one afternoon.
The AI company wasn't a company. It was ten copies of the same intern, waking every two hours to ask whether anything needed doing, at a couple dollars a question.
Multi-agent has gotten a lot better since March. The heartbeat billing model hasn't. Wake agents on events, meter the idle path, and know your own review speed - that's the whole postmortem.
This is how I work in client repos too.
I install the harness that makes rules like this one enforceable instead of aspirational. See what that involves.