Langfuse runs LLM-as-a-judge evaluators for you. You write or copy a judge prompt, map it to fields on your traces, and attach it to a rule. Langfuse then scores matching production observations, or experiment runs, and stores a score with the judge’s reasoning. Score Analytics will tell you how often that score matches a human’s. Whether the judge is right enough to trust is still on you.

How LLM as a judge works in Langfuse

A judge is an LLM call that grades another one. In Langfuse, the judge sees the input, the output, your rubric and, optionally, a reference answer, and returns a score with its reasoning. Scores can be numeric, categorical or boolean. The evaluation runs on Langfuse’s side, so nothing runs inside your application.

Four pieces make it work:

One date matters. Langfuse now recommends observation-level evaluators. Trace-level evaluators are deprecated, and on Langfuse Cloud they stop producing results after 16 Nov 2026. If your judges were set up at trace level, move them.

Setting one up

The documented path is short:

  1. Add an LLM connection. The judge calls run through a provider connection you configure, so they use your model and your key.
  2. Create an evaluator. Choose a template or a blank LLM-as-a-Judge prompt, pick the model, write the rubric and choose the score type.
  3. Map the variables to fields on the observation, for example the root observation’s input and output.
  4. Test it on sample observations. Read the score and the reasoning before you save. This is the cheapest moment to catch a vague rubric.
  5. Attach it to a rule, with filters and a sampling rate, or use it in an experiment.

On cost: Langfuse’s docs estimate $0.01 to $0.10 per assessment in model calls. Separately, every score is a billable Langfuse unit, the same as a trace or a span. A judge on every observation of a busy agent adds up on both bills, which is why sampling exists.

For what goes into the rubric itself (binary verdicts, one criterion per judge, reasoning before the verdict), see LLM as a judge.

Checking the judge is right

A judge you haven’t checked is a guess with a number on it. Langfuse gives you two ways to check.

Score Analytics. Under Scores > Analytics, in beta, you pick two scores of the same type, say a human label and the judge’s verdict, and Langfuse compares them on the observations that have both. For boolean and categorical scores you get a confusion matrix, Cohen’s kappa, F1 and raw agreement. For numeric scores you get Pearson and Spearman correlation, MAE and RMSE. If agreement is low, the docs suggest reworking the judge prompt against labelled examples and comparing again.

The calibration skill. Langfuse also publishes a judge calibration workflow that runs through a coding agent. You build a dataset of inputs with the labels you expect, the agent runs your judge prompt as an experiment, and it reports accuracy, or in advanced mode a confusion matrix with precision, recall, TPR, TNR and F1.

Both are useful. Both assume you already have the labels.

Where it stops

Agreement is a check, not a method

Neither tool decides which traces your expert should label or how many. Score Analytics compares whatever overlap you happen to have, and the calibration skill runs on a dataset you built yourself. Annotating every trace isn’t an option, so the choice of what to label is most of the work.

And agreement isn’t the number you report. If your judge flags 12% of conversations and you know how often it’s wrong in each direction, the real failure rate is something else, with error bars. Langfuse doesn’t calculate that corrected rate. Nor does it keep the check up to date as your judge, your model and your traffic drift. Without that, you have a pile of labels and a kappa from last month, not a measurement.

The outcome isn’t in Langfuse

One customer runs a sales agent whose success is measured in sends. Sends live in their product database. None of them are in the traces. Evals without outcomes are a fine starting point, and they’ll give you a well-behaved agent. To move the number the business cares about, you need to know which judges predict it, and that join sits outside Langfuse.

Reading the trace is part of judging it

Three founders have told me they couldn’t see what their agent was doing in Langfuse. They had the traces. They couldn’t read them. That matters for labelling: an expert judging a support conversation should read it as a conversation, with the moment it went wrong in front of them. Langfuse lets you build views like that, but configuring them is tiresome.

Where TwoTail fits

TwoTail is the measurement layer on top of Langfuse. It connects to Langfuse Cloud with a pasted API key and no code change, and reads the same traces. It picks the few traces worth your expert’s time, tracks how often your judges agree with them as the agent changes, corrects the score for the judge’s own errors, and tests scores against the outcomes your business runs on. If you self-host Langfuse, send the same spans to TwoTail over OpenTelemetry instead.

Comparing tools first? See LangSmith vs Langfuse, Braintrust vs Langfuse and Arize Phoenix vs Langfuse.

Sources: Langfuse LLM-as-a-Judge, Langfuse evaluation overview, Score Analytics, Annotation queues, Judge calibration skill, Langfuse pricing. Checked 9 Nov 2026.

Disclosure: I build TwoTail, so weigh the last section accordingly.