Skip to content

Commit ff41313

Browse files
committed
docs: publish routing benchmark findings
1 parent 14fc0da commit ff41313

2 files changed

Lines changed: 135 additions & 0 deletions

File tree

README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,12 @@ coding agent, make model calls itself, control provider billing, or guarantee
103103
that a custom model combination will be cheaper or better. Custom setups should
104104
be reviewed and tested in the target repository.
105105

106+
## Benchmark findings
107+
108+
Small controlled evaluations validate routing execution but did not demonstrate
109+
a general mixed-model advantage. See the [sanitized routing benchmark
110+
comparison](docs/benchmarks/routing-comparison.md) for results and limitations.
111+
106112
## Documentation
107113

108114
- [Routing policy](docs/model-routing-policy.md)
Lines changed: 129 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,129 @@
1+
# Routing benchmark comparison
2+
3+
This is a small, sanitized comparison of two controlled dogfood evaluations.
4+
It reports only aggregate outcomes approved for public documentation, not a
5+
claim that one model or routing policy is generally better.
6+
7+
## What was compared
8+
9+
Each comparison used a fixed starting point and the same task-level acceptance
10+
requirements within that comparison. The first was a manual Pokédex web-app
11+
dogfood; the second was a greenfield TypeScript task-queue implementation. The
12+
only intended difference was the model assignment described below. A reported
13+
cost is a catalog estimate from the execution tool, not a billing receipt or a
14+
statement of actual spend.
15+
16+
### Manual Pokédex dogfood
17+
18+
The mixed arm used a mixed Grok/Sol workflow; the baseline used Sol 5.6 Medium
19+
for the parent and all children. Both reached the recorded final pass, although
20+
the baseline needed an initial review fix.
21+
22+
The role assignments were:
23+
24+
```text
25+
Mixed Grok/Sol
26+
27+
Grok 4.5 parent / orchestrator
28+
└── Grok 4.5 implementer
29+
└── Sol 5.6 High reviewer
30+
├── Grok 4.5 repair (when requested)
31+
└── Grok 4.5 verifier
32+
```
33+
34+
```text
35+
All Sol 5.6 Medium
36+
37+
Sol 5.6 Medium parent / orchestrator
38+
└── Sol 5.6 Medium implementer
39+
└── Sol 5.6 Medium reviewer
40+
├── Sol 5.6 Medium repair (when requested)
41+
└── Sol 5.6 Medium verifier
42+
```
43+
44+
These flows show model ownership, not one call per line. Reviews and repairs
45+
could repeat; the table below reports the actual aggregate child-call count.
46+
47+
| Observed metric | Mixed Grok/Sol | All Sol 5.6 Medium |
48+
| --- | ---: | ---: |
49+
| Time to completion report | 23m 04s | 12m 36s |
50+
| Child calls | 10 | 4 |
51+
| Review-driven fix passes | 3 | 1 |
52+
| Reported total cost (estimated) | $2.6011 | $2.1827 |
53+
| Final result | PASS | PASS |
54+
55+
For this run, all-Sol was about 10m 28s faster and about $0.4184 lower in
56+
**estimated** total cost. The mixed arm produced broader explicit coverage, but
57+
both outputs need a shared evaluator before their quality can be compared
58+
independently.
59+
60+
### TypeScript task queue
61+
62+
This comparison held the Sol 5.6 Medium parent, reviewer, and verifier fixed;
63+
only the implementer was changed between Grok 4.5 Medium and Sol 5.6 Medium.
64+
Both implementations passed six preregistered behavioral tests after a build.
65+
The mixed arm nevertheless failed the final delivery gate: its public tests
66+
depended on ignored build output, and a clean copy could not run `npm test`.
67+
68+
The controlled role assignments were:
69+
70+
```text
71+
Mixed implementer arm
72+
73+
Sol 5.6 Medium parent / orchestrator
74+
└── Grok 4.5 Medium implementer
75+
└── Sol 5.6 Medium reviewer
76+
├── Grok 4.5 Medium repair (one allowed)
77+
└── Sol 5.6 Medium verifier
78+
```
79+
80+
```text
81+
All-Sol control arm
82+
83+
Sol 5.6 Medium parent / orchestrator
84+
└── Sol 5.6 Medium implementer
85+
└── Sol 5.6 Medium reviewer
86+
├── Sol 5.6 Medium repair (one allowed)
87+
└── Sol 5.6 Medium verifier
88+
```
89+
90+
The repair branch was used only when review findings required it. The mixed arm
91+
used its allowed repair; the control arm did not.
92+
93+
| Observed metric | Grok implementer | Sol implementer |
94+
| --- | ---: | ---: |
95+
| Final workflow verdict | FAIL | PASS |
96+
| Child calls | 4/4 | 3/4 |
97+
| Remediation calls | 1 | 0 |
98+
| Time to parent result | 10m 10s | 6m 53s |
99+
| Reported total cost (estimated) | $1.1050 | $0.8933 |
100+
| Preregistered tests after build | 6/6 PASS | 6/6 PASS |
101+
| Clean-copy `npm test` then build | FAIL | PASS |
102+
103+
For this run, all-Sol reached the accepted result 3m 17s sooner, with fewer
104+
child calls and lower **estimated** total cost. The Grok implementer's first
105+
call was cheaper, but that did not translate into an accepted end-to-end
106+
delivery within the allowed remediation budget.
107+
108+
## Interpretation and limits
109+
110+
The current runs did **not** demonstrate a general mixed-model advantage. The
111+
Pokédex and task-queue outcomes point in different directions for details such
112+
as focused coverage, while the two reported end-to-end comparisons above favor
113+
all-Sol on time, estimated cost, and/or final acceptance. They do show that the
114+
routing recipes executed as requested in these controlled runs.
115+
116+
These are small samples with substantial model and workflow variance. They
117+
cover narrow tasks, use one primary runtime and execution tool, and include
118+
different repair histories. They do not establish statistical significance,
119+
universal quality, live-browser quality, real billing cost, or broad efficiency
120+
savings.
121+
122+
## What would change the conclusion
123+
124+
A stronger claim would require at least five paired tasks with fixed fixtures,
125+
byte-identical parent prompts, a bounded repair budget, and an evaluator-owned
126+
black-box suite applied to every output. Future comparisons should record
127+
provider billing receipts, time to first accepted result, fallback and child-call
128+
counts, and blinded quality findings. Until then, Switchloom should be described
129+
as enabling verified model routing, not as delivering proven cost savings.

0 commit comments

Comments
 (0)