Public benchmark harness for five-way AI provider comparison. Scores riven FORGE against Atlas, Comet, Perplexity, and ChatGPT on the same tasks, the same prompts, and the same rubric — every run.
Results are published at rivenai.io/bench.
| Category | Metric | Method |
|---|---|---|
| code | FORGE task pass rate | LLM judge vs. ground truth |
| search | web search accuracy | factual recall over curated query set |
| voice | voice round-trip latency | median TTFT over 5 cold starts |
| FORGE | swarm parallelism ceiling | real concurrent agent execution |
| latency | time-to-first-token | median TTFT + TPS, 5 reps × 3 prompt classes |
Each category uses a fixed dataset with a consistent judge rubric. No cherry-picking: every category runs every provider on every run, or the run is marked partial and excluded from aggregate scores.
bash>= 4.xcurljqpython3(stdlib only)bc- API keys for each provider you want to bench (see below)
git clone https://github.com/rivenai/bench
cd bench
# Set provider keys
export RIVEN_BENCH_KEY="rk-..."
export OPENAI_API_KEY="sk-..." # for ChatGPT column
export ANTHROPIC_API_KEY="sk-ant-..." # for Atlas/Comet columns
export PERPLEXITY_API_KEY="pplx-..." # for Perplexity column
# Run all benchmarks
bash run_all.shResults land in results/ as CSV files and a markdown summary.
# Swarm bench only — riven_forge column
bash swarm-bench.sh --providers riven_forge
# Specific tasks
bash swarm-bench.sh --tasks SB-001,SB-004
# Dry run (riven_forge only, no competitor calls)
bash swarm-bench.sh --dry-run| script | what it tests | output |
|---|---|---|
01_latency.sh |
TTFT, TPS, total latency for 5 models × 3 prompt classes × 5 reps | results/latency_*.csv |
02_embeddings.sh |
embedding latency + vector dim across batch sizes 1/8/32 | results/emb_*.csv |
03_mmlu.sh |
zero-shot MMLU accuracy (50 questions, 5 categories) | results/mmlu_*.csv |
04_gsm8k.sh |
grade-school math accuracy (20 problems) | results/gsm8k_*.csv |
05_competitive.sh |
same tasks vs OpenAI, Anthropic, Perplexity | results/competitive_*.csv |
swarm-bench.sh |
five-way swarm orchestration, scored by LLM judge | history/<date>/swarm-bench-report.md |
run_all.sh |
runs 01–07 + swarm in sequence | results/logs/<timestamp>/ |
model, prompt_class, rep, ttft_ms, tps, total_ms, in_tok, out_tok, ok
A markdown file at history/<YYYY-MM-DD>/swarm-bench-report.md with:
- per-provider score table
- regression alerts (exit 1 if any provider drops > 25% vs prior run)
- raw task-level results as JSON in
history/<date>/tasks/
| file | description |
|---|---|
datasets/mmlu_50.jsonl |
50 MMLU-style questions, 10 per category |
datasets/gsm8k_20.jsonl |
20 grade-school math word problems |
Each JSONL row schema is documented in the respective script header.
The provider list is in swarm-bench.sh under PROVIDERS. To add a new provider:
- Add an entry to the
PROVIDERSarray withname,api_base,model, andauth_envfields. - Set the corresponding API key env var before running.
- Open a PR — results for new providers will appear in the next scheduled run.
The harness runs nightly via cron on sbx-api.rivenai.io. Results are pushed to rivenai.io/bench automatically. To subscribe to email notifications when results update, use the form on the bench page.
MIT — see LICENSE.
Contributions welcome. If you find an error in the methodology or results, open an issue.