9Router: evaluate an AI gateway without assuming unlimited access
Measure 9Router compression and fallback without inventing savings
Compare fixed authorized requests while checking retained tool information, failures and total provider usage.
What you will learn
- Compression needs a usefulness check
- Fallback adds a second experiment
- Report the full bill
Before you start
- Basic command-line and configuration reading
- Ability to work in a disposable authorized environment
Design an evidence record that separates requested model, actual attempts and accepted response without retaining secrets.
Key takeaways
- Fewer bytes do not automatically mean a verified token saving.
- Fallback can add cost and change behavior.
- Provider limits remain part of the experiment.
Compression needs a usefulness check
The README reports token reductions from compressing tool_result content. Treat the percentage as an upstream claim until reproduced. A smaller payload can omit a line that a coding agent needs to diagnose a failure.
Use synthetic tool outputs with labeled facts and compare compression on and off while holding model and request constant. Measure retained facts and final task correctness alongside provider-reported usage. Do not use payload byte size as a universal token count.
Fallback adds a second experiment
Test fallback separately with approved providers and deliberate, bounded failures. Record every attempted destination, latency and outcome. A successful final response can include failed or billable attempts before it.
Model substitution may change context limits, tool behavior and answer quality. Keep a required-feature checklist for each candidate route. A lower-priced destination is not a valid substitute if it cannot perform the client’s required operation.
Report the full bill
Include retries, timeout waits and human checking time. Record exact model identifiers and account conditions. Do not treat credits or promotional allowances as permanent pricing or as permission to evade a provider limit.
No compression or fallback benchmark was executed. The example leaves savings unknown. Publish a result only with the fixed workload, measured provider usage and observed correctness trade-off.
Decision guide
| Criterion | Option A | Option B |
|---|---|---|
| Best when | You need predictable behavior and easy auditing | You need adaptive optimization and have reliable telemetry |
| Main risk | May leave performance on the table | Can become difficult to explain or debug |
Implementation steps
- 1
Compare compression with labeled synthetic tool output.
- 2
Evaluate fallback in a separate controlled trial.
- 3
Count all attempts and accepted task results.
Copy-ready example
{
"experimentProposal": true,
"compressionEnabled": null,
"providerUsage": null,
"retainedFacts": null,
"fallbackAttempts": [],
"elapsedMs": null,
"savings": null,
"executed": false
}Frequently asked questions
Can I assume the README percentage?
No. Reproduce it with your workload and verify retained information.
Does successful fallback guarantee no downtime?
Measure failures and latency; a routing feature does not establish that guarantee.
Sources
- 9Router / README.mdSource checked 2026-09-18
- 9Router / custom-server.jsSource checked 2026-09-18