holistechlabsOpenCode · SWE-bench Verified
DEEN

Messung · 13. Oktober 2026 · 80 Durchgänge

Qwen3.8-Flash-Next als Coding-Agent auf dem HP ZBook Ultra G1a

halogen 0.18.0 · HP ZBook Ultra G1a · OpenCode 2.0.26

Autoren

Dipl.-Ing. Sören GebbertInstitut für holistische Technologieforschung GmbH Claude Code Opus 5.5Anthropic

Maschine und Server

HP ZBook Ultra G1a

SoC
Ryzen AI Max+ PRO 395, Radeon 8060S
Speicher
128 GiB LPDDR5X-8000 als Unified Memory
System
Ubuntu 24.04
Server
halogen-flash-server 0.18.0, Denkstufe xhigh
Gewichte
v2.hgn, alle 512 Experten

Protokoll

40 Issues, zwei Durchgänge

Agent
OpenCode 2.0.26
Aufgaben
SWE-bench Verified, Stufe „<15 min fix“, zufällig gezogen aus Django, sympy, Sphinx und pytest
Grenzen
262.144 Token Kontext, 60 bzw. 120 Minuten
Netz
gesperrt bis auf den eigenen Server
Gewertet
mit den Tests der Aufgabe wie bei SWE-bench

72von 80

Durchgänge gelöst 90,0 %, 95-%-Bereich 80,0 bis 97,5 %

4,6Minuten

Dauer eines Durchgangs Median, kürzester 0,8, längster 120 Minuten

1.244Token/s

Einlesen Median der Anfragen mit mindestens 2.048 neuen Token

59,4Token/s

Ausgabe Median aller Anfragen, Denken eingeschlossen

01 · Aufbau

Zufällig gezogene Issues, offline, gewertet mit den Tests von SWE-bench

Der Agent bekommt ein Repository auf dem Stand vor der Reparatur und das Issue im Wortlaut, dazu einen Satz: Löse das Issue, du darfst Befehle und die vorhandenen Tests ausführen, höre auf, wenn du fertig bist. Die Tests, mit denen gewertet wird, bekommt er nicht. Die Abhängigkeiten sind installiert; erreichbar ist nur der eigene Sprachmodell-Server.

Die Aufgaben stammen aus SWE-bench Verified, und zwar aus der leichtesten Stufe: Issues, für die ein erfahrener Entwickler laut Datensatz weniger als 15 Minuten braucht. Infrage kommen die 87 Aufgaben dieser Stufe aus Django, sympy, Sphinx und pytest, die unter Python 3.9 bis 3.11 laufen. Daraus sind 40 zufällig gezogen, geschichtet nach Repository, mit festem Startwert. Ausgewählt ist nichts nach Lösbarkeit. Eine Sphinx-Aufgabe ließ sich in der Umgebung der Wertung nicht prüfen und ist durch die nächste gezogene ersetzt.

Gewertet wird wie bei SWE-bench: Der Patch, den der Agent im Arbeitsbaum hinterlässt, kommt auf einen frischen Stand, dazu die Tests der Aufgabe. Gelöst ist eine Aufgabe, wenn die Tests zum Fehler bestehen (FAIL_TO_PASS) und kein vorher bestehender Test fällt (PASS_TO_PASS). Die Wertung läuft ohne Docker in einer Python-Umgebung nach der Harness von SWE-bench in Version 4.1.0. Jede der 40 Aufgaben bestand dort vorab mit der Referenzlösung.

Einstellungen: Kontext bis 262.144 Token, Ausgabe bis 32.768 Token je Anfrage, Temperatur 1,0, top_p 0,95, Denkstufe xhigh, automatische Kompaktierung an, Prompt-Cache im Arbeitsspeicher. Erst laufen alle 40 Aufgaben einmal, dann alle ein zweites Mal, in derselben Reihenfolge, mit einem Serverstart für alle Durchgänge. Nebenher läuft nichts.

