Metaphi AI
Contents
  1. Leaderboard
  2. Efficiency
  3. Environment
  4. Task construction
  5. Results by axis
  6. Failure analysis
  7. Limits
  8. Future work
  9. References
← Benchmarks
Benchmark · Enterprise software engineering

EnterpriseSWE

How effective, and efficient are agents on daily engineering PRs in private production codebases?

Evaluate your agent

EnterpriseSWEn = 150 taskspass@1
  1. 1Claude Sonnet 5.5Claude Code · medium effort85.3%150 tasks × 4 trials · $0.77 per trial · 2026-10-16
  2. 1Gemini 4 ArgonAntigravity CLI · high effort79.5%150 tasks × 4 trials · $6.62 per trial · 2026-10-16
  3. 3Muse Spark 1.3Muse Code · medium effort63.0%150 tasks × 4 trials · $3.70 per trial · 2026-10-16
  4. 3Gemini 3.8 FlashTerminus 2 · medium effort59.5%150 tasks × 3 to 4 trials · $6.32 per trial · 2026-10-16

Takeaways

  1. A success costs $0.91 with Sonnet on Claude Code, $5.87 with Muse Spark 1.3 on Muse Code, $8.33 with Argon and $10.60 with Gemini 3.8 Flash on Terminus 2.
  2. List prices differ by up to 2.7×, but once caching is counted every pair pays within 20% of the others per token. Steps per trial (30 to 260) and tokens per step (103k to 287k) make up the gap.
  3. Failing trials run as long as passing ones, or longer. No pair stops sooner when it is failing.
  4. Argon keeps going after its fix passes: 123 of its 600 trials ran into the 2-hour limit, and 90 of those passed.

01Efficiency

Per pairClaude Sonnet 5.5Claude CodeGemini 4 ArgonAntigravity CLIMuse Spark 1.3Muse CodeGemini 3.8 FlashTerminus 2
Outcome
Success rate, pass@1higher is better85%81%–90%80%74%–85%63%57%–69%60%53%–66%
Dollars per successlower is better$0.91$0.74–$1.12$8.33$7.39–$9.38$5.87$5.07–$6.86$10.60$9.18–$12.38
Dollars per triallower is better$0.77$6.62$3.70$6.32
Where the spend goes
Steps per triallower is better3092112260
Steps to a pass, medianlower is better238495246
Tokens per steplower is better103k287k158k118k
Tokens per triallower is better3.1M26M18M31M
Input read from cachehigher is better97%95%97%83%
Time
Active minutes per trial, medianlower is better3.7 min53 min*12 min†51 min
Trials stopped at the 2-hour limitlower is better012390 passed031 passed

* Gemini 4 Argon also waited a median 9.7 min per trial on provider capacity.† Muse Spark 1.3 also waited a median 21 min per trial on provider capacity.

Table 1. Efficiency by pair. Ranges are 95% bootstrap intervals over tasks.

Source: EnterpriseSWE v0.3.0, 2,399 trials · metaphi.aiData (CSV)
1×2×5×10×Cost gap by factor, log scaleClaude Sonnet 5.5Claude Code1×Gemini 4 ArgonAntigravity CLIGemini 4 Argon, Trials per pass: 1.1××1.1Gemini 4 Argon, Steps per trial: 3.1××3.1Gemini 4 Argon, Tokens per step: 2.8××2.8Gemini 4 Argon, Price per token, after caching: 1.0××1.0Gemini 4 Argon, total: 9.2×9.2×Muse Spark 1.3Muse CodeMuse Spark 1.3, Trials per pass: 1.4××1.4Muse Spark 1.3, Steps per trial: 3.7××3.7Muse Spark 1.3, Tokens per step: 1.5××1.5Muse Spark 1.3, Price per token, after caching: 0.83××0.83Muse Spark 1.3, total: 6.5×6.5×Gemini 3.8 FlashTerminus 2Gemini 3.8 Flash, Trials per pass: 1.4××1.4Gemini 3.8 Flash, Steps per trial: 8.7××8.7Gemini 3.8 Flash, Tokens per step: 1.1××1.1Gemini 3.8 Flash, Price per token, after caching: 0.82××0.82Gemini 3.8 Flash, total: 12×12×
1×2×5×10×Cost gap by factor, log scaleClaude Sonnet 5.5Claude Code1×Gemini 4 ArgonAntigravity CLIGemini 4 Argon, Trials per pass: 1.1××1.1Gemini 4 Argon, Steps per trial: 3.1××3.1Gemini 4 Argon, Tokens per step: 2.8××2.8Gemini 4 Argon, Price per token, after caching: 1.0××1.0Gemini 4 Argon, total: 9.2×9.2×Muse Spark 1.3Muse CodeMuse Spark 1.3, Trials per pass: 1.4××1.4Muse Spark 1.3, Steps per trial: 3.7××3.7Muse Spark 1.3, Tokens per step: 1.5××1.5Muse Spark 1.3, Price per token, after caching: 0.83××0.83Muse Spark 1.3, total: 6.5×6.5×Gemini 3.8 FlashTerminus 2Gemini 3.8 Flash, Trials per pass: 1.4××1.4Gemini 3.8 Flash, Steps per trial: 8.7××8.7Gemini 3.8 Flash, Tokens per step: 1.1××1.1Gemini 3.8 Flash, Price per token, after caching: 0.82××0.82Gemini 3.8 Flash, total: 12×12×

