30 of 31
tasks passed by each model, and both missed the same one.
Vercel's pass@4 result. Claude Fable 5.1, also at 97% on Vercel's table, missed that task too.
AgentGuard Evals · Round one · September 22, 2026
Benchmarks score the answer. AgentGuard Evals scores the path: the shell commands and file writes an AI coding agent makes on a real task, run through the same local rules the AgentGuard plugin runs before a tool call.
Round one uses the agent transcripts Vercel publishes for its Next.js evals, for the two models that launched on September 22, 2026. Vercel ran the agents and graded the tasks. Vercel did not run, review or endorse this analysis.
30 of 31
tasks passed by each model, and both missed the same one.
Vercel's pass@4 result. Claude Fable 5.1, also at 97% on Vercel's table, missed that task too.
745
shell commands and file writes scanned across both models.
Reads and web searches are not scanned.
0
stops across 75 attempts. No action matched an AgentGuard rule.
Every rule match would count as a stop, the default enforce action.
≤3.9%
95% upper bound on the share of attempts like these that would hit a stop.
Counted per attempt, because actions inside one attempt are not independent trials. Per action the bound is 0.40%. More runs tighten both.
| Model | Agent | Tasks passed | Attempts | Shell commands | File writes | Stops | Stops on passing attempts | Subagent spawns | Web searches |
|---|---|---|---|---|---|---|---|---|---|
| Claude Opus 5.5 (high) | Claude Code | 30 of 31 | 35 | 253 | 103 | 0 | 0 | 0 | 0 |
| GPT 6 Sol (high) | Codex | 30 of 31 | 40 | 389 | 0 | 0 | 0 | 0 | 275 |
Models are listed in the order Vercel lists them. There is no overall score, and AgentGuard is never a row. GPT 6 Sol writes files through shell patches, so its edits appear under shell commands.
Both models passed 30 of 31 tasks and failed the same one, agent-044-uses-nextjs. The failures cluster; they do not scatter.
Opus 5.5 ran 22 recursive deletes and GPT 6 Sol ran 4. They removed build output such as .next, test data from the agent's own smoke tests, and the old pages directory the router-migration tasks replace. None targeted root, home or the whole working directory, so none matched a rule.
GPT 6 Sol searched the web 275 times across its 40 attempts. Opus 5.5 made no web searches and wrote files directly 103 times. Neither launched a subagent.
"Stops on passing attempts" counts times our rules would have stopped an attempt that Vercel's tests passed. We review every one: a stop on risky work that still passed is a correct stop, and a stop on ordinary work counts against AgentGuard. We publish the column every round, whatever it shows. A guard that blocks good work is worse than none.
| Item | Round one |
|---|---|
| Transcripts | Vercel's published result sets claude-opus-5.5-high/2026-09-22T20-34-17.138Z and gpt-6-sol-high/2026-09-22T19-54-01.135Z in vercel/next-evals-oss (MIT license), commit bb7c02e. |
| Pass or fail | Vercel's own grading: pass@4 per task from its results file, and each attempt's result.json status. |
| Scanner | The AgentGuard Guard Pack, 14 rules, from plugin 0.3.4 (runtime/guard-pack.cjs, SHA-256 recorded in the data file). A static scan of recorded tool calls. Nothing was executed. |
| Statistics | Exact one-sided 95% bounds for zero events in n trials, 1 minus 0.05 to the power 1/n: 3.9% per attempt (n = 75) and 0.40% per action (n = 745). Attempts are the independent unit. |
| Not replayed | Spawn and spend limits. Neither model launched a subagent in these runs. |
| Published data | Counts, task names and rule IDs only. No command text. Read the round one data file. |
This round covers two result sets on one benchmark. It says how often these runs would have been stopped, not how an agent behaves on every task or machine. Later rounds add more public transcript sets and keep each round's date and scanner version.
See the plugin that runs these rules · What leaves your machine