scroll / ↓ to advance
A verified survey · 2025–202601 / 21

The Bench, the Gym, & the Scaffold

How LLM coding agents are evaluated, trained, and harnessed — the 2025–2026 research record, distilled to its data. Built from 30+ primary sources; every claim checked against the paper that made it.

129
research agents · 2 workflow passes
225
claims & facts extracted from primary sources
25/25
pass-1 claims confirmed by 3-vote juries
79·6·0
pass-2: confirmed · corrected · refuted

Part I · The Bench — slides 02–08 Part II · The Gym — slides 09–16 Part III · The Scaffold — slides 17–21

Compiled 2026-07-25All scores are publication-time snapshots bound to a stated model + harness + dateCorrections applied inline; see slide 21
Part I · The Bench02 / 21

Thirty months, 1.96% → 80.9%

State of the art on SWE-bench (→ Verified), per the benchmark's own record — the curve that made and then unmade the field's favorite number

100 75 50 25 0 Oct 2023 — SWE-bench launch: Claude 2 + BM25, 1.96% Aug 2024 — Verified launch: GPT-4o best scaffold, 33.2% ~Aug 2025 — SOTA 74.9% (OpenAI Feb-2026 post) Feb 2026 — SOTA 80.9%, then Verified retired 1.96 33.2 74.9 80.9 Oct '23 Aug '24 Aug '25 Feb '26 launch: Claude 2, best of any setting …and 21 days later, OpenAI retired the benchmark
Resolved %, best reported system. Points: original paper (1.96, BM25); Verified launch (GPT-4o 33.2, best open scaffold); OpenAI's Feb-2026 post ("74.9% → 80.9% in the last 6 months").
MilestoneDateBest
SWE-bench launches — 2,294 tasks, 12 Python repos, from ~90K PRs2023-101.96
Oracle-retrieval analysis ceiling, same paper2023-104.80
Leaderboard pre-Verified (full / Lite)2024-0820 / 43
Verified launches — 500 human-screened tasks2024-0833.2
SOTA, six months before retirement~2025-0874.9
SOTA at retirement announcement2026-0280.9

Verified exists because the raw benchmark under-measured models: 93 Python-experienced developers screened 1,699 sampled tasks and discarded 68.3% as broken or underspecified. The cleaned set doubled GPT-4o's score (16% → 33.2%).

arXiv:2310.06770openai.com/introducing-swe-bench-verifiedopenai.com/why-we-no-longer-evaluate…
Part I · The Bench03 / 21

The SWE-bench family, 2023–2025

One construction recipe — issue + repo snapshot + fail-to-pass tests — replicated across sizes, modalities, languages, and economies

BenchmarkDateTasksScopeWhat it addedDebut best
SWE-bench2023-102,294Python · 12 reposThe recipe: real issues, median 51 regression tests per task1.96
SWE-bench Lite2024300Python · 11 reposCheap subset; self-contained bug fixes (+23 dev tasks)
SWE-bench Verified2024-08500PythonHuman screening (93 devs × 1,699 tasks; 68.3% discarded)33.2
SWE-bench Multimodal2024-10517 testJavaScript · 17 reposScreenshots/diagrams in issues; visual front-end bugs12.0
SWE-Lancer2025-021,488Expensify · UpworkReal dollars: $1M in historical payouts; e2e Playwright tests by 100 paid engineers; manager tasks too26.2 IC
SWE-bench Multilingual2025-053009 languages · 42 reposC, C++, Go, Java, JS, TS, PHP, Ruby, Rust43.0
68.3%
of sampled SWE-bench tasks discarded by Verified's human screen
$208,050
earned of $500,800 — Claude 3.5 Sonnet on SWE-Lancer Diamond at release
43 vs 63
Claude 3.7 + SWE-agent: Multilingual vs Verified — the 20-pt language gap
>45%
of original SWE-bench drawn from a single repo (Django)
2310.067702410.038592502.12115swebench.com/multilingualMultimodal abstract says 617 total; paper body 619 (517 test + 102 dev)
Part I · The Bench · the validity crisis04 / 21

Crisis, evidence line 1 — memorization

"The SWE-Bench Illusion" (Microsoft Research + Purdue): two diagnostics that need no agent, no repo, no tools

Name the buggy file from the issue text alone

% correct file-path identification, no repository access
tasks in SWE-benchup to
76
repos outside SWE-benchup to
53
inside benchmarkoutside benchmark

Reproduce the gold-patch function

verbatim consecutive 5-gram similarity, given only issue + current file
SWE-bench Verified/Fullup to
35
other coding benchmarksup to
18
050100
"Performance gains on SWE-Bench-Verified may be partially driven by memorization rather than genuine problem-solving."Liang, Garg & Zilouchian Moghaddam, arXiv:2506.12286 · NeurIPS 2025 LAW workshop · ICSE 2026 SEIP · verified 3–0