Trials per passSteps per trialTokens per stepPrice per token, after cachingTotal, the product, in the pair’s hue

Figure 1. Cost gap to Claude Sonnet 5.5, by factor. Dollars per success = trials per pass × steps per trial × tokens per step × price per token after caching. Log scale.

Source: EnterpriseSWE v0.3.0, 2,399 trials · metaphi.aiData (CSV)
010M20M30M40MTokens per trialClaude Sonnet 5.5Claude CodeClaude Sonnet 5.5, Cached input: 3.0M (96%)Claude Sonnet 5.5, Fresh input: 60 (0%)Claude Sonnet 5.5, Cache writes: 84k (3%)Claude Sonnet 5.5, Output and reasoning: 27k (1%)3.1M · 97% cachedGemini 4 ArgonAntigravity CLIGemini 4 Argon, Cached input: 25M (94%)25MGemini 4 Argon, Fresh input: 1.3M (5%)Gemini 4 Argon, Output and reasoning: 144k (1%)26M · 95% cachedMuse Spark 1.3Muse CodeMuse Spark 1.3, Cached input: 17M (96%)17MMuse Spark 1.3, Fresh input: 518k (3%)Muse Spark 1.3, Output and reasoning: 116k (1%)18M · 97% cachedGemini 3.8 FlashTerminus 2Gemini 3.8 Flash, Cached input: 25M (83%)25MGemini 3.8 Flash, Fresh input: 5.2M (17%)5.2MGemini 3.8 Flash, Output and reasoning: 132k (0%)31M · 83% cached
020M40MTokens per trialClaude Sonnet 5.5Claude CodeClaude Sonnet 5.5, Cached input: 3.0M (96%)Claude Sonnet 5.5, Fresh input: 60 (0%)Claude Sonnet 5.5, Cache writes: 84k (3%)Claude Sonnet 5.5, Output and reasoning: 27k (1%)3.1M · 97% cachedGemini 4 ArgonAntigravity CLIGemini 4 Argon, Cached input: 25M (94%)25MGemini 4 Argon, Fresh input: 1.3M (5%)Gemini 4 Argon, Output and reasoning: 144k (1%)26M · 95% cachedMuse Spark 1.3Muse CodeMuse Spark 1.3, Cached input: 17M (96%)17MMuse Spark 1.3, Fresh input: 518k (3%)Muse Spark 1.3, Output and reasoning: 116k (1%)18M · 97% cachedGemini 3.8 FlashTerminus 2Gemini 3.8 Flash, Cached input: 25M (83%)25MGemini 3.8 Flash, Fresh input: 5.2M (17%)Gemini 3.8 Flash, Output and reasoning: 132k (0%)31M · 83% cached

Cached inputFresh inputCache writesOutput and reasoning

Figure 2. Tokens per trial, by kind. Mean over scored trials.

