MAKBench · enterprise-mini campaign

Seven models × two scaffolds on enterprise-mini

Published numbers from a fixed pack of 10 enterprise tool-use tasks, run under two CLI agent scaffolds against the same seven models. Each attempt starts from the same Docker fixture, hits the same wall-clock and step budgets, and routes every LLM call through one gateway so tokens and dollars are logged — not self-reported. Every cell below is 5 independent trials per task; later sections cover the harness, tasks, scoring, and a Nemotron 3 Ultra follow-up.

CLI agent scaffolds Docker sandboxes Gateway-metered cost Split-phase grading enterprise-mini · 10 tasks
2
Agent scaffolds
7
Models (5 providers)
10
Tasks in the pack
700
Graded attempts in this board

1 · Results

Model × scaffold scores

Seven models × two scaffolds, five independent trials per task — 50 attempts per cell, 700 graded attempts on the board. Choose a metric; click a table row for the per-task breakdown.

10 tasks × 5 trials per cell — every trial a fresh container, workspace, and budget-capped key. Single-run boards move ±0.1 on luck alone (a lucky 1-trial run scored Nemotron 0.80; five trials say 0.64) — five independent executions are what make these numbers stable.

Metric
OpenClaw ZeptoClaw

0 — 100%

Agent Model success rate consistency correctness cost / success solve time tokens in / out calls

Cost, tokens, and calls come from the gateway log. tokens in/out and calls are per-attempt averages; solve time is the median over passing attempts (a failed run's timing isn't the latency of a solve). tokens in includes every billed input token (agents that re-read the transcript each turn show higher values). Gemma is on a flat-rate plan and shows ~ (excluded from cost ranking).

Task × model matrix

All ten tasks, hardest first (sorted by mean pass rate ascending). Each cell: trials passed out of 5 for that agent×model. avg is the row mean.

What exactly ran — models, weights, hosting

Scores depend on more than the model name: the exact build, where it's served, and any quantization or context cap. Proprietary vendors don't disclose parameter counts. The model id is the literal string the gateway routes.

ModelParametersWeightsServed fromGateway model id$ / MTok in · out
Claude Sonnet 5not disclosedproprietaryAnthropic API (first-party)anthropic/claude-sonnet-52.00 · 10.00
GPT-5.6 solnot disclosedproprietaryOpenAI API (first-party)openai/gpt-5.6-sol5.00 · 30.00
GPT-5.6 terranot disclosedproprietaryOpenAI API (first-party)openai/gpt-5.6-terra2.50 · 15.00
Gemini 3.5 Flashnot disclosedproprietaryGoogle Gemini API (first-party)gemini/gemini-3.5-flash1.50 · 9.00
Gemma 4 31B31 B denseopen (Google)Featherless — flat-rate plan, 32K context capfeatherless/google/gemma-4-31B-itflat ~
Nemotron 3 Ultra550 B MoE · 55 B activeopen (NVIDIA, OpenMDW)Fireworks — NVFP4 4-bit buildfireworks/…/nemotron-3-ultra-nvfp40.60 · 2.40
gpt-oss-120B117 B MoE · 5.1 B activeopen (OpenAI, Apache-2.0)Fireworks — native MXFP4 release weightsfireworks/…/gpt-oss-120b0.15 · 0.60

Why it matters here: Gemma's 32K context cap is the direct cause of its expense-audit 0/5 (the token-heaviest task) — the model may be fine; the serving plan isn't. Nemotron runs a 4-bit NVFP4 build, so its scores measure that build, not the fp8/bf16 release — and independently re-tested below as a real agent-loop gap (§ Nemotron). Sonnet 5 prices are the introductory $2/$10 (through 2026-08); Nemotron's prices are pinned in providers.yaml because it's not in LiteLLM's price map. First-party APIs serve unquantized (or vendor-managed) builds.

Notes on the board

What the board shows

