Nine agents. One trucking company. Every route, every truck, every spreadsheet.
This is the largest system we have put into production: nine coordinated agents that took over the operational backbone of a trucking company. Routes are planned and sourced by agents. Trucks and drivers are tracked by agents. Fuel, maintenance, and registrations, the paperwork that used to live in thirty scattered Excel files, now lives in one structured system that agents maintain. And at the top sits the ninth agent, the one the owner talks to: any question about the business, answered in seconds, from data that is finally in one place. Not a tool the company uses. A layer the company runs on.
Hermes runtime 9-agent orchestration Supabase Excel consolidation Natural-language reporting
The company was successful and drowning. Every truck generated paperwork: fuel receipts, service records, registration deadlines, driver documents, route sheets. Every category had its own Excel file, every Excel had its own owner, and every owner had their own version. The dispatcher planned routes from experience and phone calls. The fleet manager tracked maintenance in one spreadsheet and registrations in another. Nobody had the whole picture, including the person who owned the whole picture.
The owner's daily reality was the sharpest symptom: a simple question like "how much did truck 14 cost us last quarter" meant asking three people to open four files and reconcile them, a process measured in days and finished in approximations. The business generated the data. The business just could not reach it.
The brief was not "automate a task." It was "run the operation." That is not one agent's job. It is a fleet's.
I · Dispatcher
The coordinator. Routes work between agents, sequences their tasks, and escalates to humans when a decision exceeds its mandate.
II · Route Planner
Plans truck routes: distances, tolls, rest requirements, delivery windows. Proposes, a human dispatcher confirms.
III · Load Finder
Sources routes and loads for available trucks, matches capacity to opportunity, and surfaces the options worth a phone call.
IV · Driver Manager
Tracks driver assignments, driving hours, and document validity. Knows who can legally take which route tomorrow.
V · Fuel Agent
Maintains all fuel records per vehicle, tracks consumption patterns, and flags anomalies that used to hide in spreadsheet rows.
VI · Maintenance Agent
Owns service intervals, repairs, and vehicle history. Raises the flag before the deadline, not after the breakdown.
VII · Compliance Agent
Registrations, insurance, technical inspections. Every date for every vehicle, tracked centrally, escalated in advance.
VIII · Records Agent
The quiet workhorse. Consolidated thirty scattered Excel files into one structured, consistent data layer, and keeps it that way as new data flows in.
IX · Owner's Agent
The interface to everything. The owner asks in plain language, the agent queries the consolidated data and answers in seconds. Read-only by design.
> ingest
Operational data flows in continuously: fuel entries, service events, driver updates, route confirmations. The Records Agent normalizes everything into one structured layer in Supabase. The spreadsheets did not get better, they got retired.
> plan
Each morning the Route Planner and Load Finder prepare the day: proposed routes for committed cargo, sourced options for free capacity, checked against Driver Manager for legal driving hours and Compliance for vehicle status.
> confirm
Proposals land with the human dispatcher as a prepared decision, not a blank page. The dispatcher confirms, adjusts, or rejects. Trucks move on human authority, agents just make that authority fast.
> watch
Fuel, Maintenance, and Compliance agents monitor continuously. A consumption anomaly, an approaching service interval, an expiring registration, each becomes a flagged item with a deadline, routed to the right person by the Dispatcher agent.
> answer
The owner asks the Owner's Agent anything: cost per truck, cost per route, driver utilization, which vehicles are due for anything. The answer comes from the consolidated layer in seconds, with the numbers traceable to their source records.
> escalate
Every agent has a mandate boundary written as a contract. Anything beyond it, unusual costs, conflicting data, a decision with money on the line, stops and escalates to a named human. The fleet is autonomous in labor, not in authority.
Layer I · Visual Architecture
One diagram for nine agents: data in at the bottom, the Records Agent as the foundation everything stands on, operational agents in the middle, the Dispatcher coordinating, the Owner's Agent on top. The client's management saw and approved the whole system on one page before a line of code existed.
Layer II · Contracts
Nine agents means nine mandates. Each agent's contract defines what it owns, what it may propose, what it must escalate, and which human is its counterpart. The escalation map is the most important document in the project: autonomy is only safe when its edges are written down.
Layer III · Technical Diagrams
Inter-agent messaging, the shared data layer schema, the Excel migration plan, anomaly thresholds, and the escalation routing, specified before implementation. The migration of thirty spreadsheets got its own diagram set, legacy data is where multi-agent projects quietly die, so it was treated as a first-class engineering problem.
Layer IV · Implementation
Hermes runtime, all nine agents on dedicated isolated infrastructure. Supabase as the single structured data layer beneath the entire fleet. Rolled out in stages: records first, then monitoring, then planning, then the Owner's Agent, each stage earning trust before the next one shipped.
runtime Hermes, 9 coordinated agents orchestration dispatcher agent, contract-bound mandates state Supabase, single consolidated data layer migration 30+ legacy Excel files, normalized and retired reporting natural-language querying, read-only, source-traceable oversight human confirmation on dispatch, named escalation paths
Agents disagreeing
With nine agents over one dataset, conflicts are a certainty, not a risk. Contradictory data or conflicting proposals are never resolved silently, the Dispatcher escalates them with both versions attached. Averaging a contradiction is how systems lie.
The legacy data trap
Thirty Excel files meant thirty naming conventions, duplicate vehicles, and years of creative bookkeeping. Migration ran as a supervised process with the client validating each category before its spreadsheet was retired. Nothing was deleted until its replacement had survived a full month.
Cascade failure
One agent going down must not take the fleet with it. Each agent fails independently, its queue persists, and the Dispatcher routes around it while flagging degraded coverage to humans.
Silent drift
A monitoring agent that stops flagging looks identical to a company with no problems. Every watcher agent emits a heartbeat, and silence itself triggers an alert. The absence of bad news is verified, not assumed.
Owner's Agent overreach
The most-used agent has the narrowest permissions. It reads from the consolidated layer and nothing else, every answer traceable to source records. The one agent talking to the owner every day is the one agent that cannot touch anything.
9
agents in coordinated production
30+
Excel files consolidated and retired
< 30 sec
owner's question to sourced answer, previously days
0
missed registration or inspection deadlines since launch
5 stages
rollout, each earning trust before the next
Figures from the staged rollout and the first months of full production, measured against the client's previous process.
The data layer is the real product. Eight of the nine agents would be impossible without the one that consolidated the spreadsheets. Multi-agent systems are built on boring foundations: before an agent can plan a route or flag an anomaly, someone has to make the data mean the same thing everywhere. That someone should also be an agent.
Autonomy scales only as fast as trust. The staged rollout was not caution theater. Records first, then watching, then proposing, each stage ran until the client stopped checking the agents' work out of doubt and started checking it out of habit. The fleet earned its mandate one layer at a time.
Nine agents did not replace nine people. They replaced the part of everyone's job that was spreadsheet archaeology, deadline anxiety, and reconstructing the truth from four conflicting files. The dispatcher still dispatches, with prepared decisions instead of blank mornings. The owner still decides, with answers instead of estimates. The company did not get smaller. It got legible.
If your company runs on thirty spreadsheets, it can run on a fleet.
> ../book_a_call.sh