Phoenix Evals
Build evaluators for AI/LLM applications. Code first, LLM for nuance, validate against humans.
Quick Reference
| Task |
Files |
| Setup |
setup-python, setup-typescript |
| Decide what to evaluate |
evaluators-overview |
| Choose a judge model |
fundamentals-model-selection |
| Use pre-built evaluators |
evaluators-pre-built |
| Build code evaluator |
evaluators-code-python, evaluators-code-typescript |
| Build LLM evaluator |
evaluators-llm-python, evaluators-llm-typescript, evaluators-custom-templates |
| Batch evaluate DataFrame |
evaluate-dataframe-python |
| Run experiment |
experiments-running-python, experiments-running-typescript |
| Run evals in a test runner (CI gate) |
integrations-pytest, integrations-vitest-jest |
| Create dataset |
experiments-datasets-python, experiments-datasets-typescript |
| Generate synthetic data |
experiments-synthetic-python, experiments-synthetic-typescript |
| Validate evaluator accuracy |
validation, validation-evaluators-python, validation-evaluators-typescript |
| Sample traces for review |
observe-sampling-python, observe-sampling-typescript |
| Analyze errors |
error-analysis, error-analysis-multi-turn, axial-coding |
| RAG evals |
evaluators-rag |
| Avoid common mistakes |
common-mistakes-python, fundamentals-anti-patterns |
| Production |
production-overview, production-guardrails, production-continuous |
Workflows
Starting Fresh:
observe-tracing-setup → error-analysis → axial-coding → evaluators-overview
Building Evaluator:
fundamentals → common-mistakes-python → evaluators-{code|llm}-{python|typescript} → validation-evaluators-{python|typescript}
RAG Systems:
evaluators-rag → evaluators-code-* (retrieval) → evaluators-llm-* (faithfulness)
Gating CI:
evaluators-{code|llm}-{python|typescript} → integrations-{pytest|vitest-jest} → production-continuous
Production:
production-overview → production-guardrails → production-continuous
Reference Categories
| Prefix |
Description |
fundamentals-* |
Types, scores, anti-patterns |
observe-* |
Tracing, sampling |
error-analysis-* |
Finding failures |
axial-coding-* |
Categorizing failures |
evaluators-* |
Code, LLM, RAG evaluators |
experiments-* |
Datasets, running experiments |
integrations-* |
Run evals from test runners (pytest, Vitest, Jest) as a CI gate |
validation-* |
Validating evaluator accuracy against human labels |
production-* |
CI/CD, monitoring |
Key Principles
| Principle |
Action |
| Error analysis first |
Can't automate what you haven't observed |
| Custom > generic |
Build from your failures |
| Code first |
Deterministic before LLM |
| Validate judges |
>80% TPR/TNR |
| Binary > Likert |
Pass/fail, not 1-5 |
| Invariants gate, signals trend |
assert/expect hard invariants (CI red); log LLM-judge quality signals and gate the aggregate (acceptance criteria), not every case |
1---2name: phoenix-evals3description: Build and run evaluators for AI/LLM applications using Phoenix.4license: Apache-2.05---6
7# Phoenix Evals
8
9Build evaluators for AI/LLM applications. Code first, LLM for nuance, validate against humans.
10
11## Quick Reference
12
13| Task | Files |
14| ---- | ----- |
15| Setup | [setup-python](references/setup-python.md), [setup-typescript](references/setup-typescript.md) |
16| Decide what to evaluate | [evaluators-overview](references/evaluators-overview.md) |
17| Choose a judge model | [fundamentals-model-selection](references/fundamentals-model-selection.md) |
18| Use pre-built evaluators | [evaluators-pre-built](references/evaluators-pre-built.md) |
19| Build code evaluator | [evaluators-code-python](references/evaluators-code-python.md), [evaluators-code-typescript](references/evaluators-code-typescript.md) |
20| Build LLM evaluator | [evaluators-llm-python](references/evaluators-llm-python.md), [evaluators-llm-typescript](references/evaluators-llm-typescript.md), [evaluators-custom-templates](references/evaluators-custom-templates.md) |
21| Batch evaluate DataFrame | [evaluate-dataframe-python](references/evaluate-dataframe-python.md) |
22| Run experiment | [experiments-running-python](references/experiments-running-python.md), [experiments-running-typescript](references/experiments-running-typescript.md) |
23| Run evals in a test runner (CI gate) | [integrations-pytest](references/integrations-pytest.md), [integrations-vitest-jest](references/integrations-vitest-jest.md) |
24| Create dataset | [experiments-datasets-python](references/experiments-datasets-python.md), [experiments-datasets-typescript](references/experiments-datasets-typescript.md) |
25| Generate synthetic data | [experiments-synthetic-python](references/experiments-synthetic-python.md), [experiments-synthetic-typescript](references/experiments-synthetic-typescript.md) |
26| Validate evaluator accuracy | [validation](references/validation.md), [validation-evaluators-python](references/validation-evaluators-python.md), [validation-evaluators-typescript](references/validation-evaluators-typescript.md) |
27| Sample traces for review | [observe-sampling-python](references/observe-sampling-python.md), [observe-sampling-typescript](references/observe-sampling-typescript.md) |
28| Analyze errors | [error-analysis](references/error-analysis.md), [error-analysis-multi-turn](references/error-analysis-multi-turn.md), [axial-coding](references/axial-coding.md) |
29| RAG evals | [evaluators-rag](references/evaluators-rag.md) |
30| Avoid common mistakes | [common-mistakes-python](references/common-mistakes-python.md), [fundamentals-anti-patterns](references/fundamentals-anti-patterns.md) |
31| Production | [production-overview](references/production-overview.md), [production-guardrails](references/production-guardrails.md), [production-continuous](references/production-continuous.md) |
32
33## Workflows
34
35**Starting Fresh:**
36[observe-tracing-setup](references/observe-tracing-setup.md) → [error-analysis](references/error-analysis.md) → [axial-coding](references/axial-coding.md) → [evaluators-overview](references/evaluators-overview.md)
37
38**Building Evaluator:**
39[fundamentals](references/fundamentals.md) → [common-mistakes-python](references/common-mistakes-python.md) → evaluators-{code|llm}-{python|typescript} → validation-evaluators-{python|typescript}
40
41**RAG Systems:**
42[evaluators-rag](references/evaluators-rag.md) → evaluators-code-* (retrieval) → evaluators-llm-* (faithfulness)
43
44**Gating CI:**
45evaluators-{code|llm}-{python|typescript} → integrations-{pytest|vitest-jest} → [production-continuous](references/production-continuous.md)
46
47**Production:**
48[production-overview](references/production-overview.md) → [production-guardrails](references/production-guardrails.md) → [production-continuous](references/production-continuous.md)
49
50## Reference Categories
51
52| Prefix | Description |
53| ------ | ----------- |
54| `fundamentals-*` | Types, scores, anti-patterns |
55| `observe-*` | Tracing, sampling |
56| `error-analysis-*` | Finding failures |
57| `axial-coding-*` | Categorizing failures |
58| `evaluators-*` | Code, LLM, RAG evaluators |
59| `experiments-*` | Datasets, running experiments |
60| `integrations-*` | Run evals from test runners (pytest, Vitest, Jest) as a CI gate |
61| `validation-*` | Validating evaluator accuracy against human labels |
62| `production-*` | CI/CD, monitoring |
63
64## Key Principles
65
66| Principle | Action |
67| --------- | ------ |
68| Error analysis first | Can't automate what you haven't observed |
69| Custom > generic | Build from your failures |
70| Code first | Deterministic before LLM |
71| Validate judges | >80% TPR/TNR |
72| Binary > Likert | Pass/fail, not 1-5 |
73| Invariants gate, signals trend | `assert`/`expect` hard invariants (CI red); log LLM-judge quality signals and gate the aggregate (acceptance criteria), not every case |