Skip to main content
DecimalAI provides a comprehensive evaluation framework for assessing the quality of your agent’s outputs. Evaluations can be run client-side (in your process), server-side (via the platform), or through external tools like DeepEval and LangSmith.
Evaluators attach via your framework’s instrument() call, not init(). decimalai.init(...) sets up tracing; the evals=[...] and builtin_evals= arguments live on decimalai.langchain.instrument(...). They are LangChain-only today — every other adapter’s instrument() raises TypeError on either kwarg. On the other adapters, score traces with decimalai.eval() / decimalai.batch_eval() instead.

Pre-Built Evaluators

DecimalAI ships 10 ready-to-use evaluators in two tiers:

Deterministic Evaluators (Free)

These run instantly with zero external calls:

Built-in Auto-Checks (Always On)

In addition to the evaluators above, DecimalAI runs 5 automatic quality checks on every trace — zero configuration, zero cost: These appear in the dashboard labeled source: builtin and feed into the Decision Engine alongside your custom evaluators.
Built-in evals run SDK-side, not server-side. They are attached to the trace payload by instrument()’s wrapper before the trace is sent. If you ingest traces via bare HTTP POST /api/v1/traces (without the SDK), no built-in scores are computed automatically — push them yourself via POST /api/v1/traces/{id}/eval-scores or use the SDK.
You don’t need to configure or register these when using the SDK — they run automatically on every trace. To disable them, set builtin_evals=False in instrument().

LLM-as-Judge Evaluators

These use an LLM to score outputs on a 0.0–1.0 scale with a pass/fail verdict:

Execution Modes

Evals run in your process using your own API key via litellm:
  • Unlimited evaluations — no metering
  • You choose the judge modelgpt-4o-mini for cheap, gpt-4o for quality, claude-sonnet-4-6 for diversity
  • Works offline — in CI pipelines, notebooks, local testing
  • Privacy — DecimalAI never sees your eval prompts or judge responses; the judge call goes from your process straight to your LLM provider
Set your model’s API key in the environment:

Custom Evaluators

The @eval Decorator

eval is two different things. The @eval decorator that defines a custom evaluator lives at decimalai.evals.eval (import it with from decimalai.evals import eval). The top-level decimalai.eval(...) is a different function — it pushes an already-computed score to a trace (see External Score Import). It is not the decorator. Reach for decimalai.evals.eval to define a check, and decimalai.eval to record a result.
Write custom evaluators that run on every trace:
An evaluator’s return type determines how its result becomes a score:

Sampling Rate

Expensive evaluators (especially LLM-as-judge) can run on a subset of traces:
Traces not sampled are skipped silently — no score is recorded for them.

TraceData Fields


Eval Dashboard

The Evaluate page provides a production-grade dashboard:
The DecimalAI Evaluate page showing quality pass, safety pass, all-evals pass and coverage stat cards, an agent-by-category coverage matrix, a recent eval failures table, and the SDK-defined evals panel.

The Evaluate page: pass-rate stat cards, the agent × category coverage matrix, and recent eval failures.

  • Stat cards — quality pass, safety pass, all-evals pass, and coverage
  • Coverage matrix — agents down the side, evaluator categories across the top. Its job is to show you the gaps: a cell with no evaluator is a category nobody is checking on that agent, and each empty cell offers to add one.
  • Recent eval failures — the failing traces themselves, so a red number is one click from the run that produced it
  • SDK-defined evals — the evaluators your own code registered, listed alongside the built-ins

Auto-Scoring

Configure automatic evaluation of incoming traces per-agent: Configure auto-scoring from the Evaluate dashboard’s Auto-Scoring panel, or by registering evaluators via the API. Each evaluator you create for an agent runs automatically on that agent’s incoming traces:
The older GET/PUT /api/v1/agents/{name}/eval-policy route is deprecated. Configure auto-scoring through /api/v1/evaluators (above) instead.

External Score Import

Push scores from external evaluation tools (DeepEval, LangSmith, custom pipelines):

SDK Convenience Methods

The trace id is read off each DeepEval test case’s field named by trace_id_field (default input).

REST API

source is required and applies to the whole batch. The external-tool names deepeval, langsmith, braintrust and ragas are reserved and are rejected with 422 on this path — use custom, or a name of your own like my-pipeline.

LangSmith scores

There is no inbound webhook endpoint to point LangSmith at. Push the scores yourself once the online eval run finishes:
Each score’s key becomes the metric name and comment becomes the reason. Scores pushed this way are stamped source: "langsmith-import", since the bare langsmith name is reserved. External scores appear alongside built-in scores in the dashboard and feed into the same decision engine.

Decision Engine

The decision engine aggregates scores from all sources (built-in, SDK, LLM judge, external) into a unified verdict: The eval verdict (Pass / Fail / Review / Unevaluated) answers “is this output high quality?” It is orthogonal to the compatibility verdict (keep / repair / flag / replay / drop), which answers “what should we do with this trace for training?” The engine reads both as inputs but keeps the two axes distinct. Verdicts feed into:
  • Dataset filtering — only pass traces are included in training data
  • Compatibility scoring — combined with manifest verdicts (keep/repair/replay/drop)
  • Dashboard analytics — pass rate trends and regression detection

Batch Evaluation

Run evaluators across multiple traces programmatically:
Batch eval fetches traces from the backend, runs your evaluators in parallel, and pushes scores back. Useful for backfilling scores on existing traces or running offline eval passes.

Next Steps

Eval Scores API

Push and retrieve evaluation scores per trace.

Evaluation concepts

Evaluators, eval scores, eval verdicts, the unified decision engine.

Datasets

Filter datasets by eval verdict — only train on high-quality traces.

Migration from other tools

Push scores from DeepEval, LangSmith, or your custom eval pipeline.