November 1, 2026 · 8 min read · Evaluation · Multi-agent · Reliability
Evaluating Multi-Agent Systems in Production
Why a demo that works once says nothing about an agent system, and how I check that a new version is really better.
Yassine Aqejjaj · HEAD OF AI · Updated on November 1, 2026
To evaluate a multi-agent system in production, run the same fixed scenarios against a baseline and a candidate version, score the work (tools, sources, cost, latency) as well as the final answer, keep traces so failures can be replayed, add human review, and let a release gate decide whether the candidate ships.
Why does a demo that works once prove nothing?
A multi-agent system changes with every prompt, tool, model or context change. Without a fixed set of scenarios, nobody can tell an improvement from a regression.
A demo shows that the system can succeed. Evaluation shows how often it does, and what it costs when it does not.
- Scenario
- Run
- Trace
- Score
- Human review
- Release gate
What does evaluating an agent system actually mean?
The useful question is never “does it work?”. It is “is this version better than the previous one, on which scenarios, on which criteria, at what cost, with which errors?”. That is an experiment, not a review meeting.
FORGE, my evaluation lab, is built around that idea. Its central object is the evaluation run: one scenario version, one agent version, one configuration, the execution trace, the evaluations and the scores, frozen into a reproducible manifest. A comparison between two versions is then a comparison between sets of runs, with scores, cost, errors and a confidence level.
FORGE is a public beta, and its results depend on the scenarios you configure. It is the method I want to defend, not a claim that a tool solves evaluation for you.
Which evaluation layers do you need?
No single method is enough. Each layer catches a different kind of failure and has a limit that the next layer has to cover. I stack them in this order, from cheapest and most objective to most expensive and most nuanced.
| Layer | What it catches | Its limit |
|---|---|---|
| Deterministic rules | Invalid schema, missing citations, forbidden sources, leaked personal data, wrong tool, cost or latency over budget | Cannot judge whether an answer is actually good or helpful |
| LLM judges | Quality, coherence and reasoning against a written rubric, with a justification and evidence linked to the trace | Judges have their own biases and drift; they need calibration |
| Human review | Subtle errors, tone, domain correctness, disagreements between judges | Slow and costly, so it must be targeted at the cases that matter |
| Traces | Which model call, tool call or retrieval step failed, so a failure can be replayed | A trace explains a failure but does not tell you whether it matters |
| Hold-out scenarios | Over-optimisation: a system tuned on public tests failing on new ones | Only as good as how fresh and representative they are |
How do you compare two versions of an agent system?
Pick a baseline and a candidate, run both on the same scenarios, repeat the runs because model outputs vary, and look at deltas per criterion rather than one global score. A single average hides the scenario where the candidate got worse.
- Freeze the scenarios and version them, so the test does not move while the agent does.
- Run the baseline and the candidate several times each, and compare with paired statistics, not a single run.
- Report deltas per criterion with a confidence interval, not only a composite score.
- List regressions per scenario, even when the average improves.
- End with a recommendation a person can act on: deploy, deploy with caution, do not deploy, or inconclusive.
How do you avoid fooling yourself with your own test set?
The biggest risk is not a bad agent, it is a good-looking one. Once a team tunes prompts against a public test set, the scores rise and the real behaviour may not. I separate three kinds of scenarios: public ones for everyday development, private ones whose content and expected result are hidden from the agent, and fresh ones added regularly to detect over-optimisation.
Canary strings help detect contamination, and structured error taxonomies (hallucination, contradiction, wrong tool, data leak, source error) turn a vague “it feels worse” into a countable, reviewable list.
Human calibration closes the loop. If the judges and the reviewers disagree, the first thing to fix is the judge, not the agent. Disagreement between judges is also the best way to prioritise what a human should read.
What does a RAG evaluation look like on a real platform?
On the DILA platform (public sector, services of the Prime Minister), the evaluation covered the whole RAG chain, not only the final text. That matters because a fluent answer can hide a retrieval failure. These figures were measured on the DILA platform, not by FORGE.
- Low faithfulness with high recall points at generation: the model had the facts and ignored them.
- Low recall points at retrieval: no prompt change will fix an answer whose evidence was never fetched.
| Metric | Score | What it tells you |
|---|---|---|
| Faithfulness | 0.94 | Whether the answer stays supported by the retrieved passages, rather than invented |
| Answer relevancy | 0.91 | Whether the answer actually addresses the question asked |
| Context precision | 0.89 | Whether the passages retrieved are the useful ones, with little noise |
| Context recall | 0.92 | Whether the passages needed to answer were retrieved at all |
| Scenario coverage | 85% | Share of priority RAG scenarios the evaluation covers |
Why score cost and latency like quality?
An agent that answers well but loops through tools for minutes is not better, it is more expensive. Cost, latency and tokens per step belong in the same scorecard as quality, with weights you set and can explain.
FORGE scores several dimensions, among them quality, coherence, reasoning, safety, robustness, cost, latency and user experience, and each composite score is published with its formula. The rule I hold to is simple: no score without an explanation. Every note must trace back to the criterion, the judge (model, version, prompt), the rule and the trace step concerned.
The DILA programme showed the same logic at platform level, where pipeline optimisation and reuse contributed to a 30% lower cost per AI request. That figure comes from the DILA platform, not from FORGE, but it shows why cost is a quality criterion and not an afterthought for finance.
What should a release gate decide?
A release gate turns evaluation into a decision. In practice it runs in continuous integration: if a candidate regresses on a criterion you declared critical, the pipeline stops, and the report shows which scenarios and which trace steps caused it.
The gate also needs a way out. A regression can be accepted, but only with a named owner and a reason, so the decision stays auditable. What the gate learns goes back into the scenarios: every incident found in production becomes a new test.
This is also what makes autonomy possible. When you can show what happens on a fixed set of scenarios, you can allow an agent to do more, and withdraw that permission when the evidence changes.
FREQUENTLY ASKED QUESTIONS
How do you evaluate a multi-agent system?
Run fixed, versioned scenarios against a baseline and a candidate, score tools, sources, cost and latency as well as the final answer, keep traces to replay failures, add human review for the hard cases, and compare versions with confidence levels rather than one-off impressions.
Can an LLM judge replace human review?
No. LLM judges scale well and give justifications, but they carry biases and drift. Calibrate them against human-labelled examples, measure how often they agree, and send the cases where judges disagree to a person. Humans stay the reference, judges make that review affordable.
What is the difference between evaluating an agent and evaluating a RAG pipeline?
A RAG pipeline is judged on retrieval and grounding: faithfulness, answer relevancy, context precision and context recall. An agent adds decisions, so you also score tool choices, sequencing, cost, latency and safety. A multi-agent system needs both, plus traces to see where it went wrong.
What is a release gate for AI agents?
It is an automated check, usually in continuous integration, that blocks a new agent version when it regresses on criteria you declared critical. It reports which scenarios failed and why, and it allows an accepted regression only with a named owner and a recorded reason.
Is FORGE ready for production use?
FORGE is a public beta, and its results depend on the scenarios you configure. It is useful to try the method and to compare agent versions on your own scenarios, but it should not be presented as a validated production tool. The DILA metrics in this article were measured on the DILA platform.
RESULTS
0.94
RAG faithfulness (DILA)
0.91
answer relevancy (DILA)
0.89
context precision (DILA)
0.92
context recall (DILA)
85%
of priority RAG scenarios covered (DILA)
THE CODE
KEEP READING
Figures come from validated client results and from my role at Devoteam. The projects on GitHub are public betas.