Source: EnterpriseSWE v0.3.0, 2,399 trials · metaphi.aiData (CSV)
Claude Sonnet 5.5Claude Code0200k400k600k0%50%100%Claude Sonnet 5.5 at 0%: median 24k, middle half 23k to 24kClaude Sonnet 5.5 at 11%: median 37k, middle half 29k to 46kClaude Sonnet 5.5 at 22%: median 53k, middle half 42k to 68kClaude Sonnet 5.5 at 33%: median 63k, middle half 51k to 82kClaude Sonnet 5.5 at 44%: median 70k, middle half 57k to 93kClaude Sonnet 5.5 at 56%: median 77k, middle half 62k to 102kClaude Sonnet 5.5 at 67%: median 82k, middle half 65k to 109kClaude Sonnet 5.5 at 78%: median 86k, middle half 67k to 114kClaude Sonnet 5.5 at 89%: median 89k, middle half 71k to 119kClaude Sonnet 5.5 at 100%: median 92k, middle half 72k to 122kGemini 4 ArgonAntigravity CLI0200k400k600k0%50%100%Gemini 4 Argon at 0%: median 13k, middle half 12k to 13kGemini 4 Argon at 11%: median 89k, middle half 67k to 115kGemini 4 Argon at 22%: median 146k, middle half 114k to 184kGemini 4 Argon at 33%: median 194k, middle half 145k to 236kGemini 4 Argon at 44%: median 237k, middle half 183k to 292kGemini 4 Argon at 56%: median 284k, middle half 221k to 345kGemini 4 Argon at 67%: median 330k, middle half 256k to 405kGemini 4 Argon at 78%: median 363k, middle half 283k to 458kGemini 4 Argon at 89%: median 396k, middle half 310k to 498kGemini 4 Argon at 100%: median 420k, middle half 325k to 523kMuse Spark 1.3Muse Code0200k400k600k0%50%100%Muse Spark 1.3 at 0%: median 15k, middle half 15k to 15kMuse Spark 1.3 at 11%: median 62k, middle half 51k to 76kMuse Spark 1.3 at 22%: median 92k, middle half 77k to 109kMuse Spark 1.3 at 33%: median 110k, middle half 94k to 134kMuse Spark 1.3 at 44%: median 125k, middle half 106k to 151kMuse Spark 1.3 at 56%: median 137k, middle half 117k to 166kMuse Spark 1.3 at 67%: median 148k, middle half 125k to 180kMuse Spark 1.3 at 78%: median 158k, middle half 134k to 195kMuse Spark 1.3 at 89%: median 168k, middle half 141k to 208kMuse Spark 1.3 at 100%: median 176k, middle half 148k to 219kGemini 3.8 FlashTerminus 20200k400k600k0%50%100%Gemini 3.8 Flash at 0%: median 2k, middle half 1k to 2kGemini 3.8 Flash at 11%: median 28k, middle half 24k to 34kGemini 3.8 Flash at 22%: median 48k, middle half 40k to 56kGemini 3.8 Flash at 33%: median 68k, middle half 57k to 81kGemini 3.8 Flash at 44%: median 92k, middle half 78k to 110kGemini 3.8 Flash at 56%: median 118k, middle half 99k to 141kGemini 3.8 Flash at 67%: median 144k, middle half 123k to 173kGemini 3.8 Flash at 78%: median 168k, middle half 145k to 200kGemini 3.8 Flash at 89%: median 192k, middle half 164k to 228kGemini 3.8 Flash at 100%: median 209k, middle half 179k to 246k

Median25th to 75th percentilePrompt tokens per call against position in the trajectory, first turn to last

Figure 3. Context per step over a trajectory. Largest prompt sent so far; median, middle half shaded.