A 23-point inside/outside gap on file identification, and ~2× the verbatim reproduction rate, are exactly the fingerprints training-set leakage would leave — and they motivated every contamination-resistant design on slide 08.

arXiv:2506.12286both probes verified 3–0 against the paper's v4 abstract
Part I · The Bench · the validity crisis05 / 21

Crisis, evidence line 2 — the tests were broken too

Two independent audits of the grading harness itself: UTBoost (ACL 2025) and OpenAI's 138-problem deep review

UTBoost findingLiteVerified
Instances with insufficient tests7.7% (23/300)5.2% (26/500)
PASS_TO_PASS / FAIL_TO_PASS annotation errors54.6%54.2%
"Passing" agent patches actually erroneous176169
Leaderboard entries affected40.9%24.4%
Ranking changes after re-grading1811

The 26 Verified failures survived the 93-developer screen. Re-grading demoted Amazon Q Developer from sole 1st (55%) into a tie at 53.6%. Cost of the audit: ~$1.60 per instance (GPT-4o test generation + intramorphic oracle).

OpenAI's audit — 138 problems o3 consistently failed (64 runs, ≥6 engineers each)

narrow tests · 35.5% wide tests · 18.8% misc · 5.1% no material issue · 40.6%

59.4% of the hard residue had material flaws in test design or problem description — "extremely difficult or impossible even for the most capable model or human to solve." The residual ceiling wasn't model failure; it was benchmark artifact.

345
wrongly-passing patches flipped by UTBoost's augmented tests
59.4%
of OpenAI's audited hard problems materially flawed
arXiv:2506.09289 (ACL 2025)openai.com retirement postverified 3–0
Part I · The Bench · the validity crisis06 / 21

Crisis, evidence line 3 — contamination, then retirement

The red-team that ended it: GPT-5 probing three frontier models over 15-turn elicitation

"All frontier models we tested were able to reproduce the original, human-written bug fix … known as the gold patch, or verbatim problem statement specifics for certain tasks."OpenAI, Feb 23 2026 — GPT-5.2-Chat, Claude Opus 4.5, and Gemini 3 Flash all elicited; GPT-5.2 emitted the exact gold patch for django__django-11451
  • Feb 23, 2026 — OpenAI stops reporting SWE-bench Verified, recommends all vendors do the same, endorses SWE-Bench Pro's public split. Cross-vendor contamination means no one's number was clean — including OpenAI's own.
  • The counterpoint — the SWE-bench authors dispute the saturation framing (arguing an ~87–95% achievable ceiling) while not contesting the audit's facts.
  • Jul 2026 — OpenAI's follow-up audit reportedly finds ~30% of Pro's public tasks broken; the endorsement is softened. Benchmark validity is a treadmill, not a destination.
DateEvent
2025-06Illusion + UTBoost preprints land within a week of each other
2025-09SWE-Bench Pro released as the "post-saturation" successor
2026-02Verified retired; SOTA frozen at 80.9%
2026-03django-11451 contamination independently replicated (5/5 byte-identical)
2026-07Pro itself audited: ~30% of public tasks reported broken
openai.com retirement postdate verified via announcement timestamp; page bot-blocked, content confirmed via multiple independent extractions · verified 3–0
Part I · The Bench · the response07 / 21

The response: reset difficulty, again and again

Best reported result at each benchmark's release — different models & harnesses; a narrative of difficulty, not a head-to-head

SWE-bench Oct '23 · Claude 2 + BM25
1.96
SWE-bench Verified Aug '24 · GPT-4o
33.2
SWE-bench Multimodal Oct '24 · SWE-agent
12.0
SWE-Lancer Diamond Feb '25 · Claude 3.5 Sonnet, IC
26.2
SWE-bench Multilingual May '25 · Claude 3.7 + SWE-agent
43.0
SWE-bench-Live May '25 · Claude 3.7 + OpenHands
19.25
SWE-Bench Pro Sep '25 · GPT-5
23.3
Terminal-Bench 2.0 Jan '26 · GPT-5.2 + Codex CLI
63.0
0255075100

The cleanest contamination measurement in the record

SWE-bench-Live re-ran the identical agent, model, and settings on both benchmarks:

SWE-bench Verified OpenHands + Claude 3.7
43.20
SWE-bench-Live same everything
19.25

A 2.2× gap with every variable held constant except task freshness — plus a within-Live split: 22.96% on SWE-bench-origin repos vs 18.89% on novel repos.

