Behind the Build · July 2026 · 8 min read

Inside a 23-Agent AI System We Built for a Software Agency Client

Running a software agency means juggling five departments at once: sales, finance, engineering, marketing, and client success — often with a team far smaller than the workload demands. One of our clients, a software agency, came to us with exactly that problem. Instead of hiring for every gap or duct-taping together a dozen SaaS subscriptions, we built them a multi-agent operating system: 23 specialized AI agents, each responsible for one job, coordinated by a self-healing orchestration layer that runs on a standard laptop.

This is the architecture end to end — how the agents are organized, how the system recovers from failures automatically, how cost stays controlled, and how we rolled it out in production.

The core design decision: hybrid, not all-cloud

Most multi-agent frameworks assume everything runs in the cloud, or everything runs locally. We split the difference deliberately:

This split matters for two reasons. Cost: local orchestration means no server bills for the parts of the system that don't need heavy compute — SQLite, not a managed database; local Docker, not a cloud sandbox service. Control: the client's code, proposals, and CRM data never leave the machine except as a stateless text prompt to a model — nothing sits in a third party's application layer.

Model routing: two clusters, two jobs

Not every agent needs the same kind of intelligence. Work routes to two model tiers based on what the task actually demands:

Every call through this router is metered in real time against a hard per-session cost ceiling. Cross the budget, execution halts immediately and an alert fires — no runaway bill, ever.

The 23-agent matrix

The agents are organized into five departments, mirroring how the agency itself is structured:

The orchestration layer: a cyclic state machine

Instead of a rigid pipeline, the system runs as a cyclic, checkpointed graph (LangGraph). Several loops are load-bearing to the design:

Built to survive crashes, not just handle success

Rolling it out: one agent at a time

We didn't flip on all 23 agents simultaneously — risk stayed proportional to trust earned. Lead intake and CRM went live first (zero external side effects, immediate pipeline visibility), then sales drafting (always human-reviewed before reaching a client), then the engineering core, then the QA safety net once the coding loop was trusted, then delivery polish, then memory and marketing once there was a real backlog worth indexing. Anything external-facing — scraping or posting under the agency's name — went live last, only after every upstream step had been reviewed by hand for weeks.

What this actually buys the client

Not "AI replaces the team" — a structured, auditable layer between "a lead exists" and "a project ships," where every drafting step is AI-assisted but every consequential action — approving scope, signing off architecture, sending a contract — stays a deliberate human decision. The system drafts everything; a person still owns every send.

Want something like this built for your business?

Book a Free 30-Min Call