Verdict public alpha · Apache 2.0

Monitor LLM-call quality inside production apps and agents.

Verdict captures supported provider calls, stores traces locally by default, and helps you detect calibrated PASS/FAIL quality drift by workload. Fisher's exact for binary dimensions, Mann-Whitney U for continuous scores, Cliff's δ effect sizing, and Benjamini-Hochberg correction.

One line to instrument

Drop-in capture. No agent rewrite required.

verdict.init() wraps supported Anthropic, OpenAI, and Google SDK calls. No proxy in front of your traffic. Metadata capture is immediate; content capture is opt-in and redacted before storage.

Manual @verdict.trace() spans are available for retrieval, reranking, and tool calls. Full agent-run stitching and task-success metrics are v1 roadmap items.

import verdict
from anthropic import Anthropic

verdict.init(
  service_name="checkout-agent",
  storage="sqlite:///./verdict.db",
)

# Use the SDK normally. Supported calls are captured.
# Run the judge and drift workflows with your own
# provider key when you want quality scoring.
client = Anthropic()
resp = client.messages.create(
  model="claude-haiku-4-5",
  max_tokens=512,
  messages=[{"role": "user", "content": q}],
)
The method

Capture, calibrate, then monitor drift.

Verdict separates capture from evaluation. You can start key-free with metadata, structural checks, and semantic drift; add a provider key when you want judge-based PASS/FAIL scoring and workload-specific calibration.

1. Capture traces

Record provider, model, tokens, latency, cost estimate, finish reason, errors, and optional redacted prompt/response content from supported SDK calls.

2. Run key-free checks

Inspect refusal rate, JSON validity, response length, latency, token usage, and semantic drift with the built-in lightweight embedder.

3. Calibrate a judge

Sample traces, label PASS/FAIL dimensions yourself, then measure judge agreement before trusting drift alerts for that workload.

4. Compare like with like

Cluster similar prompts so quality shifts are evaluated by workload instead of hidden inside one global average.

5. Emit drift signals

Compare recent windows against a reference baseline and emit signals only when statistical and practical effect-size gates both clear.

Validation you can reproduce

Verdict ships scripts for checking the claims yourself.

The repo includes live capture checks, a synthetic regression injector, pairwise judge-alignment harnesses, and a rubric-alignment workflow for measuring agreement against your own labels.

The defensible claim is deliberately narrow: calibrated PASS/FAIL drift monitoring on real LLM traces, with per-workload judge calibration. Public benchmarks are sanity checks, not proof that a judge is calibrated for your workload.

WorkflowWhat it checksKey required?
Smoke teststorage, schemas, basic pipelineNo
Live capture checkreal SDK capture pathsProvider key
Rubric alignmentjudge agreement vs your labelsProvider key
Regression injectorknown corruptions through the eval pathOptional
Dashboardlocal trace and drift inspectionNo

Judge quality depends on the model, rubric, and workload. Run the alignment scripts on your own labeled traces before relying on alerts.

What it catches

Three drift modes that quietly cost enterprises money.

SILENT UPDATE

The minor version that broke your refusal rate.

Provider, model, or prompt changes can shift refusal behavior. Verdict gives you captured traces and structural signals so a reviewer can inspect the change by workload.

MIGRATION RISK

The $8k/month swap you'd otherwise A/B blindly.

Use pairwise comparison and workload grouping to inspect where a candidate model helps, hurts, or needs more labels before you switch production traffic.

COST RUNAWAY

The prompt change that doubled your token bill.

Prompt changes can alter response length and token usage. Verdict keeps quality, cost, latency, and error metadata in the same trace store for faster investigation.

Try Verdict in 60 seconds.

SDK is Apache 2.0. SQLite storage runs locally with zero ops. Postgres and a local dashboard are available when you need shared inspection.