Source: EnterpriseSWE v0.3.0, 2,399 trials · metaphi.ai
0%20%40%60%80%100%Tool calls by phaseClaude Sonnet 5.5Claude CodeClaude Sonnet 5.5, Reading and searching: 63% (63%)63%Claude Sonnet 5.5, Editing: 26% (26%)26%Claude Sonnet 5.5, Running tests: 6% (6%)Claude Sonnet 5.5, Environment, services, waits: 2% (2%)Claude Sonnet 5.5, Other: 3% (3%)100%Gemini 4 ArgonAntigravity CLIGemini 4 Argon, Reading and searching: 71% (71%)71%Gemini 4 Argon, Editing: 13% (13%)13%Gemini 4 Argon, Running tests: 2% (2%)Gemini 4 Argon, Environment, services, waits: 9% (9%)9%Gemini 4 Argon, Other: 5% (5%)100%Muse Spark 1.3Muse CodeMuse Spark 1.3, Reading and searching: 64% (64%)64%Muse Spark 1.3, Editing: 23% (23%)23%Muse Spark 1.3, Running tests: 7% (7%)Muse Spark 1.3, Environment, services, waits: 2% (2%)Muse Spark 1.3, Other: 4% (4%)100%Gemini 3.8 FlashTerminus 2Gemini 3.8 Flash, Reading and searching: 57% (57%)57%Gemini 3.8 Flash, Editing: 9% (9%)9%Gemini 3.8 Flash, Running tests: 6% (6%)Gemini 3.8 Flash, Environment, services, waits: 17% (17%)17%Gemini 3.8 Flash, Other: 11% (11%)11%100%
0%50%100%Tool calls by phaseClaude Sonnet 5.5Claude CodeClaude Sonnet 5.5, Reading and searching: 63% (63%)63%Claude Sonnet 5.5, Editing: 26% (26%)26%Claude Sonnet 5.5, Running tests: 6% (6%)Claude Sonnet 5.5, Environment, services, waits: 2% (2%)Claude Sonnet 5.5, Other: 3% (3%)100%Gemini 4 ArgonAntigravity CLIGemini 4 Argon, Reading and searching: 71% (71%)71%Gemini 4 Argon, Editing: 13% (13%)13%Gemini 4 Argon, Running tests: 2% (2%)Gemini 4 Argon, Environment, services, waits: 9% (9%)9%Gemini 4 Argon, Other: 5% (5%)100%Muse Spark 1.3Muse CodeMuse Spark 1.3, Reading and searching: 64% (64%)64%Muse Spark 1.3, Editing: 23% (23%)23%Muse Spark 1.3, Running tests: 7% (7%)Muse Spark 1.3, Environment, services, waits: 2% (2%)Muse Spark 1.3, Other: 4% (4%)100%Gemini 3.8 FlashTerminus 2Gemini 3.8 Flash, Reading and searching: 57% (57%)57%Gemini 3.8 Flash, Editing: 9% (9%)9%Gemini 3.8 Flash, Running tests: 6% (6%)Gemini 3.8 Flash, Environment, services, waits: 17% (17%)17%Gemini 3.8 Flash, Other: 11% (11%)11%100%

Reading and searchingEditingRunning testsEnvironment, services, waitsOther

Figure 4. Tool calls by phase. Classified from each call's command and target.

Source: EnterpriseSWE v0.3.0, 2,399 trials · metaphi.aiData (CSV)
2050100200Steps per trial, log scaleClaude Sonnet 5.5Claude CodeClaude Sonnet 5.5, Passing trials: 23Claude Sonnet 5.5, Failing trials: 271.2×Gemini 4 ArgonAntigravity CLIGemini 4 Argon, Passing trials: 84Gemini 4 Argon, Failing trials: 1011.2×Muse Spark 1.3Muse CodeMuse Spark 1.3, Passing trials: 95Muse Spark 1.3, Failing trials: 1131.2×Gemini 3.8 FlashTerminus 2Gemini 3.8 Flash, Passing trials: 246Gemini 3.8 Flash, Failing trials: 2661.1×
2050100200Steps per trial, log scaleClaude Sonnet 5.5Claude CodeClaude Sonnet 5.5, Passing trials: 23Claude Sonnet 5.5, Failing trials: 271.2×Gemini 4 ArgonAntigravity CLIGemini 4 Argon, Passing trials: 84Gemini 4 Argon, Failing trials: 1011.2×Muse Spark 1.3Muse CodeMuse Spark 1.3, Passing trials: 95Muse Spark 1.3, Failing trials: 1131.2×Gemini 3.8 FlashTerminus 2Gemini 3.8 Flash, Passing trials: 246Gemini 3.8 Flash, Failing trials: 2661.1×

Passing trialsFailing trialsRatio, failing trials over passing trials

Figure 5. Steps when passing and when failing. Median, log scale.

Source: EnterpriseSWE v0.3.0, 2,399 trials · metaphi.ai
$0.05$0.10$1$10$20Dollars per trial, log scaleClaude Sonnet 5.5: 600 trials, 512 passed; median $0.51Claude Sonnet 5.5Claude Code$0.51 · n 600Gemini 4 Argon: 600 trials, 477 passed; median $5.81Gemini 4 ArgonAntigravity CLI$5.81 · n 600Muse Spark 1.3: 600 trials, 378 passed; median $3.05Muse Spark 1.3Muse Code$3.05 · n 600Gemini 3.8 Flash: 599 trials, 357 passed; median $5.66Gemini 3.8 FlashTerminus 2$5.66 · n 599
$0.05$1$10Dollars per trial, log scaleClaude Sonnet 5.5: 600 trials, 512 passed; median $0.51Claude Sonnet 5.5Claude Code$0.51 · n 600Gemini 4 Argon: 600 trials, 477 passed; median $5.81Gemini 4 ArgonAntigravity CLI$5.81 · n 600Muse Spark 1.3: 600 trials, 378 passed; median $3.05Muse Spark 1.3Muse Code$3.05 · n 600Gemini 3.8 Flash: 599 trials, 357 passed; median $5.66Gemini 3.8 FlashTerminus 2$5.66 · n 599