2.2×
same-agent score inflation on the static benchmark vs live tasks · verified 3–0
arXiv:2505.23419 (NeurIPS 2025 D&B)at-release bars cited on slides 02–08
Part I · The Bench · the response08 / 21

The 2025–26 benchmark generation

Three defenses — harder tasks, more languages, fresher data — and construction itself turned agentic

BenchmarkSizeCoverageContamination defenseFrontier @ releaseConstruction
SWE-Bench Pro Scale AI · 2509.169411,865 = 731+858+27641 repos; enterprise-grade, multi-file, hours–days tasksGPL copyleft public/held-out; 276 tasks on never-public startup codeGPT-5 23.3 · Opus 4.1 22.7; commercial all <20Human-verified; SWE-Agent scaffold
Terminal-Bench 2.0 ICLR 2026 · 2601.1186889Terminal work: SWE, ML, security, sysadmin, data scienceHand-built tasks; 89 kept of 229, 3 reviewers each<65 (best 63: Codex CLI + GPT-5.2)Unique env + human solution + test suite per task
SWE-bench-Live MSR · 2505.234191,319 → ~1,89093 → 223 repos, PythonOnly post-2024 issues; monthly refresh19.25 (Claude 3.7 + OpenHands)RepoLaunch: LLM agent builds each Docker env end-to-end
SWE-rebench Nebius · 2505.2041121,3363,468 Python reposIssue-date vs model-release tracking; flagged leaderboardtime-sliced monthly splitsFully automated 4-stage funnel from ~450K PRs
Multi-SWE-bench ByteDance · 2504.026051,632Java, TS, JS, Go, Rust, C, C++9 models × 3 scaffolds68 expert annotators filtered 2,456 candidates
SWE-PolyBench AWS · 2504.087032,110JS 1,017 · TS 729 · Py 199 · Java 165; bugs+features+refactorsAider 14.1 · SWE-agent 10.2 · Agentless 7.8Adds CST node-level retrieval metrics beyond pass-rate

