Fabri · Company Evaluation · Study 01

Do AI-agent companies do the job reliably? A setup-qualification study of three Fabri companies

Fabri Company Evaluation

Fabri v0.18.5 · 20 July 2026 · openai / gpt-5.6-terra + gpt-4o-mini

Abstract

We evaluate whether three multi-agent "companies" built on Fabri can complete a real workload correctly on every attempt, each from clean, isolated state. Under a strict 100%-reliability gate across independent replicas, none of the three companies qualifies. Support HQ passes a 3-replica release gate (3/3) but falls to 9/10 (≈90%) under a 10-replica confirmation, demonstrating that the small-sample gate is statistically fragile. Reliability Labs (2/3 rubric) and Revenue Ops (0/3 rubric) fail chiefly by over-claiming — asserting outcomes absent from the supplied evidence — the exact failure mode the rubrics target. Cost is recursively accounted across each company's full delegation tree: median $0.020200 per Support HQ run; the complete study cost $0.82. Every result carries a self-generated reproducibility manifest; prompts, traces, and raw output are withheld.

Keywords: agent evaluation · reliability · reproducibility · over-claiming · recursive cost accounting

CI-gatedOnly the offline retrieval eval (recall@k / MRR) runs as an automated regression gate on every commit. One-off liveevery other number on this page — setup qualification, memory-vs-control, the retrieval-config sweep, and the session-N+1 cost delta — is a single reviewed live measurement, not a continuously re-verified one.

This page is current as of Fabri v0.19.0 (published 2026-07-21). Individual results below carry their own Fabri version where it differs.

1The question

Before asking whether a company of agents is capable, we ask whether it is dependable: given the same task and a fresh, isolated environment, does it finish the work — and finish it correctly — on every attempt? We hold each company to a strict bar: to qualify, a setup must pass end-to-end on 100% of its scheduled replicas. Anything less is not a qualification.

2Method

  1. Isolation. Every replica gets a fresh compile of the company and its own disposable home directory, so no state leaks between runs.
  2. Two separate measurements. Completion (did the run finish and produce output) and rubric (was the output correct and safe) are scored independently and never averaged together; an incomplete run receives no rubric verdict.
  3. Deterministic rubric. The output is checked for required concepts and forbidden phrases fixed in advance — e.g. an incident update must mention a rollback and a follow-up, and must not claim a fix was deployed without evidence.
  4. Recursive cost. Every delegated sub-agent's spend rolls up into the parent, so a reported cost is the whole company's tree, not just the top.
  5. Bounded candidate search with no-op rejection. A proposed configuration change that preflight shows would do nothing is rejected before any model call — a no-op costs nothing.

3Results

0 / 3companies cleared the bar
9 / 10Support HQ, ten replicas
$0.0202median cost / run
$0.82total study cost
CompanyReplicasCompletionRubricQualifiesPrimary failure
Support HQincident response 3 → 1010/10 9/1090%, 95% CI 60–98%No 3/3 gate (95% CI 44–100%) did not replicate; 1 run omitted the follow-up
Reliability Labsincident release gate 33/3 2/367%, 95% CI 21–94%No claimed "fix was deployed" (unverified); n=3, underpowered
Revenue Opsevidence-backed outreach 32/3 0/30%, 95% CI 0–56%No claimed unsourced results; 1 truncation; n=3, underpowered
Table 1. Setup-qualification outcomes with 95% Wilson score intervals on the rubric rate. Completion is near-total everywhere; the gap is entirely in the rubric — i.e. in output correctness, not in whether the run finished. Support HQ's small-sample 3/3 gate is shown alongside its 10-replica confirmation. At n=3, Reliability Labs' and Revenue Ops' intervals span roughly 20–95% — wide enough that these two rows are underpowered reads, not precise measurements; only Support HQ's n=10 confirmation narrows the interval enough to be informative.

4Discussion

Small samples overstate reliability. Support HQ's 3/3 release gate (95% CI 44–100%) read as flawless, yet ten runs of the identical setup produced 9/10 (90%, 95% CI 60–98%). The additional replicas did not refine the estimate so much as overturn it: the true rubric reliability is near 90%, and the 100% gate is not met.

The dominant failure is over-claiming. Two of three companies failed by asserting facts the evidence did not support — a deployed fix, a customer result, buying intent. These are precisely the errors the rubrics forbid, and the harness caught each one. That completion was near-total throughout underscores the central point: a run finishing cleanly is not evidence that its output is correct.

5Limitations

6Companion study: memory vs. control

