Capture first, evaluate separately
Metadata-only capture is free of evaluation-credit charges. Inputs and outputs are omitted by default. To evaluate real behavior, explicitly enable content capture, supply the span’sinput, and add a project-specific redact function.
The callback result becomes the output unless you provide a deliberate override.
Only send data you have permission to process.
Run a check
- Generate a rubric by benching a connected prompt.
- Open a recorded interaction under Production and link it to that prompt.
- Choose Check interaction, then confirm the use of one evaluation.
Turn feedback into better benchmarks
Review unexpected behavior, then save the intended behavior as a case or a criterion in the system’s test library. Enabled user cases and criteria join future benches; previous scores retain their original evidence. Production data does not silently rewrite business policies or become a verified golden answer. This preview does not autonomously generate approved labels, re-bench the whole system, open fixes or deploy code on every new trace.Optional TypeSafe checks
An operator may configureTYPESAFE_API_KEY on the API server. No TypeSafe key is
placed in the SDK or browser. The optional API/MCP check takes a narrow question
plus explicit match/no-match criteria and requires share_with_typesafe: true.
It returns a typed probability from pinned model jev-1.13.0, marked for review.
A value near 0.5 means uncertain, not passing. TypeSafe checks consume one Bench
evaluation just like rubric checks.
TypeSafe receives the selected evidence in the US. Review applicable privacy,
transfer, retention and commercial terms before enabling it. It remains disabled
unless the server has been explicitly configured. No private customer data was used for live provider tests.
Check a recorded execution
API and MCP callers can explicitly setevidence_scope: "trace" and select the
completed root span. Bench validates one connected, finished tree and includes
its recorded model/tool relationships, inputs, outputs, status and attributes.
Incomplete trees or evidence over 45 KB are rejected, not silently shortened.
The default scope remains span.
This judges an observed execution. It does not rerun the application. The rubric
provider uses the linked prompt’s exact-system rubric. Jev uses the supplied narrow
question over the trace. Neither proves that uninstrumented actions were captured.
Use application-runtime evaluation for repeatable cases.
Delivery and storage
Exports are buffered and bounded, retried once, and dropped if delivery fails. UseonError and bench.stats to monitor drops. In serverless applications,
await bench.flush() in a supported lifecycle hook before the process freezes.
Use shutdown() after in-flight requests finish at process exit, not per request
on a reusable instance. The SDK is not a durable spool.
Postgres stores this preview’s customer traces. You do not need an Axiom account or
OpenTelemetry exporter. Bench accepts its own JSON payload, not native OTLP. Bench’s
internal operational telemetry separately uses OpenTelemetry and Axiom; it does not
forward customer SDK content there.