The meta-move: evaluation infrastructure became agent-built (RepoLaunch environments, UTGenerator test audits, SWE-rebench's automated funnel) — and the same containerized fail-to-pass instance now serves as eval item and RL episode. Which is Part II's story.

All rows verified 3–0 or source-checked against the papers listed
Part II · The Gym · the map09 / 21

Training the agent: one pipeline, seven slides

The stage order below is the slide order that follows — substrate first, then each training stage, then integration and results

STAGE 0 · THE SUBSTRATE

Executable repository environments with tests — every stage below consumes them. Curated, mined, or fully synthesized.

→ slide 10
→ 15

1 · Pre-train

Repo-level code at scale; multi-hundred-language coverage; long-context packing.

K2: 15.5T tokens, MuonClip · QCN: 92→370 languages, 262K ctx — disclosed in the frontier reports
→ 11

2 · Mid-train

Agent-shaped data between code and trajectories: trajectory-native corpora, function-aware FIM.

daVinci-Dev: 58.5% SBV with no RL · FIM: +2.8…+5.4
→ 12

3 · SFT

Rejection-sampled expert trajectories from frontier teachers in executable envs.

SWE-smith: 5,016 traj → 40.2% · SWE-Gym: 491 traj → +14 abs
→ 13–14

4 · RL

Multi-turn agentic RL against test execution; GRPO-family; parallel container fleets.

DeepSWE: 512 containers/iter · Qwen: 20,000 parallel envs
5 · INTEGRATION

What frontier reports disclose when all stages run together — K2, Qwen3-Coder, Qwen3-Coder-Next.

→ 15
6 · RESULTS

Fourteen months of open-weights scores on one chart: 20.6 → 71.3.

→ 16

Formal frame for the whole part: the 500+-work agentic-RL survey (TMLR) casts preference tuning as a degenerate single-step MDP and agentic training as a temporally extended POMDP with execution-verifiable rewards — "unit-test passes, symbolic verifier success." Its code-agent taxonomy: generation → iterative refinement → automated software engineering.

arXiv:2509.02547 (TMLR)stage cards cite the slides that expand them
Part II · The Gym · stage 0: the substrate10 / 21

Stage 0 — the environment supply chain

Three generations: curate real repos → synthesize bugs into real repos → synthesize everything

SWE-Gym Dec '24 · curated · 11 repos
2,438
Multi-SWE-RL Apr '25 · curated · 7 languages
4,723
SWE-rebench May '25 · automated mining
21,336
SWE-smith Apr '25 · synthesized bugs
50,137
025K50K
Executable training tasks per corpus (SWE-Playground is excluded from the bars — its unit is trajectories, not tasks: 704 from 28 fully synthetic projects).
295 GB
all 128 SWE-smith envs (1 image/repo) vs 6 TB for SWE-Gym's 2.4K
2.3¢
avg cost per synthesized SWE-smith instance ($0 for procedural bugs)
7,500
prebuilt Docker images shipped with SWE-rebench (CC-BY-4.0)
CorpusHow builtKey training result
SWE-Gym ICML '25Real issues + envs + tests; ~200h manual setup; Raw split 64,689 (no envs)491 trajectories → +14 abs on Verified (32B)
SWE-smith NeurIPS '25 D&B5 bug-synthesis strategies: LM-modify 17,887 · procedural 15,641 · combine 10,092 · LM-rewrite 4,173 · PR-mirror 2,344PR-mirror bugs train best; LM-modify worst (5.7% vs 7.8–8.8%)
SWE-rebench4-stage automated funnel: ~450K PRs → 153.4K → 21,336 validatedFeeds Nebius RL (7,249 tasks, slide 13) + daVinci mid-training (slide 11)
SWE-Playground CMUProjects, tasks, tests all generated from scratch; OpenHands sandbox2–3× denser trajectories (39K tok, 36 tool calls); new task types transfer: SWT-Bench 18.1% @32B
2412.211392504.026052504.217982505.204112512.12216
Part II · The Gym · stage 2: mid-training11 / 21

Mid-training: the stage that got named in 2026

Between static code and agent trajectories — two papers put numbers on the gap

daVinci-Dev — "agent-native" corpora SJTU GAIR · 2601.18418

contextually-native · 68.6B tokenvironmentally-native · 4.5B
Result (SBV)Score
daVinci-Dev-72B — mid-train + SFT, no RL58.5
daVinci-Dev-32B56.1
Kimi-Dev-72B under aligned agentic setting (their comparison)48.6

At less than half the comparison baseline's mid-training budget. Rollouts generated by GLM-4.6 driving SWE-Agent; mid-train-only checkpoints released for others to post-train.

Function-aware FIM Waterloo/UBC/NVIDIA/Vector · 2607.12463

Mask whole functions picked by dependency-graph + complexity×inferability scoring — betting that the agent's act-observe-continue loop is isomorphic to a call site. 2.6B tokens, 968 repos, inserted before existing post-training.

Qwen2.5-Coder-7B Δ SBV after mid-train
+2.8
Qwen2.5-Coder-14B
+3.0
Qwen3-8B
+3.2
SWE-bench Lite gains same three models
+3.7 / +4.0 / +5.4
Bar scale: 10× points for visibility.

Repairs collateral damage too: agentic post-training alone costs a 14B model −13.1 LiveCodeBench and −7.4 BFCL; mid-training recovers the six-benchmark average by +3.5 while keeping the agentic gains. Behavior shifts: 3.3 → 7.4 edits per solved task, recovery rate 24.8 → 28.8%.

2601.184182607.12463Qwen3-Coder-Next confirms the stage at frontier scale: env feedback in mid-training *and* RL (slide 15)
Part II · The Gym · stage 3: SFT12 / 21

SFT: distill trajectories, keep what passes the tests

The workhorse recipe of 2025 — sample a frontier teacher inside an executable environment, rejection-filter by test execution, fine-tune an open model

PipelineTeacher → studentTrajectoriesResult (SWE-bench Verified)What it established
SWE-Gym ICML '25GPT-4o + Claude 3.5 Sonnet → 32B491 (~19 turns, ~19K tok each)+14 abs → 20.6 pass@1Sample efficiency; verifier best-of-16 → 32.0 (LoRA verifier beats full FT, 29.8 vs 27.2 best@8)
SWE-smith NeurIPS '25 D&BClaude 3.7 Sonnet → Qwen2.5-Coder-32B5,01640.2 (+33.4 over base)Scale: open-weights SoTA at publication; 7B variant on 2.0K traj → 15.2
R2E-Gym baseline→ 7B / 32B3,32119.0 @7BThe curated-env comparison line in SWE-Playground's tables
SWE-Playground CMUGemini 2.5 Pro ensemble → Qwen2.5-Coder704 (2–3× denser: 39K tok, 36 calls)17.0 @7B · 31.2 @32BDensity over count; task diversity transfers (SWT-Bench 18.1 @32B, best reported)
Qwen3-Coder-Next frontier practiceQwen3-Coder-480B → 80B-A3B(6 scaffolds, 21 tool templates)70.6–71.3 (after RL)Distilling across six scaffolds as deliberate anti-overfitting — then RL on top
45.8 → 6.4%
empty-patch rate, untrained → SFT'd 7B — the failure mode SFT fixes first
42.8 vs 32.0
pass@16 vs verifier-picked best@16 (SWE-Gym) — reward modeling lags sampling
6
scaffolds in QCN's distillation mix — trained-in harness diversity
1
scaffold most SFT sets are generated in — the overfitting risk Part III returns to
2412.211392504.217982512.122162603.00729source-checked
Part II · The Gym · stage 4: RL13 / 21

Four RL recipes, one sparsity problem

The verified 2025 record spans the whole reward-design spectrum — and disagrees productively

RecipeBase → result (SBV)Reward signalAlgorithmScale / infraDistinctive evidence
SWE-RL
Meta FAIR · NeurIPS '25
Llama-3.3-70B → 41.0No execution: difflib similarity to gold patch; −1 if malformedGRPO273K PR seed instancesGeneralizes out-of-domain (math, MMLU up) where SFT on same data degrades
Agent-RLVR
Scale AI
Qwen2.5-72B 9.4 → 22.4 (→27.8 + RM rerank)Unit tests on 817 envs + teacher guidance on failures (plans, error feedback, file pointers)Offline iterative DPO8,186 trajectories; 4–10 h/epoch on H100sGuidance ablation 19.8→22.4; also 14B 6.8→18.0, 32B 8.8→21.6; beats SFT-same-data (20.8)
DeepSWE
Agentica + Together
Qwen3-32B → 42.2 (59 with TTS)Pure execution: sparse 0/1 test pass in 5-min limit; no SFT, no teacherGRPO++ (DAPO clip-high, Dr.GRPO, leave-one-out; no KL)4.5K R2E-Gym tasks · 512 containers/iter · 64 H100 × 6 days~23 → 42.2 in 200 RL steps; everything open: weights, data, code, W&B logs
Nebius 72B
2508.03501
Qwen2.5-72B 11 → 39 (RFT alone: 20)Binary test success + length penalty; no teacherRejection FT → synchronous DAPO, 2 stages (65K→131K ctx, 40→80 turns)7,249 SWE-rebench tasks · 128 H200s35 / 31 on decontaminated SWE-rebench May/June splits — the contamination-aware readout

Three escapes from sparse reward: densify it (similarity proxy), guide it (teacher hints + off-policy preference pairs), or out-scale it (parallel container fleets until on-policy sparse reward works). The SFT-vs-RL question now has two same-data answers pointing the same way — toward RL.

2502.184492506.11425together.ai/deepswe2508.03501all source-checked
Part II · The Gym · stage 4: RL, measured14 / 21

What training buys: before → after

SWE-bench Verified pass@1, same model family before and after the recipe

0 25 50 75 100 Qwen2.5-72B base: 9.4 Qwen2.5-Coder-32B base: 8.8 Qwen2.5-Coder-14B base: 6.8 Qwen2.5-72B base: 11 Qwen3-32B at RL start: ~23 Qwen2.5-Coder-32B base ≈6.8 zero-shot in SWE-agent scaffold Agent-RLVR 72B: 22.4 Agent-RLVR 32B: 21.6 Agent-RLVR 14B: 18.0 Nebius RFT→DAPO 72B: 39 DeepSWE-32B: 42.2 SWE-agent-LM-32B (SFT on SWE-smith): 40.2 Agent-RLVR 72B · guided Agent-RLVR 32B Agent-RLVR 14B Nebius 72B · RFT → DAPO DeepSWE 32B · pure RL SWE-agent-LM 32B · SFT 9.422.4 8.821.6 6.818.0 1139 ~2342.2 6.8*40.2
before (base / RL-start)after training
*SWE-smith row: base Qwen2.5-Coder-32B ≈6.8 zero-shot in the SWE-agent scaffold (paper reports +33.4-pt jump to 40.2). DeepSWE's "before" is pass@1 at RL start (~23, from its training curve). Hover dots for exact context.
2–3×
typical pass@1 multiplier from a single recipe stage
+17
DeepSWE points from hybrid test-time scaling (42.2 → 59)
200
RL steps for DeepSWE's ~23 → 42.2 climb
0
teacher models used by DeepSWE and Nebius — pure environment signal
2506.114252508.03501together.ai2504.21798
Part II · The Gym · stage 5: integration15 / 21

Frontier-scale integration: all stages at once

What the three most detailed open model reports disclose about running the full pipeline

ModelParamsAgentic training dataRL storySBVRare disclosure
Kimi K2
Moonshot · Jul '25 · 2507.20534
1.04T / 32.6B actSynthesis pipeline over 3,000+ real MCP tools + 20,000+ synthetic tools; 15.5T pre-train tokensJoint RL with real + synthetic environments; MuonClip optimizer, zero loss spikes65.8
71.6 multi
Full optimizer recipe at 1T scale; base + instruct checkpoints released
Qwen3-Coder
Alibaba · Jul '25 · blog
480B / 35B act"Hard to solve, easy to verify" task farming; 256K native ctx (1M YaRN)Long-horizon RL on 20,000 parallel environments on Alibaba Cloud69.6†Environment-fleet scale as the stated bottleneck
Qwen3-Coder-Next
Alibaba · Feb '26 · 2603.00729
80B / 3B act~800K synthesized verifiable SE tasks (~9 langs, real PRs → Docker) + ~600B repo tokens; SFT distilled from 480B teacher across six scaffoldsEnv feedback in mid-training and RL; MegaFlow K8s/Argo orchestration (rollout→eval→analysis)70.6–71.3
Pro 42.7
"Reinforced Reward-Hacking Blocker": agents learned to fetch gold patches over the network; blocker bans repo-link + git/curl/wget combos; hacking intensifies with capability
300
turn cap for all Qwen3-Coder-Next benchmark runs
0.7 pt
QCN's spread across three scaffolds (70.6 / 71.1 / 71.3) — harness sensitivity at the frontier
69.6 (and GLM-4.6's 68.0) appear only in official chart images, not report prose — verification note
53.6 / 61.6
Devstral Small 1.1 (24B, Apache-2.0) / Medium (API-only) — the small-model open-weights line
2507.20534qwenlm.github.io2603.00729mistral.aiz.ai
Part II · The Gym · stage 6: results16 / 21

What the pipeline delivered: +50 points in 14 months

Every trained-model release in the verified record, Dec 2024 – Feb 2026 · line = running best open score

100 75 50 25 0 Jan '25 Jul '25 Jan '26 SWE-Gym ft-32B · Dec 30 '24 · 20.6 (SFT, OpenHands) Llama3-SWE-RL-70B · Feb 25 '25 · 41.0 (GRPO, similarity reward) SWE-agent-LM-32B · Apr 30 '25 · 40.2 (SFT on SWE-smith) Agent-RLVR 72B · Jun 13 '25 · 22.4 (guided RLVR / DPO) DeepSWE-32B · Jul 2 '25 · 42.2 (pure RL, GRPO++) Devstral Small 1.1 (24B) · Jul '25 · 53.6 Qwen3-Coder-480B-A35B · Jul 22 '25 · 69.6 (OpenHands, 500 turns) Kimi K2 (1.04T MoE) · Jul 28 '25 · 65.8 Nebius 72B · Aug 5 '25 · 39.0 (RFT→DAPO) GLM-4.6 · Sep 30 '25 · 68.0 SWE-Compressor 32B · Dec 26 '25 · 57.6 (CAT context SFT) daVinci-Dev-72B · Jan 26 '26 · 58.5 (mid-train + SFT, no RL) Qwen3-Coder-Next 80B-A3B · Feb 28 '26 · 71.3 (OpenHands) SWE-Gym 20.6 SWE-RL 41.0 SWE-smith 40.2 Agent-RLVR 22.4 DeepSWE 42.2 Devstral 53.6 Qwen3-Coder 69.6 K2 65.8 Nebius 39.0 GLM-4.6 68.0 SWE-Compressor 57.6 daVinci 58.5 QCN 71.3
Single-attempt resolved %. Step line = best open score to date. Hover any point for model · date · recipe. Vendor chart-image figures (69.6, 68.0) noted on slide 15.
ModelDateSBV%
SWE-Gym ft. 32B12/2420.6
Llama3-SWE-RL-70B02/2541.0
SWE-agent-LM-32B04/2540.2
Agent-RLVR 72B06/2522.4
DeepSWE-32B07/2542.2
Devstral Small 1.107/2553.6
Qwen3-Coder-480B07/2569.6
Kimi K2 (1.04T)07/2565.8
Nebius 72B08/2539.0
GLM-4.609/2568.0
SWE-Compressor 32B12/2557.6
daVinci-Dev-72B01/2658.5
Qwen3-Coder-Next02/2671.3
Read against slide 04: this is the benchmark whose gains are partly memorization-suspect — which is why model cards now co-report Multilingual, Pro, Live
Part III · The Scaffold · the map17 / 21

What is a scaffold?

Scaffold ≡ harness: all the software around the model that turns next-token prediction into a coding agent — the field even renamed one term to the other mid-2026

LLM

Proposes the next action from the context it is shown: a shell command, a file edit, a plan, a patch.

Scaffold / harness

Control loop (when to think, act, retry, stop) · prompt & context assembly (what the model sees) · tool dispatch & edit formats · context compaction · state & model routing.

Environment

Repo checkout, shell, test runner, Docker sandbox — returns observations and, in training, the reward.

Taxonomy layer (source-code census of 13 open agents at pinned commits)What variesCensus finding
1 · Control architectureLoop type; 5 composable primitives: ReAct, generate-test-repair, plan-execute, multi-attempt retry, tree search1 fixed pipeline (Agentless) · 7 ReAct (SWE-agent, OpenHands, Codex CLI, Gemini CLI, mini-swe-agent, Cline, OpenCode) · 2 phased (AutoCodeRover, Prometheus) · DFS (DARS) · MCTS (Moatless); 11 of 13 compose ≥2 primitives
2 · Tool & environment interfaceTool count & categories, edit formats, execution isolationTools range 0 (Aider) → 37 (Moatless); converges where external constraints bind
3 · Resource managementContext compaction, state management, multi-model routing7 distinct compaction strategies (truncation, sliding window, LLM summarization, selective dropping … none); diverges exactly on the open questions

Part III in that structure: measure its effect → 18 watch it evolve → 19 engineer it (context, SDKs, meta-agents) → 20 or delete it → 21

arXiv:2604.03515 — "Inside the Scaffold" (Huawei Canada)census reports no benchmark scores by design: architecture and model capability are confounded
Part III · The Scaffold · measure it18 / 21

Does the scaffold matter? Fix the model and measure

The scaffold was worth ~2× in 2025; at the frontier the spread narrows — but engineering still buys points

SWE-PolyBench · Claude 3.5 Sonnet fixed · Apr 2025

resolve % across 2,110 tasks, 4 languages
Agentless fixed pipeline
7.8
SWE-agent ReAct + ACI
10.2
Aider user-driven, 0 LLM tools
14.1

SWE-Bench Pro public · Claude 4.5 Sonnet fixed · Dec 2025

Resolve@1, 731 tasks, mean of 3 runs (CCA paper, Table 1)
SWE-Agent
43.6
Live-SWE-Agent
45.8
Confucius Code Agent
52.7
050100
Evidence · model fixedSpread
SWE-Gym zero-shot, Qwen2.5-Coder 7B/32B: MoatlessTools 7/19 vs OpenHands 1/3 (Lite) — scaffold decides whether a weak model functions at all
SWE-bench-Live: OpenHands 19.25 vs SWE-agent 17.13 (Claude 3.7)1.12×
SWE-PolyBench: Aider 14.1 vs Agentless 7.8 (Claude 3.5)1.8×
Qwen3-Coder-Next across 3 scaffolds: 70.6 / 71.1 / 71.31.01×
SWE-Bench Pro: CCA 59.0 vs OpenAI-reported 56.0 (GPT-5.2)+3.0 pts
Terminal-Bench 2.0 authors: "model choice matters more than scaffold" (Codex CLI + GPT-5.2 63 vs Terminus 2 + Opus 4.5 58)

The pattern: harness sensitivity is inversely proportional to model capability — enormous for weak models, ~1 point for frontier ones on familiar benchmarks — yet deliberate scaffold engineering (slide 20) still moves frontier scores on hard benchmarks by high single digits.

2504.087032512.103982412.211392505.234192603.007292601.11868
Part III · The Scaffold · watch it evolve19 / 21

Harness churn ≠ progress

First controlled longitudinal study: model frozen (Qwen3-Next-80B-A3B via vLLM), 35 sequential Qwen Code CLI releases replayed — 3,500 task executions

Resolve rate across 35 releases (50 stratified SBV tasks × 2 runs)

0 25 50 observed range across releases: 23.0–39.0% mean 30.5% 23.0 mean 30.5 39.0 Spearman trend test: no statistically significant improvement, v0.0.10 → v0.10.3
tokens/task, early releases
~391K
tokens/task, late releases
~668K · +70%
Later releases also used ~18% more LLM turns; unresolved tasks burn 2.7× the tokens of resolved ones.
Component changedQuality outcome across releases
LLM provider layerMost frequently associated with degradation
Context managementMost frequently associated with degradation
Extensibility, securitySafe or neutral
Ecosystem velocity (RQ0)Rate
OpenCode releases18.0 / week
OpenCode median release interval0.12 days
Gemini CLI issues in 224 days9,951
OpenCode issues in 278 days8,621
Codex commits (total studied window)9,521

Verification note: the paper's replication package (all 35 versions, scripts, results) is promised "upon acceptance" — not yet public. Queen's University; v2 retitled "scaffolding" → "agent harness" throughout.

arXiv:2607.03691source-checked · 1 correction applied
Part III · The Scaffold · engineer it20 / 21

The engineered end: context as a tool, agents as products

Context management became trainable; scaffolds became SDKs with SRE-grade receipts

SystemIdeaNumbers
CAT / SWE-Compressor
Beihang · ACL 2026 Findings · 2512.22087
Compaction as a callable tool the agent invokes at milestones; workspace = stable semantics + long-term memory + short-term detail. Trained via 20K trajectories with injected context-management actions (avg 87.4 steps, 4.22 actions each)57.6% SBV (Qwen2.5-Coder-32B base, ≤500 rounds); folded history 15.6K → 4.7K tokens (~30% ratio); beats ReAct + static compression under bounded context
OpenHands Agent SDK
MLSys 2026 + ACM badges · 2511.03690
V0 monolith → 4 packages on event-sourced state; native sandboxing, lifecycle control, multi-LLM routing, security analysis (absent from OpenAI/Claude/Google SDK comparison table)15-day production rollout: system failures −61% (78.0 → 30.0 /1K convs; infra 69.8 → 0.0); event persist 0.20 ms median; SBV 76.6 (Opus 4.5); V0→V1 gain is model-conditional: Sonnet 4.5 +8.2, Sonnet 4 ±0
Confucius Code Agent
Meta + Harvard · 2512.10398
A meta-agent that builds, tests, and refines coding agents (build-test-improve); hierarchical memory + persistent cross-session notes; AX/UX/DX design split59.0% Pro Resolve@1 w/ GPT-5.2 (vs 56.0 reported); 74.6% SBV w/ Claude 4 Sonnet; ablations: context mgmt +6.6 pts; notes 53.0 → 54.4% with turns 64→61 and tokens 104K→93K

Triangulation: the longitudinal study says context-management changes are where harnesses break (slide 19); the taxonomy says compaction is where designs diverge most (slide 17); CAT shows training the model to manage its own context beats bolting heuristics onto the harness; OpenHands' default summarizing condenser cuts API cost up to 2× with no performance loss.

Verification notes applied: CCA's institution corrected to Meta + Harvard (not Meituan); its 54.3% v1 "SoTA" claim was withdrawn a day after posting and re-framed — the 59.0 headline arrived in v6. OpenHands' SBV 76.6 sits below the 79.2 published SoTA it cites — SoTA on 3 of 5 suites (GAIA, Commit0, SWE-bench Multimodal), not on Verified.

2512.220872511.036902512.103982 corrections applied on this slide
Part III · The Scaffold · or delete it · closing21 / 21

The counter-current, the convergence, the open problems

mini-SWE-agent: the 100-line rebuttal SWE-agent team · Jun 2025

Bash as the only tool (no tool-calling API), strictly linear history, stateless subprocess.run execution. Marketed "some 100 lines of python" (190 on disk — we counted). 65% SBV with Claude Sonnet 4 at launch, 5 points shy of Anthropic's own scaffold; >74% today. Rationale: 2024 scaffolds compensated for chat-tuned models, but 2025 models are trained for agentic coding — so the scaffold can dissolve. Now the model-centric baseline for SWE-bench's "bash-only" leaderboard and for RL work that must not overfit a harness, the role Terminus 2 plays for Terminal-Bench. Against slide 20's SDKs, this is the live design argument of 2026.

Convergence thesis. Evaluation, training, and harness research now share one substrate — the containerized fail-to-pass repository. Benchmarks ship RL twins (Multi-SWE-bench→Multi-SWE-RL); models are trained inside the scaffolds they're scored in; harness skills are trained into weights. Scores are properties of systems, not models.

Open problems, ranked by evidence

  • Contamination arms race — the successor benchmark was reported ~30% broken within 5 months of its endorsement.
  • Unexplained post-release climbs — Pro ~23 → ~61.5; TB2.0 <65 → ~84.7, in months. Capability, tuning, or leakage?
  • Reward hacking scales with capability — agents fetched gold patches over the network; RL needs UTBoost-grade audits.
  • Verifier gap — pass@16 42.8 vs best@16 32.0: reward models lag policy sampling.
  • Mid-training is undefined — two strong papers, no shared stage definition, RL interaction untested.
  • No harness ablation science — one longitudinal study (package unreleased), one score-free taxonomy.

Corrections this deck applied

SWE-Gym Lite = 230 (not 234) · QCN Pro = 42.7 (not 56.2, column misread) · CCA = Meta+Harvard, 59.0 on GPT-5.2 · harness-study replication unreleased · OpenHands +8.2 is Sonnet-4.5-only · SWE-smith 7B comparison = 2.0K trajectories

github.com/SWE-agent/mini-swe-agentCompanion long-form report: llm-coding-agents-survey-2025-2026.html · compiled 2026-07-25 · 129 agents, 2 verification passes, 0 refuted claims
20 Made with Syncric