Back to blog

Same 12 Agents, Twice the Highs

Pashov Audit Group4 min read

On the Ammplify security contest benchmark, Solidity-auditor v3 caught 5 of the 13 Highs. v4 catches 11.

Ammplify, High severity findings caughtsolidity-auditor v3 caught 5 of 13 Highs. solidity-auditor v4 caught 11 of 13.AMMPLIFY HIGHS5 of 13solidity-auditor v311 of 13solidity-auditor v413 High severity findings were accepted in the contest

Everything is the same except one thing.

What one run finds

Solidity-auditor v3 already scored 80%+ recall on security contests like DODO. In one run, its twelve specialized AI agents found 14 of 17 findings in under 20 minutes.

But run v3 on the same codebase twice and you do not get the same report - you get two good reports that found different bugs.

Each run can find bugs the others miss. So we measured it with three runs over Ammplify in one scan. For each finding, we recorded which run found it.

  • 27 + 18 + 13 = 58. Together, the three runs produced 58 findings: 27 in run 1, 18 in run 2, and 13 in run 3. Runs 2 and 3 mostly found new issues rather than repeating what run 1 had already found.
  • 54 of those 58 findings appeared in one run only. Four appeared in two. None in all three. The reason is simple: AI is non-deterministic.

Introducing Loop Mode

If runs barely overlap, the obvious move is to run more of them. v4 does that with two pieces:

Loop mode. One scan, N runs. In each run, the same twelve specialists analyze the same scope. At the end of the scan, v4 combines all findings into one report instead of making you merge N reports yourself.

The memory ledger. A shared list of everything found so far. Before each run, the agents check the list to avoid repeating earlier findings and focus on areas they have not explored yet. New findings are added to the list.

On the Ammplify scan, the ledger went from empty to 37 records after run 1, 65 after run 2, and 92 after run 3. It was still climbing when we stopped.

Memory ledger growth on the Ammplify scan0 records at the start, 37 after run 1, 65 after run 2, 92 after run 3.Ledger records after each runSTILL CLIMBING0start37run 165run 292run 3

The ledger persists between scans, too - run the skill again next week after a refactor, and it starts from what it already knew, rather than from nothing.

What it’s worth

From the 36 accepted H/M findings in the Ammplify contest, here is what each run contributed:

Real bugs first caught, by runRun 1 found 5 High and 8 Medium. Run 2 added 3 High and 3 Medium. Run 3 added 3 High and 1 Medium. 23 in total, 11 High and 12 Medium.Real bugs first caught, by runEach run counted only for what no earlier run had found13Run 15 High · 8 Medium+6Run 23 High · 3 Medium+4Run 33 High · 1 MediumCaught 11 High · 12 Medium · 23 totalHighMedium

Ten of the twenty-three real bugs - including six of the eleven Highs - were found for the first time in run 2 or run 3. A single-run scan does not almost find those. It does not see them at all.

And here is where that lands against the alternatives on the same 36 findings, scored the same way:

Ammplify recall, 36 accepted findingsRecall by severity for Claude Code with no skill, solidity-auditor v3 and solidity-auditor v4.Ammplify recall36 accepted findings, scored the same way0%25%50%75%100%23.1%(3)38.5%(5)84.6%(11)High13 findings30.4%(7)47.8%(11)52.2%(12)Medium23 findings27.8%(10)44.4%(16)63.9%(23)Total36 findingsClaude Code (Opus 5), no skillsolidity-auditor v3solidity-auditor v4

Compared with Claude Code running bare-bones, solidity-auditor v4 achieved 3.7× the recall on Highs and 2.3× the overall recall.

Installation & usage of solidity-auditor v4

Follow the instructions in the README here:

solidity-auditor is an AI assistant. It samples the bug space; it does not exhaust it. No number of runs proves the absence of a vulnerability, and no guarantee of security is given.

For expert security consulting, visit pashov.com.