The problem

The client operates a mid-size electronics manufacturing facility where a production line stoppage triggers a manual, multi-step investigation. An operator checks the machine's error logs, a maintenance technician cross-references them against a maintenance history spreadsheet, someone checks whether a similar fault happened recently on another line, and a shift supervisor decides whether to escalate to engineering. Done by people moving between systems that didn't talk to each other, this typically took 45 minutes to an hour before the root cause was identified, and the line stayed down the whole time.

A single agent wrapping one tool wasn't going to solve this. The investigation genuinely spans multiple distinct systems (machine telemetry, a maintenance ticketing system, a parts inventory database, and historical fault records) each with different access patterns and different domain logic for interpreting the data correctly.

Why this needed multiple specialized agents, not one generalist

Our first design used a single agent with access to all four systems as tools. It worked in simple cases but performed poorly on anything requiring genuine cross-system reasoning. A single prompt trying to hold expertise in telemetry interpretation, maintenance history, and parts availability at once produced shallow reasoning in all three areas rather than depth in any.

We restructured around four specialist agents, each with a narrow domain and its own tool access, coordinated by an orchestrator agent that decomposes an incoming fault report into sub-questions and routes them to the right specialist.

Architecture

The five agents

Tool-use reliability as a first-class concern

With five agents calling into different backend systems, tool-use reliability (calling the right tool with well-formed arguments) was a central design and testing concern. Each agent's tool schemas use strict typing and validation, and a dedicated evaluation harness measures the correct tool-use rate separately from the correctness of the final recommendation, because a wrong tool call can silently produce a plausible-looking wrong answer.

Human-in-the-loop by design, not as a limitation

The system produces a triage recommendation, not an autonomous action. The shift supervisor sees the orchestrator's synthesized reasoning and each specialist agent's individual findings, and makes the final escalation decision. We designed it this way deliberately: a wrong root-cause guess acted on autonomously on a live production line is much worse than a slightly slower, human-reviewed recommendation, and the client's engineering leadership was clear that this was non-negotiable for a first version.

A design decision worth calling out
We recommended the multi-agent split only after seeing the single-agent version's evaluation results; it wasn't decided upfront. It would have been easy to over-engineer a multi-agent system from day one on the assumption that it would be better. Instead we proved with real evaluation data that the single-agent approach was insufficient before adding the complexity of an orchestrator and specialists.

Challenges and tradeoffs

Results

With the system's recommendation as the shift supervisor's starting point, root-cause triage time dropped from a 45-to-60-minute manual process to a median of roughly 13 minutes, a 3.5-times improvement measured over the first two months in production. The correct tool-use rate across all five agents held at 92% in the production evaluation harness. Failures are monitored, and when confidence is low the system falls back to showing the supervisor raw system data instead of a synthesized recommendation.

The client's maintenance engineering lead noted that the cross-line pattern agent, almost cut from scope during planning as a "nice to have," caught two systemic issues in its first month that would likely have been treated as isolated incidents under the old manual process.

What we'd do differently

We'd build the labeled evaluation set of past fault investigations earlier, ideally during discovery rather than after the single-agent prototype had been tested informally. Having it from the start would have let us make the single-versus-multi-agent decision with real numbers from day one instead of largely qualitative early impressions.