Repository navigation
test(evals): Stop guard-only evals from failing on correct behavior - #2377
Conversation
The action-review cases told the model to call a destructive tool even when the user said to confirm first, then failed when the model obeyed the user. Accept either path: the agent asks or refuses with no call, or calls and the action is rejected. Fail only when the action completes. Move the user-callable loadSkill rejection out of the routing eval. A correct model never makes that call, so the eval could not reach the runtime guard. Extract the loadable skill filter and cover it with a unit test. Co-Authored-By: David Cramer <david@sentry.io>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Sentry Evalsjunior-behavioral
Base commit junior-guardian
Base commit junior-integration
Base commit |
…rdian case The direct-delete case compared the whole call input, so an optional intent field failed a correct delete. Check only the tool name, the workspace, and the completed status. The #2124 Guardian case said only "fix that" after the assistant offered a follow-up outside the PR. Name #2124 in the request, so allow is the only correct decision.
|
whats with the evals failing so bad here |
|
Mostly a CI outage, not this change.
A fresh push (for example, merging |
|
one more q: is this change actually what we want? it almost looks like overfitting but im not familiar w/ the set of evals we have here |
|
Mostly not, but one change is close to it.
If you'd rather not edit history, I'd revert that wording. I'd then either accept |
Some behavioral evals tested a runtime guard. They could reach that guard only when the model disobeyed the user or a core rule. When the model behaved well, they failed, so prompt improvements looked like regressions. #2371 showed this: the new prompt asks first or refuses every time. The judge scored those replies 1.0, but the "a call must exist" assertions failed.
skills/action-review.eval.tsintentno longer fails it.Guardian's own decisions are still tested directly in
evals/guardian/action-review.eval.ts.guardian/code-delivery.eval.tsallowor the stricterask, and still fails ondeny.skills/routing.eval.tscheck-test-architecture: tests inpackages/junior/testsmust not run the agent). So I moved the filter intoloadableSkills()inchat/agent/skills.tsand added a unit test intests/unit/skills/skills.test.ts.Open question: when the model asks first, these cases no longer exercise the rejection path. That path now runs only in samples where the model makes the call.
via David Cramer.
--
View Session [Sentry]