CAFE treats every knob in your AI pipeline - retrieval, reranking, prompts, models, and tools - as an experimental factor. It runs factorial experiments, evaluates outputs using a configurable LLM (and optionally human reviewers), and applies mixed-effects models to determine: - Which techniques actually improve quality - How much each technique contributes - Whether the observed differences are statistically significant Open source and self-hostable.
No reviews yetBe the first to leave a review for CAFE — Compound-AI Factorial Evaluation
Maker
📌
Hi! As part of a research paper, we built CAFE to answer a question that kept coming up: when I tweaked my RAG or agent pipeline and the output improved, which change actually made the difference? Aggregate benchmarks and eyeballing a handful of outputs never really answered that - especially when LLMs are nondeterministic from run to run.
CAFE treats every knob in your pipeline (retrieval, reranking, context assembly, prompts, models, tools, etc.) as an experimental factor. It:
- Generates a full or fractional factorial design - every configuration combination worth testing
- Runs each configuration as a black box with replication (concurrent and resumable)
- Scores outputs using a configurable LLM judge and/or human raters
- Attributes performance differences using mixed-effects models matched to your rubric's scale
The result is a statistically grounded answer to questions like:
- Which techniques actually improve quality?
- How much does each technique contribute?
- What is the best-performing configuration?
- Are the observed differences real, or just noise?
CAFE also includes a cost–quality Pareto frontier and judge↔human agreement analysis using Krippendorff's α.
It's open source (Apache-2.0) and fully self-hostable. You can use it as a Python librar or a FastAPI + React web application. Nothing leaves your machine.
⭐ GitHub: https://github.com/fabian-lu/Cafe
🧪 Live demo: https://cafe-ai.de/demo
📚 Documentation: https://fabian-lu.github.io/Cafe
I'd love your feedback!!
Report
Would love to see automatic cost and latency tracking baked into each experimental factor so you can weigh quality gains against compute spend, not just statistical significance. Right now it’s all about the output score, but in production the more expensive combo that wins by 2% isn’t always the right call.
Report
Maker
@douakrimdriss Hi, totally agree! Latency, tokens and cost can already be tracked and analysed (see pareto() function). However, I just realised that we do not yet attribute it to each factor the way we do for quality, but rather to the configs as a whole.. That's a genuinely good extension, adding it to the roadmap. Thanks for the thoughtful comment!
Report
finally a tool that says "statistical significance" and means it. love that you can swap the eval LLM and rerun everything without rebuilding the whole experiment.
Would love to see automatic cost and latency tracking baked into each experimental factor so you can weigh quality gains against compute spend, not just statistical significance. Right now it’s all about the output score, but in production the more expensive combo that wins by 2% isn’t always the right call.
@douakrimdriss Hi, totally agree! Latency, tokens and cost can already be tracked and analysed (see pareto() function). However, I just realised that we do not yet attribute it to each factor the way we do for quality, but rather to the configs as a whole.. That's a genuinely good extension, adding it to the roadmap. Thanks for the thoughtful comment!
finally a tool that says "statistical significance" and means it. love that you can swap the eval LLM and rerun everything without rebuilding the whole experiment.
@nurayg61521 Thanks for checking it out :)