Local SWE-bench agent — experiment results
Scope: exploratory local-model evaluations, October 20–22, 2026. Five SWE-bench Verified issues. The denominator below counts nominal model–issue combinations, not independent benchmark issues. For the October 20 pilot, the two-model × five-issue count comes from the user-maintained batch index; individual attempt-status records for that pilot are not bundled. The other 70 attempts have per-instance outcome summaries. Agent instructions, model sets, and reliability conditions changed between batches; do not pool these runs as a standardized leaderboard result.
Batch inventory
| Batch start (local timestamp slug) | Models × issues | Agent / run notes | Applicable diffs | Resolved | Other terminal outcomes |
|---|---|---|---|---|---|
| 20261020-203211 | 2 × 5 = 10 | pre-v2.2 | 2 | 0 | Full attempt-level breakdown not included |
| 20261022-015250 | 5 × 5 = 25 | pre-v2.2, some OOM issues | 3 | 1 | 11 navigation exhausted; 6 malformed; 2 inapplicable; 3 HTTP errors |
| 20261022-051312 | 3 × 5 = 15 | v2.3 batch runner, v2.2 agent | 0 | Not evaluated | 7 navigation exhausted; 5 malformed; 3 inapplicable |
| 20261022-160043 | 3 × 5 = 15 | v2.3 batch runner, v2.3 agent, 12-step | 2 | 0 | 6 malformed; 6 inapplicable; 1 generation-length |
| 20261022-193725 | 3 × 5 = 15 | v2.4 batch runner, v2.4 agent | 3 | 0 | 7 malformed; 4 inapplicable; 1 generation-length |
| Total | 80 nominal combinations | Repeated measurements on five issues | 10 | 1 | Exploratory counts only |
Definition: “Applicable” means a nonempty generated patch passed git apply --check against the intended base checkout; “resolved” means the separate SWE-bench evaluator marked the submitted prediction resolved. An applicable patch is not a successful issue repair.
Confirmed successful evaluation
- Batch:
20261022-015250 - Prediction:
matplotlib__matplotlib-24026/Qwen3-14B-Q4_K_M - Evaluator split:
20261022-015250-a results.json:submitted_instances=2,completed_instances=2,resolved_instances=1,unresolved_instances=1,infra_failure_instances=0,error_instances=0resolved_ids:["matplotlib__matplotlib-24026"]- Source file changed in the prediction:
lib/matplotlib/stackplot.py - The other candidate in split
-a,sympy__sympy-19346from Qwen3-14B-Q5_K_M, was unresolved. An additional Qwen2.5 candidate for the same Matplotlib issue was evaluated separately (split-b) and was unresolved.
Original-batch input collision: The unsplit 20261022-015250.predictions.jsonl contained three prediction rows but only two unique instance_id values (two different models both predicted matplotlib__matplotlib-24026). Its initial evaluator log reported only two submitted instances and zero resolved. Splitting the same patches into -a and -b yielded the confirmed Qwen3 resolution. The exported patch bytes for Qwen3 were identical between the unsplit and split inputs (SHA-256 prefix ea27cf0aac3954c6). This strongly suggests duplicate-ID handling in the combined evaluator input obscured the winning candidate; the root log alone does not specify which duplicate was evaluated.
Final-batch evaluation
Batch 20261022-193725 produced three applicable diffs. They were split because two models predicted the same instance:
| Evaluation | Model | Issue | SWE-bench outcome |
|---|---|---|---|
20261022-193725-a | Devstral Small 2 24B IQ4_XS 4.04bpw | matplotlib__matplotlib-24026 | Unresolved |
20261022-193725-a | Qwen3 14B Q4_K_M | sympy__sympy-11618 | Unresolved |
20261022-193725-b | Qwen2.5 7B Q5_0 | matplotlib__matplotlib-24026 | Unresolved |
Both final split evaluators reported zero infrastructure failures and zero evaluation errors.
Five task identifiers
matplotlib__matplotlib-24026scikit-learn__scikit-learn-14983scikit-learn__scikit-learn-26323sympy__sympy-11618sympy__sympy-19346
Model artifacts and families
| Local model artifact / family | Note |
|---|---|
| Qwen2.5 7B Instruct Q5_0 | Model merged from parts, then locally renamed between batches, source parts were Q5_0 although renamed filename says Q8_0 |
| Qwen3 14B Q4_K_M | Hugging Face GGUF, SHA-256 verified |
| Qwen3 14B Q5_K_M | Hugging Face GGUF, SHA-256 verified |
| Devstral Small 2 24B Instruct IQ4_XS | Hugging Face GGUF, SHA-256 verified, Unsloth quantization |
| Devstral Small 2 24B Instruct IQ4_XS 4.04bpw | Hugging Face GGUF, SHA-256 verified, byteshape/ShapeLearn quantization |
These represent 5 artifact variants, correlated to 6 filenames, not independent model architectures. See the original Org source for complete filenames and model download URLs.
Audit and methodological limitations
- Version provenance: The supplied analysis extracts show zeros for navigation/token counts in the early 20261022-015250 and 20261022-051312 batches because those early audit records did not expose later structured metrics. Those zero columns are not evidence that no navigation occurred.
- Mixed interventions: The v2.3 and v2.4 variants differ in step budget and system instructions, preventing single-variable attribution.
- v2.4 final-step defect: The archived
run_agentusesif step >= 13: ... elif step == MAX_STEPS: ...whenMAX_STEPS=16. Theelifis unreachable at step 16, so the intended final patch-only instruction was absent. The controller still rejected navigation on the last step. So, effectively, the model was being sent the warnings that it was almost out of attempts from step 13, but no final warning at step 16 (the last step) that this was the last attempt, and to submit a patch if there was one at that turn. - Manual evaluation: Candidate predictions were assembled into evaluator inputs manually; when multiple models targeted the same issue, evaluation was split into distinct runs. The initial unsplit 20261022-015250 input included a duplicate
instance_id, showing why per-model grouping matters. The same candidate may appear in more than one exported evaluation input. Do not sum evaluator submission counts as unique patches. - Small sample: Five tasks, reused across configurations. The observed single resolution is a factual outcome, not a statistically reliable estimate of general coding-agent capability.
- Partial evaluation artifacts: The archive contains machine-readable
results.jsonfor the confirmed win and final two split runs; other runs are corroborated by the supplied evaluator root logs and Org summary, not by bundledresults.jsonfiles.
Source evidence in the private research archive
SWEBench-batch-run-summaries-models-and-manual-commands.org— experiment index, model provenance, manual evaluator and llama.cpp commands.swebench-batch-analysis/verified-5-*__20261022-*/1-final-summary-per-model-instance.log— attempt status breakdown for four October 22 batches.swebench-batch-evaluations-single-known-resolved-patch/20261022-015250-a/logs/evaluation/20261022-015250-a/results.json— machine-readable success confirmation.swebench-batch-evaluations-last-run/20261022-193725-{a,b}/logs/evaluation/*/results.json— final evaluation outcomes.latest-scripts/swebench_minimal_agent_v2.4.pyandlatest-scripts/05-batch-minimal-agent-runner-v2.4.bash— archived final implementation.