Passing trial, upper halfFailing trial, lower halfMedian, with n at the right

Figure 6. Cost of every trial. Log scale.

Source: EnterpriseSWE v0.3.0, 2,399 trials · metaphi.ai
40%50%60%70%80%90%100%$1$2$5$10Success rateDollars per success, log scaleClaude Sonnet 5.5 (Claude Code) Success rate: 85% (95% interval 81% to 90%) Dollars per success: $0.91 On the Pareto frontierClaude Sonnet 5.585% · $0.91 · Claude CodeGemini 4 Argon (Antigravity CLI) Success rate: 80% (95% interval 74% to 85%) Dollars per success: $8.33Gemini 4 Argon80% · $8.33 · Antigravity CLIMuse Spark 1.3 (Muse Code) Success rate: 63% (95% interval 57% to 69%) Dollars per success: $5.87Muse Spark 1.363% · $5.87 · Muse CodeGemini 3.8 Flash (Terminus 2) Success rate: 60% (95% interval 53% to 66%) Dollars per success: $10.60Gemini 3.8 Flash60% · $10.60 · Terminus 2
40%50%60%70%80%90%100%$1$2$5$10Success rateDollars per success, log scaleClaude Sonnet 5.5 (Claude Code) Success rate: 85% (95% interval 81% to 90%) Dollars per success: $0.91 On the Pareto frontierClaude Sonnet 5.585% · $0.91Gemini 4 Argon (Antigravity CLI) Success rate: 80% (95% interval 74% to 85%) Dollars per success: $8.33Gemini 4 Argon80% · $8.33Muse Spark 1.3 (Muse Code) Success rate: 63% (95% interval 57% to 69%) Dollars per success: $5.87Muse Spark 1.363% · $5.87Gemini 3.8 Flash (Terminus 2) Success rate: 60% (95% interval 53% to 66%) Dollars per success: $10.60Gemini 3.8 Flash60% · $10.60

Pareto frontierCheaper and more accurate than the median pair95% interval

Figure 7. Success rate against dollars per success. Ringed pairs are the Pareto frontier.

Source: EnterpriseSWE v0.3.0, 2,399 trials · metaphi.aiData (CSV)
Frontier reading after HAL.1,2
40%50%60%70%80%90%100%5.0 min10 min20 min50 minSuccess rateActive minutes per trial, log scaleClaude Sonnet 5.5 (Claude Code) Success rate: 85% (95% interval 81% to 90%) Active minutes per trial: 3.7 min On the Pareto frontierClaude Sonnet 5.585% · 3.7 min · Claude CodeGemini 4 Argon (Antigravity CLI) Success rate: 80% (95% interval 74% to 85%) Active minutes per trial: 53 minGemini 4 Argon80% · 53 min · Antigravity CLIMuse Spark 1.3 (Muse Code) Success rate: 63% (95% interval 57% to 69%) Active minutes per trial: 12 minMuse Spark 1.363% · 12 min · Muse CodeGemini 3.8 Flash (Terminus 2) Success rate: 60% (95% interval 53% to 66%) Active minutes per trial: 51 minGemini 3.8 Flash60% · 51 min · Terminus 2
40%50%60%70%80%90%100%5.0 min10 min20 min50 minSuccess rateActive minutes per trial, log scaleClaude Sonnet 5.5 (Claude Code) Success rate: 85% (95% interval 81% to 90%) Active minutes per trial: 3.7 min On the Pareto frontierClaude Sonnet 5.585% · 3.7 minGemini 4 Argon (Antigravity CLI) Success rate: 80% (95% interval 74% to 85%) Active minutes per trial: 53 minGemini 4 Argon80% · 53 minMuse Spark 1.3 (Muse Code) Success rate: 63% (95% interval 57% to 69%) Active minutes per trial: 12 minMuse Spark 1.363% · 12 minGemini 3.8 Flash (Terminus 2) Success rate: 60% (95% interval 53% to 66%) Active minutes per trial: 51 minGemini 3.8 Flash60% · 51 min