Grundgesamtheit und Ziehung
Projekt in Verified Python 3.9–3.11 davon „<15 min fix“ gezogen Kennungen
Django231823215G01–G15
sympy75752511G16–G26
Sphinx44442210M01–M10
pytest191984M11–M14
zusammen369220 8740

02 · Ergebnis

72 von 80 Durchgängen gelöst

Der Agent löst 72 von 80 Durchgängen, also 90,0 %. Der 95-%-Bereich reicht von 80,0 bis 97,5 %; er ist über die Aufgaben gezogen, nicht über die Durchgänge, weil zwei Durchgänge derselben Aufgabe nicht unabhängig sind. Die Quote gilt für die 87 Aufgaben, aus denen gezogen wurde, nicht für SWE-bench Verified insgesamt.

Die beiden Durchgänge einer Aufgabe gehen immer gleich aus: 36 Aufgaben löst der Agent beide Male, 4 keinmal, keine nur einmal.

Gelöst je Projekt
ProjektAufgaben Durchgänge gelöst Aufgaben zweimal gelöst
Django1528 / 3014
sympy1120 / 2210
Sphinx1016 / 208
pytest48 / 84

03 · Fehlschläge

Vier Aufgaben, an denen der Agent scheitert

G01 (django__django-15127): Der Agent beendet beide Durchgänge nach 1,8 und 2,1 Minuten mit einem Patch, unter dem alle bisherigen Tests bestehen, der Test zum Fehler aber nicht.

G18 (sympy__sympy-15875): dasselbe Bild nach 27,8 und 39,8 Minuten und 68 bzw. 90 Schritten.

M08 (sphinx-doc__sphinx-7462): Von den zwei Tests zum Fehler besteht im ersten Durchgang keiner, im zweiten einer.

M04 (sphinx-doc__sphinx-8595): Der Agent legt in beiden Durchgängen eine Testdatei an, tests/roots/test-ext-autodoc/target/empty_all.py, die auch der Testpatch der Aufgabe anlegt. Der Testpatch lässt sich deshalb nicht anwenden, und der Durchgang zählt als nicht gelöst.

04 · Zeit

Wie lange ein Durchgang dauert und wohin die Zeit geht

Die Hälfte der Durchgänge ist nach 4,6 Minuten fertig. Django und sympy brauchen im Median 4,2, Sphinx und pytest 5,9 Minuten. Einzelne dauern viel länger: Die drei längsten brauchten 120,0, 59,7 und 39,8 Minuten. Alle 80 Durchgänge liefen in einem Stück und ohne Eingriff durch, in 13,0 Stunden einschließlich der Wertung.

Jeder Schritt des Agenten ist eine Anfrage an den Server: Er liest den neuen Teil des Verlaufs ein, meist die Ausgabe des letzten Werkzeugs, und schreibt Denken und den nächsten Werkzeugaufruf. Die Durchgänge selbst dauerten zusammen 12,8 Stunden. Davon entfallen 49 Minuten aufs Einlesen, 403 auf die Ausgabe und 313 auf Werkzeuge, vor allem die Tests, die der Agent selbst laufen lässt, und OpenCode. Das Tempo des Servers ändert sich mit wachsendem Kontext kaum.

Token je Sekunde nach Länge des Prompts, Median; Einlesen nur Anfragen mit mindestens 2.048 neuen Token, n = Zahl der Anfragen
PromptEinlesen Ausgabe
0k–32k1.257 n=25060,0 n=1.878
32k–64k1.183 n=4858,2 n=652
64k–128k1.186 n=1958,8 n=253
128k–256k1.338 n=358,5 n=26

05 · Verlauf

Kontext, Werkzeuge und Netz

Im Median braucht ein Durchgang 29 Schritte. Am tiefsten ging eine Sitzung mit 140.268 Token, gut die Hälfte des Kontextfensters von 262.144. Von 2.992 Werkzeugaufrufen scheiterten 19.

Ein Durchgang endete an der Zeitgrenze: G20 im ersten Durchgang, nach 120 Minuten und nur 49 Schritten. Der Patch, den der Agent bis dahin geschrieben hatte, besteht alle Tests und zählt deshalb als gelöst, wie bei SWE-bench.

