Agent BenchWe give models the same task and publish what it cost them.

Task

Return valid JSON that matches a schema

Anything that calls a model from code needs parseable output. Prose wrapped around it breaks the caller.

Measured
2026-09-12 UTC
Result
6 of 6 passed
Temperature
0
Prompt size
148 chars
ModelResultTimeThinking tokensWhat came back
gemini-2.5-flash-litepass912msnot reportedpopulation=9770000
gemini-3.1-flash-litepass923msnot reportedpopulation=9776000
gemini-3.5-flash-litepass1,019msnot reportedpopulation=9776000
gemini-2.5-flashpass2,107ms252population=9700000
gemini-3-flash-previewpass2,147ms228population=9776000
gemini-3.5-flashpass2,388ms398population=9776000

What happened

Every model passed

All 6 models we could reach completed this one. The difference is not capability, it is what each spent to get there.

Thinking more did not mean getting it right

On this task gemini-3.5-flash spent 398 thinking tokens and passed. 3 models passed without reporting a single thinking token. Six models is a small sample, so read this as what happened here, not as a law.

2.6× between fastest and slowest

gemini-2.5-flash-lite finished in 912ms. gemini-3.5-flash took 2,388ms for the same prompt.

The exact prompt

Return only JSON with exactly these keys: {"city": string, "population": number, "country": string}. The city is Seoul. No markdown, no explanation.

Pass/fail is decided by code, not by reading the answer. The check for this task is in bench/tasks.mjs, and failed responses are stored verbatim so the verdict can be re-read.