Pareto frontierFaster and more accurate than the median pair95% interval

Figure 8. Success rate against active minutes per trial. Model and tool time, median.

Source: EnterpriseSWE v0.3.0, 2,399 trials · metaphi.ai

Waiting is not working

Median minutes waiting for the provider to accept a call: Muse 21, Argon 10, Sonnet and Flash 0. Muse's median trial takes 32 minutes end to end, of which 12 are model and tool time. Argon averages 19 provider refusals per trial, each retried by the harness.

Rollout throughput for RL depends on these waits, but they are not the agent's behaviour, so the time scatter plots active minutes.

02Environment

Enterprise backend work happens in context: one business rule spreads across services, jobs, migrations and configuration, and must hold under concurrent requests, a process killed mid-write, several copies of a service, a slow database, a deadline. Each task is such a change, worded as the business asks for it, and is graded on the running system under those conditions.

System
Production backend services with their datastores; third-party providers are stand-ins the grader controls. This release: five systems from two businesses, 9k to 110k lines of Go over PostgreSQL, Redis and DynamoDB, and a Flutter client.
Observation
The service tree, the task statement, and a local stack to build and run the services against. The statement states the business outcome and the conditions it must hold under, never the fix.
Action
A shell in the agent's container, through the harness under test.
Hidden
The cases, written from the statement, and the reference fix.
Budget
Two hours of wall clock per trial. No network. A trial that runs out of time scores 0.
Reward
Binary. r = 1 when every fail-to-pass case and every pass-to-pass case passes, else 0. Fail-to-pass cases test the requested change; pass-to-pass cases pin behaviour that must not break.
Grader
A separate container rebuilds the changed services, brings the stack up, and runs the cases under the conditions the statement names: several copies of a binary, each with its own user and port, so a local lock cannot fake a fix; requests released together; a copy killed or frozen mid-write; a lock held or a session killed; datastores and providers cut, stalled, throttled or answering late; a write failed before or after it applies. Deadlines are asserted on the wall clock.

Task

The task statement

Agent container

  • Service source, migrations and client code
  • A local stack to build and run against
  • A shell through the harness under test

Grader container

  • Rebuild the changed services
  • Bring the stack up; kill, freeze, replicate, delay as the statement names
  • Run the must-fix and must-not-break cases

Reward

1 if every case passes, else 0

One rollout. Only the changed tree reaches the grader.
Task CI
Candidates mined from the codebase. Tests written from the task statement. A separate solver writes the reference blind, from the statement and starting code only. Tests and solutions play against each other until neither finds a new disagreement. Task CI scores every arm. Authored with Kennet.
Environment
Production backend services with their tasks and tests, run in containers. No network.
Agent
Claude Sonnet 5.5 on Claude Code 2.1.288, medium effort; Gemini 4 Argon on Antigravity CLI 1.3.5, high effort; Muse Spark 1.3 on Muse Code 1.4.7, medium effort; Gemini 3.8 Flash on Terminus 2 2.0.0, medium effort. 4 trials per task.
Score
Share of passing trials, averaged over tasks.
Interval
95% bootstrap over tasks. Shared rank unless intervals separate.

03Task construction

Hidden cases
2,938 (2,026 fail-to-pass, 912 pass-to-pass). Median 19 per task.
Known-wrong
3,200 plausible wrong fixes, each a realistic mistake, that the verifier must reject. Median 21 per task. Every one is rejected.
Known-right
366 correct fixes besides the reference, written differently, that the verifier must accept; 228 written blind from the statement alone. Every one is accepted.

Every task sits on two axes read from its own files, never from model results, so pairs and releases share one scale.

Engineering concern: the hardest systems condition the statement states, taken in this order: concurrent writers, duplicate requests or several copies of a service; a crash, a failing dependency or a deadline; data already stored or old and new builds side by side; who may see or do what. A task that states none is business logic only. Difficulty: the time an experienced engineer needs to design and implement the fix, the geometric mean of four blind estimates from two model families. Easy is under 2 hours, medium 2 to 3½, hard 3½ or more; cutoffs are fixed across releases.

Tier · concernConcurrency and duplicatesFailures and deadlinesStored data and rolloutAccess controlBusiness logic onlyAll
Easyunder 2 hours1114951150
Medium2 to 3½ hours44544259
Hard3½ hours or more3641––41
All912314913150

Table 2. Tasks by difficulty and engineering concern. A task's concern is the hardest systems condition its statement states.