Außer zum eigenen Server kam in keinem Durchgang eine Verbindung zustande. Die Sandbox des Betriebssystems sperrt jedes andere Ziel; eine Netzwache prüft das je Durchgang.

06 · Alle Zahlen

Alle 80 Durchgänge

Je Durchgang: Ergebnis der Wertung, Wandzeit, Schritte des Agenten, höchster Kontext der Sitzung und erzeugte Token einschließlich Denken. Aus dieser Tabelle sind alle Zahlen dieses Berichts gerechnet, das Tempo zusätzlich aus dem Protokoll des Servers.

Aufgabe Durchgang Ergebnis FAIL_TO_PASS PASS_TO_PASS Wandzeit (min) Schritte Kontext max. Token erzeugt
G01
django__django-15127
1nicht gelöst0/11/11,82014.8905.219
2nicht gelöst0/11/12,13015.1295.904
G02
django__django-16333
1gelöst1/187/875,24435.16114.439
2gelöst1/187/873,42529.0439.888
G03
django__django-15277
1gelöst2/2158/15811,01826.3562.857
2gelöst2/2158/15813,42569.1579.172
G04
django__django-15930
1gelöst1/188/8824,3142140.26870.021
2gelöst1/188/8859,788132.00053.937
G05
django__django-16595
1gelöst1/137/3710,75252.64530.559
2gelöst1/137/377,23240.77019.971
G06
django__django-17029
1gelöst1/143/433,32518.1118.891
2gelöst1/143/431,61611.7054.781
G07
django__django-16569
1gelöst2/2111/1112,22415.6226.281
2gelöst2/2111/1112,12515.4956.060
G08
django__django-15572
1gelöst1/110/104,33227.24612.423
2gelöst1/110/102,22017.0435.984
G09
django__django-15987
1gelöst1/152/523,52922.20010.402
2gelöst1/152/523,92622.36911.724
G10
django__django-16429
1gelöst4/421/212,92149.9147.575
2gelöst4/421/213,93240.99410.638
G11
django__django-16139
1gelöst1/186/8613,76877.87737.559
2gelöst1/186/869,74546.76427.033
G12
django__django-15380
1gelöst1/1133/1333,42025.81210.210
2gelöst1/1133/13316,54780.04355.114
G13
django__django-15467
1gelöst1/162/624,83931.88913.077
2gelöst1/162/623,32320.4638.164
G14
django__django-15851
1gelöst1/18/81,41412.6573.907
2gelöst1/18/81,82515.2115.170
G15
django__django-15569
1gelöst2/2242/2426,02935.58117.584
2gelöst2/2242/2428,04347.56723.426
G16
sympy__sympy-16886
1gelöst1/142/420,8108.9342.157
2gelöst1/142/421,11310.1372.975
G17
sympy__sympy-24562
1gelöst1/1105/1056,32326.79615.075
2gelöst1/1105/1054,22023.93611.474
G18
sympy__sympy-15875
1nicht gelöst0/180/8027,86871.24844.558
2nicht gelöst0/180/8039,890110.03482.105
G19
sympy__sympy-24539
1gelöst1/162/625,72216.0225.820
2gelöst1/162/621,81412.0623.578
G20
sympy__sympy-16450
1gelöst, Zeitgrenze1/138/38120,04935.03017.782
2gelöst1/138/3814,33550.33834.858
G21
sympy__sympy-12481
1gelöst1/17/74,03125.8099.429
2gelöst1/17/74,32225.97912.329
G22
sympy__sympy-23534
1gelöst1/111/114,54128.78512.179
2gelöst1/111/112,93419.2207.536
G23
sympy__sympy-21847
1gelöst1/19/95,22731.38713.748
2gelöst1/19/92,71720.3916.867
G24
sympy__sympy-13372
1gelöst1/144/443,91921.0418.773
2gelöst1/144/443,82423.3968.449
G25
sympy__sympy-12096
1gelöst1/143/4324,04441.82126.349
2gelöst1/143/4329,95856.29235.769
G26
sympy__sympy-14711
1gelöst1/12/23,82318.6757.150
2gelöst1/12/24,51820.0897.392
M01
sphinx-doc__sphinx-9698
1gelöst1/145/454,93122.2907.581
2gelöst1/145/451,71915.5384.965
M02
sphinx-doc__sphinx-8269
1gelöst1/15/54,82331.46214.988
2gelöst1/15/56,73741.89120.792
M03
sphinx-doc__sphinx-7910
1gelöst1/116/168,83439.80427.993
2gelöst1/116/1613,45653.54034.201
M04
sphinx-doc__sphinx-8595
1nicht gelöst, Testpatch nicht anwendbar––2,33117.5726.542
2nicht gelöst, Testpatch nicht anwendbar––8,24531.44611.828
M05
sphinx-doc__sphinx-10435
1gelöst1/174/744,82527.43813.627
2gelöst1/174/7415,15464.00940.907
M06
sphinx-doc__sphinx-8475
1gelöst1/117/173,93026.69211.664
2gelöst1/117/173,62426.76510.740
M07
sphinx-doc__sphinx-8459
1gelöst1/117/175,85450.90315.936
2gelöst1/117/174,35141.52911.548
M08
sphinx-doc__sphinx-7462
1nicht gelöst0/249/4915,24360.69939.410
2nicht gelöst1/249/4911,45347.72825.778
M09
sphinx-doc__sphinx-7440
1gelöst1/112/1216,27175.98335.674
2gelöst1/112/1218,880118.92144.390
M10
sphinx-doc__sphinx-9367
1gelöst1/125/251,52315.2964.243
2gelöst1/125/254,02217.0164.903
M11
pytest-dev__pytest-7205
1gelöst10/1016/162,83021.7188.098
2gelöst10/1016/1613,75745.94229.874
M12
pytest-dev__pytest-7982
1gelöst1/178/788,42520.11910.964
2gelöst1/178/782,71718.5408.178
M13
pytest-dev__pytest-7432
1gelöst1/177/7713,11944.47133.862
2gelöst1/177/771,61214.3454.537
M14
pytest-dev__pytest-6202
1gelöst1/172/726,12114.7016.068
2gelöst1/172/728,93326.02513.017

