git clone https://github.com/openlayer-ai/jevals && cd jevals
uv sync --extra dev
uv run pytest
uv run ruff check src tests && uv run ruff format src testsTests run against the mock backend and recorded wire shapes, so no API keys are needed.
- Subclass
Eval(orNoulEval/ChoiceEval/ScoreEvalfor one-question evals) insrc/jevals/agent/_evals.py,security/_evals.py, orquality/_evals.py. - Keep
state()small and deterministic. Describe options, don't label them. - Export it from the module's
__init__.py;jevals listpicks it up from there. - Add a test in
tests/test_evals.pyusingMockBackend(answers={...}).
Calibration data. If you have labeled traces for any built-in eval, a jevals calibrate table for a real backend is worth more than a new eval.
Bugs and ideas go in GitHub issues. Security problems: see SECURITY.md.