Source: EnterpriseSWE v0.3.0, 150 tasks · metaphi.ai

04Results by axis

Success rate averaged over each row's tasks; best pair in bold. Average rank ranks the pairs on each task by pass rate, ties shared. A task counts under every condition it demands.

Tier · concernConcurrency and duplicatesFailures and deadlinesStored data and rolloutAccess controlBusiness logic onlyAll
Easyunder 2 hours0.8111 tasks0.9214 tasks0.809 tasks0.935 tasks0.8311 tasks0.8550 tasks
Medium2 to 3½ hours0.7644 tasks0.595 tasks0.724 tasks0.724 tasks0.532 tasks0.7359 tasks
Hard3½ hours or more0.5536 tasks0.454 tasks0.381 task––0.5341 tasks
All0.6891 tasks0.7723 tasks0.7514 tasks0.839 tasks0.7813 tasks0.72150 tasks

Table 3. Average reward by difficulty and engineering concern. Every trial of the 4 pairs on the cell's tasks.

Source: EnterpriseSWE v0.3.0, 2,399 trials · metaphi.ai
Tier · concernConcurrency and duplicatesFailures and deadlinesStored data and rolloutAccess controlBusiness logic onlyAll
Easyunder 2 hours0.56×11 tasks0.40×14 tasks0.78×9 tasks0.42×5 tasks0.51×11 tasks0.52×50 tasks
Medium2 to 3½ hours0.91×44 tasks1.46×5 tasks1.16×4 tasks0.79×4 tasks1.27×2 tasks0.96×59 tasks
Hard3½ hours or more1.95×36 tasks2.75×4 tasks3.53×1 task––2.05×41 tasks
All1.18×91 tasks0.80×23 tasks0.99×14 tasks0.55×9 tasks0.59×13 tasks1.00×150 tasks

Table 4. Dollars per solve by difficulty and engineering concern. Each pair's dollars per solve on the cell's tasks over its own on every task, averaged over the pairs; 1× is a pair's average solve.

Source: EnterpriseSWE v0.3.0, 2,399 trials · metaphi.ai
TasksClaude Sonnet 5.5Claude CodeGemini 4 ArgonAntigravity CLIMuse Spark 1.3Muse CodeGemini 3.8 FlashTerminus 2
All tasks
Success rate, pass@185%80%63%60%
Ceiling, pass@393%89%80%71%
Reliability, pass^374%69%45%48%
Difficulty
Easy50 tasks91%83%84%84%
Medium59 tasks86%86%63%57%
Hard41 tasks77%65%38%33%
Systems conditions the statement demands
Concurrent requests72 tasks83%75%57%51%
A process killed mid-work34 tasks82%74%58%46%
Several copies of a service44 tasks86%78%54%50%
A slow or failing dependency64 tasks86%75%56%53%
A stated deadline60 tasks81%76%54%54%
None of the five39 tasks90%83%74%67%
Three or more50 tasks86%75%54%47%
Avg rank over tasks1 is best2.122.222.792.86

05Failure analysis

Four model × harness pairs on the same 150 tasks, four trials each. Claude Sonnet 5.5 on Claude Code passes 85% of trials and Gemini 4 Argon on Antigravity CLI 80%, but Argon spends nine times as much per success. Every pair pays about the same per token. The gap in what a success costs comes from how many steps a pair takes and how much context it sends on each one.

  1. Claude Sonnet 5.5Claude Code44659528
  2. Gemini 4 ArgonAntigravity CLI4263840537
  3. Muse Spark 1.3Muse Code32015553528
  4. Gemini 3.8 FlashTerminus 229413695527
Guards held, share of must-fix cases fixedunder 25%25 to 50%50 to 75%75% or more
Claude Sonnet 5.512749
Gemini 4 Argon00434
Muse Spark 1.311429111
Gemini 3.8 Flash7218109
Figure 9. How each scored trial ended, from per-case results. A guard is a pass-to-pass case. The table bins failures that kept every guard by the share of must-fix cases fixed. 21 tasks without a must-fix and guard split left out.
Tool callsClaude Sonnet 5.5Claude CodeGemini 4 ArgonAntigravity CLIMuse Spark 1.3Muse CodeGemini 3.8 FlashTerminus 2
Calls per trial, median24140118201
Calls that failed11.2%5.0%6.3%5.8%
Failed calls followed by a working call on the same target within five calls0%0%0%0%
Replies the harness could not parse into a call, per trial, median00088
Table 5. Tool calls, read from each trial's trajectory. A failed call is a refusal, a tool error or a nonzero exit; its target is the command, file or emulator verb it acted on. 1 Muse Spark 1.3 trial stopped at the time limit without a trajectory.

