About to mark my own package abandoned on Packagist.
One year old. 38k installs. 297 stars.
Then Laravel shipped an official AI SDK and made half of it redundant overnight.
So I'm building the other half: evals.
Your agent passed yesterday. Prove it didn't get worse today.
Vizra Evals isn't a Pest alternative. It's built on Pest.
Your evals are Pest tests, in your test suite, same --evals flag. Pest's own evals plugin runs alongside it.
Pest scores a run. Vizra keeps every run and compares them.
Vizra Evals isn't a Pest alternative. It's built on Pest.
Your evals are Pest tests in your test suite, with the same --evals flag. Pest's own evals plugin runs alongside it.
Pest scores a run. Vizra keeps every run and compares them
laravel/ai passed 5 million installs in six months.
PHP stopped being a second-class AI citizen somewhere in there, and almost nobody has written about what that actually changes.
Prediction for the next twelve months in Laravel AI: it won't be about building agents. That's solved now.
It'll be about proving the agent you shipped still does its job.
Whoever makes that boring wins.
If you're already at that point, I wrote up where Pest's plugin is enough on its own and where keeping the runs starts to earn its place:
vizra.ai/blog/vizra-evals-an…
Killing a project that's working is harder than killing one that isn't.
38k installs said keep going. The roadmap said the platform is about to do this for free.
Went with the roadmap.
The gap between "the model can do this" and "the model does this reliably enough that I'll bill a client for it" is where my entire product lives.
Demos live on the left side of that gap. Production lives on the right.
I built an AI agent framework. It was a while loop, a switch statement, and a lot of marketing.
The hard part was never the loop. It's knowing whether this week's version is worse than last week's.
Yesterday Nuno pointed out that Pest ships its own evals plugin.
He was right, and my post was sloppy about it.
So I wrote the comparison properly. Including a section on when to use his and not mine.