07 · Grenzen

Was diese Messung nicht zeigt

Nur leichte Aufgaben. Die Quote gilt für die 87 Aufgaben der Stufe „<15 min fix“ aus vier Projekten, nicht für SWE-bench Verified insgesamt und nicht für schwierigere Issues. Neben veröffentlichte Werte für Verified lässt sie sich nicht stellen.

Bekannte Aufgaben. Issues und Lösungen von SWE-bench Verified sind öffentlich. Ob Qwen3.8-Flash-Next sie aus dem Training kennt, lässt sich hier nicht prüfen.

Nachgebildete Wertung. Gewertet wurde ohne die Docker-Images von SWE-bench, in einer Umgebung nach den Vorgaben der Harness 4.1.0.

Nur bestandene Tests. Ob ein gelöster Patch die Ursache trifft oder nur den getesteten Fall, sagt die Wertung nicht. Eine Beurteilung der Patches enthält dieser Bericht nicht.

Zwei Durchgänge. Bei Temperatur 1,0 kann ein dritter Durchgang anders ausgehen. Der Bereich der Quote berücksichtigt die Streuung über die Aufgaben, nicht die innerhalb einer Aufgabe.

Grenzen des Agenten. Begrenzt sind Kontext (262.144 Token) und Zeit: 120 Minuten für Django und sympy, 60 für Sphinx und pytest. Die Zahl der Schritte begrenzt nichts: 79 Durchgänge liefen mit einer Grenze von 150 Schritten, die keiner erreichte und die OpenCode vorher nicht anwendet. Der eine Durchgang, der sie erreichte, lief ohne Grenze neu; Kapitel 06 zeigt diesen Durchgang.