Skip to content

Glossary

Terms used throughout this workshop. Repository-wide terms already defined in the repository glossary are linked from here rather than redefined.

Dataset scope

One named evaluation "track" within a pod, for example intent_classification or reply_generation. Each scope maps to exactly one Langfuse dataset per lifecycle state (dev/release) and one entry in a run manifest's scopes/datasets/evaluators maps. A scope is not the same as a dataset name: the scope is the stable logical identifier; the dataset name it resolves to can change (e.g. across a product rename) without the scope itself changing.

Dev dataset

A mutable Langfuse dataset, named {product_id}_{scope}_dev, that grows over time as seed items, human-reviewed items, and manual edits are pushed to it. Contrast with a release dataset. See Module 08.

Release dataset

An immutable snapshot of a dev dataset's state at one point in time, created by promote(). Used to pin exactly what a CI gate or a reported evaluation run measured against, so a later change to the dev dataset can't silently change what an already-published result means. See Module 08.

Local capture

An in-process cache of the current trace's observations, populated by setup_tracing(..., capture_local_traces=True) and read synchronously via get_local_trace(trace_id), no network round trip to Langfuse required. Used whenever a prediction needs a value that a workflow's own return value doesn't carry, such as a tool call's raw result. See Module 02 §2.3 and Module 05.

Observation

One recorded unit of work in a trace (a span, in OpenTelemetry terms) with a name, as_type (chain/agent/generation/tool/event/span/trace), input, output, and observation_id. A trace is a tree of observations rooted at one top-level trace-type observation. span is the generic type used when none of the more specific ones applies; Langfuse's API also reports the LangChain scaffold's @step observations as SPAN where the Agent Framework scaffold's come back as AGENT, so you meet it on either path.

EvaluationItem

The shared contract for one golden-dataset item, regardless of where it came from (seed file, human review, or a promoted release): item_id, scope, dataset_name, input, expected_output, metadata. See Module 08 §8.1.

PredictionRecord

The shared contract for one workflow response, shaped for scoring: item_id, scope, prediction (a dict of whatever fields the metrics need to read), trace_id, observation_id, plus the original input/expected_output for convenience. Produced by a PredictionRunner's predict_items(). See Module 05.

Run manifest

What defines one evaluation run (RunManifest): its name, predictor_adapter, scopes, the dataset and metrics of each scope, and its gate. A pod writes it as two YAML files: a run file under evaluation/runs/ naming the run's scopes and gate, which inherits each scope's dataset and metrics from the project manifest, evaluation/evaluation_manifest.yaml. See Module 04.

Gate

The run-level pass/fail policy attached to a run manifest. This workshop uses mode: "all_metrics": every enabled metric across every scope must meet its own threshold for the run to pass. See Module 07 §7.3.

product_id

A short, stable identifier for which pod a dataset or evaluation run belongs to, not a description of what the pod's application does. This workshop's fictional codename is northwind; the demo application itself is described in prose as the "support assistant," a distinction the {product_id}_{scope}_{state} naming convention depends on. See Module 01.

{product_id}_{scope}_dev naming convention

The dataset-naming pattern this workshop follows for custom-field datasets (no canonical schema type in play; see Module 08 §8.5): {product_id}_{scope}_dev for the mutable working dataset, e.g. northwind_reply_generation_dev. A dataset using one of the four canonical schema types additionally includes the schema type in its name ({product_id}_{schema_type}_{scope}_{state}), not used by this workshop's own datasets, which are custom-field.

Tool-call / local-capture exercise pattern

The pedagogical pattern this workshop uses to make local capture concrete: a workflow step (lookup_account_status) calls a tool whose result is never returned to the caller, only recorded as its own traced observation. Recovering that result for scoring requires reading the trace via get_local_trace() + find_observations(), not just reading the workflow's response, demonstrating that a prediction's available data isn't limited to a function's return value. See Module 05.