Skip to main content

Requirements

The engine also works without Pest via the CLI — Pest is a suggest, not a hard dependency.
Pest 5 requires symfony/process ^8.1, which Laravel 12 cannot satisfy — so Laravel 12 tops out at Pest 4 and Laravel 13 gets Pest 5. toPassEval() behaves identically on both, and nothing in this documentation is Pest-5-only.If you want to run pestphp/pest-plugin-evals alongside this package, that one needs Pest 5 and pins laravel/ai tightly — currently >=0.10.2 <0.11.0 — so you will need Laravel 13 and a recent laravel/ai.

Install

Terminal
Install with --dev when evals only run from your test suite and CI. If you trigger runs from the dashboard in a deployed environment, require it as a regular dependency instead.
Three tables are created (prefix configurable via evals.table_prefix):

Configuration (optional)

Terminal
See Configuration for judge defaults, gates, the comparison tolerance, and the price table behind cost tracking.

The dashboard (optional)

Terminal
Adds the /evals dashboard — no publishing, no asset build in your app. See Dashboard.

Provider credentials

Evals invoke your agents through laravel/ai, so whatever providers your agents use must be configured as usual (e.g. OPENAI_API_KEY). The judge is an LLM call too and uses the provider configured in evals.judge. Nothing needs credentials until you actually run with --evals — normal test runs skip evals entirely, and fakes cover everything else.