A separate controlled experiment asks whether Fabri's trace-backed memory earns its cost. The company is trained on a related task — writing its learned guidelines to memory — then given a fresh holdout task twice: once with that memory copied into a clean compile, once with empty memory (the control). Across ten replicas of Support HQ, memory retrieved 2 trained guidelines on every run (control: 0) — the mechanism fires reliably. Yet the memory arm passed the holdout rubric only 7/10 (70%, 95% CI 40–89%), against 9/10 (90%, 95% CI 60–98%) for control. That is a descriptive −20-point gap. The Wilson intervals describe each arm separately, and no paired significance test was run, so this does not establish a statistically significant disadvantage for memory. A preliminary three-replica pilot had shown the opposite sign (memory 3/3 vs control 2/3, both with CIs spanning roughly 20–100% at n=3 — barely more than a coin flip's worth of evidence); the larger sample did not so much shrink that gain as flip its point estimate — the same small-sample fragility documented in §3. On this workload the self-improvement loop runs and is not shown to pay: it retrieves lessons reliably, and the runs that received them did not measurably do better.

The pattern is not unique to Support HQ. A ten-replica run on Reliability Labs shows the same shape: memory retrieved 2 guidelines every run (control: 0) yet passed 6/10 (60%, 95% CI 31–83%) against control's 7/10 (70%, 95% CI 40–89%) on the same 10-replica basis (control completed only 9 of its 10 scheduled replicas; the completed-only rate is 7/9, 78%, but that is not on the same denominator as memory's 7/10 — comparing like-for-like, memory trails by 10 points, and it cost ~19% more). As with Support HQ, this is a descriptive difference; no paired significance test was run. Across the two companies measured so far, trace-backed memory fires reliably but is not shown to improve reliability, and both point estimates run slightly the other way. Varying the retrieval configuration does not rescue it: raising top_k from 5 to 10, and switching to MMR-diversified selection, left the retrieved evidence unchanged — memory returned the same 2 guidelines every run in all three configurations, because the trained memory only contains ~2 guidelines. You cannot pull more than exists, so retrieval config is not the lever. The bottleneck is upstream — how many good, distinct lessons a training run mines and promotes — which is the next experiment worth running.

ConditionHoldout rubric95% CIGuidelines retrievedMean cost
Memory7/10 (70%)40–89%2.0$0.0600
Control9/10 (90%)60–98%0.0$0.0614
Table 2. Memory vs. control on a fresh Support HQ holdout, ten replicas, with descriptive per-arm 95% Wilson intervals. No paired significance test was run; memory's point estimate trails control, but the study does not establish a statistically significant gap. A 3-replica pilot showed the opposite sign, a direct illustration of the small-sample fragility in §3.
ConditionHoldout rubric95% CIGuidelines retrievedMean cost
Memory6/10 (60%)31–83%2.0$0.1150
Control7/10 of scheduled; 7/9 completed-only7/10 (70%)40–89%0.0$0.0966
Table 2b. Memory vs. control on a fresh Reliability Labs holdout, ten replicas (control completed 9 of 10 scheduled). Reported on the same 10-replica denominator for both arms so the comparison is apples-to-apples. The intervals are descriptive; no paired significance test was run.

6.1Retrieval-configuration sweep

If memory's shortfall were a retrieval problem, widening or diversifying what gets pulled back should change the evidence the agent sees. Re-running the Support HQ memory arm with top_k raised from 5 to 10, and again with hybrid+mmr selection, tested exactly that.

Retrieval configGuidelines retrieved (memory)Guidelines retrieved (control)
top_k=5, hybridbaseline2 (every run, 10/10)0
top_k=10, hybrid2 (every run)0
hybrid+mmr2 (every run)0
Table 3. Config-invariance: every retrieval configuration returns the identical 2 trained guidelines, because the trained memory only contains ~2 — a retrieval knob cannot exceed the store's size. Full write-up: retrieval sweep.

Honesty / provenance (verbatim from the source result): "The retrieval-count invariance above is deterministic and was observed on every completed pair. A full ten-replica rubric re-measurement for each variant was not completed — repeated infrastructure interruptions cut the runs short (8 memory / 7 control completed pairs per variant before interruption). That does not affect the conclusion: the knob demonstrably does not change the retrieved evidence, so it cannot change the outcome."

Pending work

  • LongMemEval. The runner (`python -m fabri.benchmarks.longmemeval`) is shipped and exact-match scoring works end to end, but no result has been published yet — this row stays empty until a real run lands. Reference points for comparison when it does: Mastra "Observational Memory" 94.87%, Zep 63.8%.
  • Canonical sonnet session-N+1 delta. The only published cost-delta number (↓7.8% cost, steps 5→4, reuse 0→67%) ran on gpt-4o-mini via configs/benchmark.openai-recovery.yaml, not the canonical anthropic-sonnet configs/benchmark.yaml — Bedrock Anthropic access was account-gated when it was run. The canonical sonnet number is still pending.

7Reproducibility

Fabri version
0.18.5
Roster revision
533f4f23081625ec1a92c4e562b6489f167561b7
Companies evaluated
3
Support HQ samples
3 (gate) + 10 (confirmation)
Reliability Labs / Revenue Ops
3 replicas each
Total live spend
$0.82
Claim boundary
setup qualification only

Each published result records its own roster revision, company-source SHA-256, and Fabri version. Prompts, traces, session IDs, and raw model output are withheld; only aggregate metrics and rubric outcomes are released.