@vercel/agent-eval@1.3.0
Minor Changes
-
#165
b35873cThanks @gaojude! - Incremental eval-staleness workflow, so adopting a changed or new eval doesn't force re-running every experiment.- Fingerprint split: each result stores a content-only hash next to the combined (content+config) one. A real eval change is never masked; a benign config change (e.g. a
timeoutbump, or pinning a judge) is carried forward byrefingerprintinstead of re-running. Existingfingerprintvalues are byte-identical, so caches stay valid. (Fixes the previous re-fingerprinting that silently re-stamped every result and hid eval changes.) agent-eval status— read-only: which evals are new vs changed, per experiment (classified by content).--checkexits non-zero on any new/changed eval (a simple CI gate);--jsonemits per-experiment new/changed so a consumer can apply its own "which staleness is acceptable" policy.agent-eval run <experiments...>— run the named experiments' new/changed evals (auto-carries config-only changes first).- Bare
agent-evalshows status, then (in a terminal) lets you multi-select which experiments to run — it never re-runs everything. - Removes
run-alland--dry(the run-everything-when-stale behavior). There is no in-framework "acknowledge/keep" — staleness acceptance is the consumer's policy (e.g. filterstatus --jsonagainst an accepted-stale list in CI).
- Fingerprint split: each result stores a content-only hash next to the combined (content+config) one. A real eval change is never masked; a benign config change (e.g. a
-
#164
2905905Thanks @gaojude! - Pin the agentic LLM judge to a fixed agent + model viaExperimentConfig.judge. By default theexpect(environment|transcript)matchers still self-grade with the codegen agent+model; settingjudge: { agent?, model }grades every run with one fixed judge — the apples-to-apples choice for cross-model comparisons (judge quality no longer varies with the model under test, and a model never grades itself). Whenjudge.agentnames a different agent, its CLI is installed in the sandbox and its key is resolved from its own env var (falling back toVERCEL_OIDC_TOKEN). Pinning is reflected in the eval fingerprint, so pinned runs don't reuse self-graded cached results.