Ten enterprise tool-use tasks — each a multi-step workflow over a ~50-tool mock stack, graded on exact output artifacts — run five independent times per cell: fresh container, fresh workspace, fresh budget-capped key every time. Five clean executions per cell is a read most leaderboards skip (they run once): it separates a model that can from one that reliably does — the gap consistency measures. Two findings come out cleanly. (1) The pairing decides, not the scaffold: Nemotron 3 Ultra is 0.64 rate / 0.50 consistency on ZeptoClaw but 0.32 / 0.00 on OpenClaw; gpt-oss-120B runs the reverse — 1.00 / 1.00 on OpenClaw (~$0.04/attempt) while ZeptoClaw fails support-ticket-routing repeatedly. (2) No scaffold wins on average: paired over the 70 (model, task) cells the success-rate gap is +0.07 with a 95% CI crossing zero (p=0.18) — the interaction is the finding, not a scaffold ranking. Hover any bar for its 95% bootstrap CI — pooled claims are the robust ones; single cells read as directional. The 5-trial cut (700 attempts) is what makes all of this legible: Sonnet 5 firms up 0.80 → 0.92 while Nemotron’s lucky 0.80 settles to 0.64. Serving still caps the ceiling: Gemma’s expense-audit 0/5 on both scaffolds tracks the flat-rate host’s 32K context limit, not the weights. Success rate is the share of attempts that fully pass; consistency is the share of tasks that pass all five trials (both named for what they measure; in the literature these are pass@1 and pass^5).

5-trial matrix (per agent)

350 attempts per agent. Each cell is five dots for one task×model pairing (green = pass, red = fail). Switch agent or counting rule:

Agent
Lens

Independent evaluation

Why Nemotron 3 Ultra trails every peer

On the published board Nemotron is last on both scaffolds — ZeptoClaw 0.64 rate / 0.50 consistency, OpenClaw 0.32 / 0.00 — while Fireworks gpt-oss-120B on the same host clears ~1.0 on OpenClaw. Is that a harsh grader, or a real gap? We re-tested with a two-arm protocol that separates “can the model follow the contract?” from “does the agent loop finish the writes?”

Arm A · chat-only
No agent, exact contract

Same prompt to Nemotron and gpt-oss: emit out/violations.csv with header exactly txn_id,reason, plus out/report.md containing 1172.00, as a JSON map of path → file body. No Docker agent, no OpenClaw, no grader image — just instruction following.

Arm B · live harness
OpenClaw × expense-audit

Identical MAKBench path the same day: plan → filter to expense-auditrun-one. Same agent YAML, sandbox, gateway, and hidden pytest checks. Control is Fireworks gpt-oss-120b.

