Case study · our own production host

19 agents, 47 scheduled jobs, zero restarts

A governed pipeline, not a swarm. How our own agency runs on a single 4-vCPU VPS with a hard approval gate, independent verification, and two agents whose only job is to audit the others.

Get my free blueprint
19
specialist agents
47
scheduled jobs
972
sessions in 68 days
0
service restarts

Read directly off the host on . No estimates.

The problem we were solving for ourselves

Running an agency means the same work every week: research the market, spot the patterns, decide what to build, build it, check it, ship it, then work out whether any of it was worth doing. We were the bottleneck at every one of those steps.

The obvious move — one big agent with a long prompt — fails for a reason that has nothing to do with model quality. A single agent that researches, decides, builds, and verifies its own work has no independent check on itself. It will confidently ship something wrong and then confirm that it was right. The failure is structural, not intellectual.

So we built the thing an agency actually is: specialists with defined mandates and a chain of custody between them.

The architecture: a pipeline with a hard gate

Nineteen agents, each with its own identity file stating its mandate and its hard limits, its own skills directory, and its own model configuration. The core content path runs in one direction:

research → dreamer → operator → coder → qa → publisher
(gather)   (pattern)  (approve)  (build)  (verify) (ship)

Each handoff is a real boundary, and the boundaries are written into the agents themselves. The build agent's own instructions read: "You build what Operator approved. Nothing more. Nothing less." The approval agent's read: "You are the gate between IDEA and BUILD… nothing reaches Coder without going through you."

The verification agent is the one that matters most, and it is deliberately kept ignorant:"You are independent of the build — you don't know what coder thinks the result should be; you read the manifest yourself and check the artifact against it." That single design decision is what stops the system from grading its own homework.

The two agents that produce nothing

This is the part most multi-agent designs skip. Two of the nineteen agents create no output and take no action at all — they exist purely to keep the rest honest.

An agent fleet with no auditor drifts silently. You do not find out until output quality has been degrading for a month. These two are the cheapest insurance in the system.

The orchestration layer

One agent acts as the operator and thought partner for the whole fleet, and it owns the schedule: 27 of the 47 scheduled jobs are it dispatching work into other agentsrather than doing the work itself. A representative slice of what runs unattended:

JobCadenceWhat it does
morning-feeddailyAssembles the day's inbound signal
agency-daily-digestdailyWhat the fleet did in the last 24h
subconscious-sweepdailyFleet health check
qa-daily-sweepdailyVerification pass over pending artifacts
trust-pipeline-watchdogintervalWatches the chain of custody itself
qa-to-publisher-watcherintervalMoves verified work to shipping
retention-sweepweeklyIs each track still earning its keep?
seo-recon-weekly-auditweeklySearch intelligence refresh

Twelve jobs run daily, nine weekly, and eight on continuous intervals. Across 68 days the fleet logged 972 agent sessions — roughly fourteen a day, unattended.

What it runs on

One Linux VPS: 4 vCPU, 15 GiB RAM. No Kubernetes. No container orchestration platform. No managed agent service. The agents run as plain systemd user services, behind a Caddy reverse proxy, with PostgreSQL and Valkey for state, fail2ban on the edge, and the control dashboard reachable only over a private Tailscale network — never exposed to the public internet.

At survey time all five agent services and all nine hosted application services reportedzero restarts, on a host with disk at 16%.

We mention the modest hardware deliberately. The interesting constraint in agent systems is almost never compute — it is context, state, and control. A fleet this size fits comfortably on a machine you could rent for the price of a couple of lunches.

What broke — the honest part

Of 47 scheduled jobs at survey time: 34 healthy, 6 in error, 7 never yet run. We are showing you the 6, because their pattern is the single most useful thing on this page.

Failure classJobsCause
Model entitlement drift3A provider revoked free-tier access to a model slug mid-flight. The agent got a 404 telling it to use the paid slug instead.
Delivery channel misconfiguration8Work completed successfully, then had nowhere to go — a messaging platform not enabled, or no delivery target resolved.
Upstream 5xx2Provider-side internal error. Nothing wrong on our side.
Provider unconfigured1A profile left without a model selected after a config change.

Not one of those failures was the model being wrong. Every single one was dependency drift, configuration, or an upstream outage. That is the entire argument for building guardrails before you build capability — and it is why we tell clients that the interesting engineering in agent systems lives in the plumbing, not the prompt.

The delivery-channel class is the one worth internalising: eight jobs did their work correctly and then dropped it on the floor because the last mile was not wired. An agent that completes successfully and delivers nowhere looks healthy in every metric that matters to the model and is completely useless to the business.

What this case study does not prove

We would rather state the limits than let you infer something we cannot support:

What we would carry into your build

The transferable parts are not the agent count. They are the four structural decisions: separate the agent that builds from the agent that verifies; put a hard approval gate in front of the build step; give something the job of auditing the fleet with no power to act on it; and wire the last mile before you celebrate a green run.

None of that requires nineteen agents. All of it applies to your first one.

Questions

Why 19 agents instead of one capable agent?

Because a single agent that researches, decides, builds, and verifies its own work has no independent check on itself — it will ship something wrong and then confirm it was right. Splitting build from verification, and putting a hard approval gate in front of the build, is a structural fix rather than a prompt fix. For a single well-scoped workflow, though, one agent with persistent memory is the better answer.

What hardware does a 19-agent fleet actually need?

Ours runs on a single 4 vCPU / 15 GiB VPS with disk at 16% used, as plain systemd services behind a Caddy proxy with PostgreSQL and Valkey for state. No Kubernetes and no container orchestration. Compute is rarely the binding constraint in agent systems — context, state, and control are.

How did the scheduled jobs actually fail in production?

Of 47 jobs, 34 were healthy, 6 in error, and 7 had not yet run. The 6 failures broke down as: 3 from a provider revoking free-tier access to a model mid-flight, 8 job-level delivery misconfigurations where work completed but had nowhere to go, 2 upstream 500s, and 1 profile left without a model selected. None were caused by model quality.

What is the point of an agent that produces no output?

Two of our nineteen agents create nothing: one computes fleet health and explicitly does not interpret it for action, and one audits whether each output track still earns its keep and only recommends. An agent fleet without an auditor drifts silently — you discover it a month after quality started degrading. They are the cheapest insurance in the system.

Do you run client systems the same way?

The patterns are the same — separation of build from verification, a hard approval gate, an auditing layer, and self-hosted deployment. The scale and the specific agents differ per engagement. Client architecture and metrics are covered by NDA and are not published without written permission.

Amit Kumar

Founder of I Am Agent Man. Builds and runs production AI agents on Hermes, OpenClaw, and MCP — self-hosted, model-agnostic, with persistent memory and hard cost ceilings.

Want this architecture applied to your workflow?

Tell us what eats your week. We'll scope the first agent and the guardrails it needs — free, before any invoice.

Goes straight to hello@iamagentman.com — we read every message ourselves. Prefer to answer three questions instead?Build your blueprint.

Get my agent blueprint — free

No retainer to start · reply within 24 hours