C.W.K.
Stream
Lesson 07 of 07 · published

Framework Selection Guide

~18 min · frameworks, selection, decision

Level 0Guesser
0 XP0/55 lessons0/10 achievements
0/150 XP to next level150 XP to go0% complete

Which framework for which job

You will likely use 2-3 frameworks across the lifetime of a serious LLM project. Choosing badly costs months. Use the matrix below.

Decision matrix

NeedPick
Prompt × provider matrix from CLI/YAMLpromptfoo
Pytest-native Python evals with rich metricsDeepEval
Shared team workspace + production observabilityBraintrust
Standard NLP benchmarks (MMLU, HumanEval, GSM8K)lm-evaluation-harness
RAG-specific decomposed metricsRAGAS
Agents, tool use, code execution, safety evalsInspect AI
Quick custom hack with no infraHand-rolled Python + JSONL

Mixing frameworks is normal

Real teams typically run promptfoo for prompt iteration, DeepEval for unit-level RAG metrics in CI, Braintrust for team-wide observability, and lm-eval-harness when comparing base models. None of them tries to do all four well, and you don't need them to.

Principle: Frameworks are tools, not religions. Pick the smallest tool that solves the immediate problem, add another when the next problem doesn't fit.

Migration cost is real but manageable

JSONL datasets and OpenAI-style API conventions are the common substrate across frameworks. Keep your data in JSONL and your providers configurable, and switching frameworks becomes a one-week rewrite, not a rebuild.

Code

Common JSONL keeps you portable·json
{"input": "...", "reference": "...", "tags": ["qa", "easy"], "metadata": {}}

# This shape feeds:
#   promptfoo via vars
#   DeepEval via LLMTestCase
#   Braintrust via dataset import
#   lm-eval-harness via custom YAML task
#   RAGAS via Hugging Face Dataset
# A migration is 'rewrite the runner.' The data does not move.

External links

Exercise

List the eval needs your project actually has (prompt iteration, RAG metrics, observability, agent eval, benchmarks). Map each need to a framework using the table. If you'd be using more than two, that's normal — pick the most pressing two to start.

Progress

Progress is local-only — sign in to sync across devices.
Spotted a bug or have feedback on this page?Report an Issue

Comments 0

🔔 Reply notifications (sign in)
Sign inPlease sign in to comment.

No comments yet — be the first.