Arm Nemotron 3 Ultra (NVFP4) gpt-oss-120B (Fireworks control)
A · Chat-only contract pass pass
B · OpenClaw × expense-audit fail · corr 0.0 · missing out/* pass · corr 1.0 · $0.018

Verdict. Real gap on this bar, not a broken harness. Nemotron can obey the exact artifact contract in chat. Under OpenClaw it often never finishes the graded writes (this smoke: read/exec only, reasoning-only turn → incomplete response, both checks FileNotFoundError on violations.csv / report.md, ~$0.055 spent). Campaign history also shows freestyle filenames or CSV headers when files are written. The Fireworks control clears the same bar. Softening checks to “roughly understood the task” would measure a different skill.

External corroboration — same signature, different harness. BenchLM (data verified 2026-07-12) ranks Nemotron #7 / 134 on instruction following (90.0) but only #65 / 120 on agentic (46.8) — a ~43-point drop that mirrors our chat-only pass vs live-agent fail. Headline TAU3-Bench is a respectable 70.9%; the collapse is in the enterprise-domain agentic slices (Tau3-Banking 13.8%, Harvey LAB 3.3%, GDPval-AA 33.2%, EnterpriseOps-Gym 28.5%). Two independently built harnesses, different task sets, same model×capability claim: strong on single-shot instruction following, sharp degradation on multi-step enterprise agent work.

What we ruled out
Broken gateway / missing python3 / wrong workspace · “needs more thinking” (reasoning_effort none/high/max) · “reasoning parser” bug (forcing reasoning off made Zepto worse) · Fireworks hosting (gpt-oss on the same route ≈ 1.0).
What the scores measure
The served NVFP4 build in the gateway id — not an fp8/bf16 A/B. Scaffold still matters (Zepto friendlier than OpenClaw) but Nemotron stays last on both. Full write-up + reproducer: FINDINGS_NEMOTRON_ULTRA.md ↗.

2 · Harness

Attempt lifecycle

MAKBench runs CLI agents (ZeptoClaw, OpenClaw, Aider, Claude Code, and similar) against LLMs. Each attempt gets an isolated Docker workspace; LLM traffic goes through one gateway; grading runs in a separate trusted container. Fixtures, budgets, and images are fixed per campaign so agent×model cells are comparable. Cost is taken from the gateway call log.

01
Prepared image
The agent's digest-pinned image, install steps baked in and snapshotted — attempts start in ~1s.
02
Fresh workspace
A new volume, staged with the task fixture, the prompt written to a file, and a git baseline commit.
03
Container launch
A detached container, workspace at /workspace, hard CPU & memory caps.
04
Gateway-only net
Joined to an internal bridge whose only peer is the gateway — no route to the open internet.
05
Supervision
A 1 Hz loop enforces wall-clock, stall and step budgets, then dumps the full log.

New agents are a YAML file — the cli-generic adapter substitutes model and prompt and points the agent’s OpenAI-compatible env at the gateway.

agents.d/zeptoclaw.yaml
id: zeptoclaw
adapter: cli-generic
image: ghcr.io/qhkm/zeptoclaw@sha256:e32bce56…b86a   # digest-pinned
command:
  - /bin/sh
  - -c
  - |
    export OPENAI_BASE_URL="$OPENAI_BASE_URL"   # points at the metered gateway
    exec zeptoclaw agent --mode autonomous -m "$(cat {prompt_file})"
env_style: openai

Gateway metering. Each attempt gets a budget-capped virtual key; provider secrets never enter the sandbox (config holds env-var names only). Tokens, latency, and computed cost are ingested from that key’s call log at gateway provenance.

3 · What the agent sees

All ten tasks, exactly as they're handed over

The full enterprise-mini pack. Each tab shows the verbatim prompt the agent receives, the hidden checks that grade it (never visible to the agent), and how the published models did on it. The agent gets the prompt, a mock CLI, and seed data — nothing else.

4 · Verification & scoring

Split-phase grading

The agent runs in an untrusted sandbox; checks run in a separate MAKBench-owned container with the finished workspace mounted read-only. They do not share a process.

Phase 1 · agent
Untrusted sandbox
  • Runs in the task image — possibly third-party
  • Reads TOOLS.md, calls tools, writes files
  • Never sees the hidden verify/ tests
Phase 2 · verifier
Trusted grader
  • MAKBench-owned image (git · pytest · curl)
  • Mounts the frozen workspace read-only
  • Grades the resulting state — not how it got there
How crm-pipeline-update scores

Outcome-based. The hidden test_crm.py opens the mutated workspace and asserts two weighted checks; pass_threshold = 1.0 means both must pass.

test_deals_won · 0.4
L-003/007/010 are stage won, dated correctly.
test_pipeline_totals · 0.6
Recomputes from the live DB; compares JSON within ±0.01.

Anti-triviality: a pristine fixture must fail — so a no-op agent scores zero. Exact out/* contracts are intentional; see why that isn't “grader pedantry” for Nemotron.

The metrics
success rate · pass@1
Passing attempts ÷ all attempts.
consistency · pass^5
Tasks passing all 5 trials ÷ tasks.
correctness
Average score of one attempt, 0–1 — partial credit, not a pass rate.
cost / success
Spend incl. failures ÷ passes.

Cost bases never blend: metered per_token and amortized flat_rate (shown ~) are different units.