After caching, price per token is flat. Steps and context set the cost.

Dollars per success is the product of four factors: trials per pass, steps per trial, tokens per step, and dollars per token after caching (spend over all tokens, cached reads included). Measured against Sonnet:

  • Flash costs 11.7× as much per success: 8.7× the steps, 1.4× the trials per pass, 1.1× the tokens per step, 0.8× the price per token.
  • Argon costs 9.2×: 3.1× the steps and 2.8× the tokens per step. Its price per token and its pass rate are within 7% of Sonnet's.
  • Muse costs 6.5×: 3.7× the steps, 1.5× the tokens per step, 1.4× the trials per pass.

Every pair reads more than four in five input tokens from cache, so the cost of a step is mostly the context it carries. A model that commits sooner and carries less context is cheaper on every factor that counts. Those two factors are what training can move.

Failing trials run as long as passing ones

Median steps, passing against failing: Sonnet 23 and 27, Argon 84 and 101, Muse 95 and 113, Flash 246 and 266. A failing trial costs at least what a pass costs and returns a reward of 0.

For a policy in training, every failing rollout is spent compute with no positive signal. A model that recognises it is stuck and stops sooner wastes less of the sampling budget.

Argon keeps working after its fix passes

Argon's median trial runs 53 active minutes; Sonnet's runs 4. 123 of Argon's 600 trials ran into the 2-hour limit, and 90 of those passed: the fix was in place, and Argon kept reading and re-checking until the clock stopped it.

Its context grows the most of the four, to about 400k tokens a call by the end of a trajectory. Each extra step after a working fix costs more than the step before it. Learning when it is done is worth more to Argon than learning a better fix.

Sonnet edits halfway in and stops soon after

On a passing trial, Sonnet makes its first edit to product code halfway through the trajectory and finishes 5 steps after its last edit. Argon edits at 69% and finishes 13 steps after its last edit; Flash at 62% and 46 steps after. Muse edits earliest, at 37%, then takes 24 more steps.

Edits are a quarter of Sonnet's and Muse's tool calls, 13% of Argon's and 9% of Flash's. Most of every pair's calls read and search the code.

A third of Flash's replies never run

Terminus 2 cannot parse 33% of Flash's replies into a command, so the step costs tokens and does nothing. Flash also spends 18% of its calls on the environment and its services, nearly half of them waiting on a process to finish.

Flash takes 260 steps a trial. Its tokens per step and price per token are close to Sonnet's. Most of its cost gap is steps, and a third of those steps are rejected replies. A reward on the harness's reply format targets these steps directly.

06Limits

  • Each row is a model on its own harness. A gap belongs to the pair, not to the model alone.
  • Argon runs at high reasoning effort, the only setting Antigravity CLI offers.
  • Spend is each trial's tokens at the provider's list price on the run date. Argon's and Flash's prices on those dates were introductory; at their later list prices both cost twice as much per token.
  • For one Flash run the gateway recorded fewer tokens than the trajectory, so those trials are priced from the trajectory's counts, with reasoning folded into output.
  • Muse Code ran at versions 1.4.7 and 1.4.9. It makes about two model calls per trajectory step; a step counts once.
  • Phases come from classifying each tool call by its command and target. A call that both reads and writes counts as an edit.

07Future work

  • Every model on one harness (Terminus 2), to separate the model's share of a gap from the harness's.
  • Effort sweeps where a harness offers them, plotted as accuracy against output tokens.
  • A smaller open model on the same tasks, the size a post-training team starts from.

08References

  1. Kapoor, S., Stroebl, B., Siegel, Z. S., Nadgir, N., and Narayanan, A. AI Agents That Matter. arXiv:2407.01502, 2024.
  2. Kapoor, S., Stroebl, B., et al. Holistic Agent Leaderboard. Princeton University.

Cite

@misc{metaphi2026enterpriseswe,
  title        = {{EnterpriseSWE} v0.3.0},
  author       = {{Metaphi AI}},
  year         = {2026},
  month        = oct,
  howpublished = {\url{https://metaphi.ai/benchmarks/enterpriseswe/backend}},
  note         = {Version v0.3.0}
}