Qwen3.8-Flash-Next at IQ3_XXS on DeepSWE v1.1
One agent, one attempt per task, the model quantized to about 3.43 bits per weight and served on local GPUs. Run 2026-10-07 13:52:45 UTC to 2026-10-12 07:20:26 UTC.
The quantized model resolved 71 of 113 tasks (62.8%). Scored the way Datacurve scores its public board, that is 63.4% (71 of 112 graded attempts), with a 95% interval of 54.2–71.7%.
Labels in square brackets say where a figure comes from: counted from our run ledger and task evidence, computed from those counts or from Datacurve's public trial data, recorded from configs, logs and file records, and arithmetic from recorded figures. Nothing on this page is estimated.
Three ways to count, and the one that matches the board
| Convention | Resolved | Rate | 95% interval |
|---|---|---|---|
| All 113 tasks, retries counted A task counts as resolved if any attempt resolved it; the one task never graded counts as not resolved. | 71/113 | 62.8% | 53.6–71.2% |
| First attempts, harness failures excluded Drops the tasks whose first attempt hit a harness failure. | 69/110 | 62.7% | 53.4–71.2% |
| First attempts only, all 113 tasks Harness failures count as not resolved. | 69/113 | 61.1% | 51.8–69.5% |
| Every graded attempt (Datacurve's rule) Timeouts count as failures; attempts lost to a harness failure are dropped, as Datacurve drops trials that error. | 71/112 | 63.4% | 54.2–71.7% |
The first three rows confirm the counts noted at the run's finish (71/113 (62.8%), 69/110 (62.7%), 69/113 (61.1%)). Datacurve keeps every trial that ran in its score, including those stopped at the agent time limit (116 such trials), and drops trials that hit an infrastructure error (155 dropped). The matching rule for our run is the last row: our 2 timeouts count as failures, the 4 attempts lost to harness failures are dropped, and the two retries that ran cleanly count. Restricted to first attempts, the same rule gives the second row. The rows differ by less than the width of any one interval.
- Pass@1
- The share of single attempts that resolve their task. Datacurve ran 4.0 scored attempts per task for each configuration on average and pools them; we ran one.
- Resolved
- Every hidden test passes on the agent's committed change, run in a fresh verifier container.
- f2p and p2p
- Fail-to-pass tests fail before the change and must pass after it; pass-to-pass tests already pass and must keep passing.
- Quantization, bits per weight
- Storing each weight in fewer bits than a standard 16-bit number. Fewer bits means smaller files and less memory traffic, at some cost in accuracy.
- IQ3_XXS, IQ2_XS, IQ4_NL, Q2_0 …
- GGUF weight formats, as used by llama.cpp. The number is roughly the bits per weight; "IQ" formats store groups of weights as entries of a small codebook, chosen with the help of an importance matrix. The file is labelled IQ3_XXS, but it mixes several formats (table below).
- MTP draft
- A small multi-token-prediction head that proposes the next few tokens; the full model checks every proposed token in one pass. It is there for speed.
- Compaction
- When the conversation nears the context window, the agent summarizes earlier turns to make room.
The setup
The model and the quant
Qwen3.8-Flash-Next GSQ-RCO, a mixture-of-experts model: 48 layers, 512 routed experts per layer with 10 used per token, a 262,144-token native context [recorded, file metadata]. The quantization is GSQ-RCO by ISTA DASLab, with an importance matrix from 1,000 calibration chunks [recorded].
| File | Size on disk | Weights | Bits/weight |
|---|---|---|---|
Qwen3.8-Flash-Next-GSQ-RCO-IQ3_XXS-00001-of-00002.ggufmain weights | 47.04 GB | 125.7 B | 2.99 |
Qwen3.8-Flash-Next-GSQ-RCO-IQ3_XXS-00002-of-00002.ggufper-layer embedding table | 28.80 GB | 51.2 B | 4.50 |
| Model, both parts | 75.84 GB | 176.9 B | 3.43 |
Sizes are recorded file sizes; weight counts and bits per weight are arithmetic over the recorded tensor list (shape and bytes of every tensor). File hashes are not recorded.
| Part of the model | Weights | GB | Bits/weight |
|---|---|---|---|
| Routed experts (512 per layer) | 120.8 B | 42.91 | 2.84 |
| Per-layer embedding table | 51.2 B | 28.80 | 4.50 |
| Everything else (attention, embeddings, head, norms) | 4.7 B | 3.99 | 6.78 |
| Shared expert | 0.2 B | 0.12 | 4.10 |
Formats in the file, by bytes
| Format | Weights | GB | Bits/weight | Share of bytes |
|---|---|---|---|---|
IQ4_NL | 66.4 B | 37.33 | 4.50 | 49.2% |
IQ3_S | 22.7 B | 9.77 | 3.44 | 12.9% |
Q2_0 | 25.2 B | 7.08 | 2.25 | 9.3% |
IQ2_S | 16.8 B | 5.37 | 2.56 | 7.1% |
IQ2_XS | 16.8 B | 4.85 | 2.31 | 6.4% |
IQ2_XXS | 15.1 B | 3.89 | 2.06 | 5.1% |
IQ3_XXS | 10.1 B | 3.85 | 3.06 | 5.1% |
BF16 | 0.8 B | 1.53 | 16.00 | 2.0% |
Q6_K | 1.1 B | 0.86 | 6.56 | 1.1% |
Q5_K | 0.8 B | 0.58 | 5.50 | 0.8% |
IQ4_XS | 0.7 B | 0.39 | 4.25 | 0.5% |
Q4_K | 0.5 B | 0.30 | 4.50 | 0.4% |
Formats holding fewer than 0.1 billion weights (norms and small vectors) are left out of this table but counted above.
The MTP draft. The engine loads its own multi-token-prediction draft layer (835 MiB of VRAM [recorded, engine log]); its format is not recorded.
Hardware and engine
The model was served from the GGUF files above plus the engine's own repacked copy of the experts. The agent and the task containers ran on a separate host, and the model server answered over the local network.
| GPU | NVIDIA GeForce RTX 4080 |
|---|---|
| CPU | Intel Core i9-13900K (no AVX-512; the engine's CPU expert kernels use AVX2) |
| Engine | Strata 0.1.40, revision 82f46a8 |
| Where the weights live | routed experts in system RAM (39.97 GiB), with a GPU cache of the most-used experts (8.94 GiB of VRAM) |
| KV cache | int8, 32,768 of 204,800 cells resident on the GPU |
| Draft tokens per round | up to 4 (the engine's own MTP layer) |
| Server context | 204,800 |
| Agent compaction at | 172,032 tokens (window − 32,768) |
The harness
- Agent: the Pi coding agent (version 0.99.1), one attempt per task, a 204,800-token window.
- Limits, from each task's own definition: 10,800 s for the agent and 1,800 s for the verifier, no network for the agent, and grading in a separate fresh container [recorded, all 113 tasks].
- Tasks: DeepSWE v1.1, task images tagged
v1.1, from Datacurve's task repository at revision0b9fabbb63b9. - Retries: an attempt that hit an infrastructure error was run once more; nothing was retried for score.
- Sampling: temperature 1.0, top-p 0.95, top-k 20 [recorded].
- Dates: 2026-10-07 13:52:45 UTC to 2026-10-12 07:20:26 UTC, paused between 2026-10-07 15:16:55 UTC and 2026-10-09 00:02:16 UTC.
Against the public board
Datacurve publishes every trial behind its leaderboard: 31,462 scored trials over 70 configurations of 28 models, all run with mini-swe-agent [public data, fetched 2026-10-09]. We scored each configuration as passed trials over scored trials, and took each model's best configuration. Method check: against the leaderboard page as read on 2026-10-13 (marked updated September 22, 2026), this reproduces the published Pass@1 of all 21 models the page lists, and for every one of them also the page's choice of best effort level, its average output tokens and its average steps. Average cost matches for 15; the page prices the other 6 differently from the cost field in the trial data. The one cost on this page, the public median in the effort table, comes from that field.
At 63.4%, 29 public configurations score higher, 1 the same and 40 lower; by each model's best configuration, 12 of 28 models score higher. Our 95% interval (54.2–71.7%) contains 31 of the 70 public scores, so the ranking within that band is not settled by one attempt per task. The board's own Qwen entry, qwen3.8-max at xhigh effort, computes to 57.5% under its harness.
Pass@1 for every public configuration, with ours
Difficulty
For each task, Datacurve's data gives every model's pass rate; the task's average public pass rate is the mean over the 28 models [computed; it matches the published per-task difficulty file to within 0.0005]. The tasks we resolved average 62.1% on that scale; the ones we missed average 36.7%.
Resolve rate by difficulty
Every task, by how often public models solve it
Hard tasks we solved
In the hardest fifth (Q1, average public pass rate 3–31%), our run resolved 4 of 23. No task under 26% was resolved.
| Task | Public pass rate | Models that ever solved it |
|---|---|---|
| quill-shared-toolbar-focus | 25.9% | 19 of 28 |
| superjson-error-stack-serialization | 27.6% | 18 of 28 |
| oxvg-structural-selector-preservation | 29.6% | 20 of 28 |
| vulture-persistent-analysis-cache | 30.9% | 19 of 28 |
Easy tasks we missed
In the easiest fifth (Q5, average public pass rate 73–92%), our run missed 2 of 22.
| Task | Public pass rate | Models that ever solved it | Ours |
|---|---|---|---|
| wasmi-trap-coredumps | 74.0% | 26 of 28 | not resolved |
| vitest-duration-sharding | 78.2% | 27 of 28 | not resolved |
All 113 tasks
| Task | Language | Public | Ours |
|---|---|---|---|
| gql-incremental-graphql-delivery | Python | 3% | not resolved |
| obsidian-linter-auto-table-of-contents | TypeScript | 4% | not resolved |
| bandit-structured-nosec-directives | Python | 8% | not resolved |
| termenv-preserve-ansi-resets | Go | 10% | not resolved |
| updo-policy-alerting | Go | 13% | not resolved |
| effect-sse-httpapi-streaming | TypeScript | 17% | not resolved |
| sqlfmt-create-table-ddl-formatting | Python | 20% | not resolved |
| koota-pair-relation-tracking | TypeScript | 22% | not resolved |
| pest-character-class-coalescing | Rust | 23% | not resolved |
| meriyah-explicit-resource-declarations | TypeScript | 23% | not resolved |
| koota-query-predicates | TypeScript | 25% | not resolved |
| testem-bail-on-test-failure | JavaScript | 25% | not resolved |
| quill-shared-toolbar-focus | TypeScript | 26% | resolved |
| helm-array-merge-strategies | Go | 26% | not resolved |
| prometheus-transactional-reload-status | TypeScript | 26% | not resolved |
| ink-grid-box-layout | TypeScript | 26% | not resolved |
| obsidian-linter-link-format-conversion | TypeScript | 27% | not resolved |
| superjson-error-stack-serialization | TypeScript | 28% | resolved attempt 2 |
| koota-deferred-mutation-buffer | TypeScript | 30% | not resolved |
| oxvg-structural-selector-preservation | Rust | 30% | resolved |
| kea-atomic-signal-selectors | TypeScript | 30% | not resolved |
| kombu-virtual-queue-dead-lettering | Python | 30% | not resolved |
| vulture-persistent-analysis-cache | Python | 31% | resolved |
| csstree-shorthand-expansion-compression | JavaScript | 31% | resolved |
| happy-dom-deterministic-intersectionobserver | TypeScript | 31% | not resolved |
| awilix-async-container-initialization | TypeScript | 31% | not resolved |
| koota-composite-trait-aspects | TypeScript | 35% | resolved |
| textual-kitty-key-phases | Python | 36% | not resolved |
| expr-try-catch-errors | Go | 36% | not resolved |
| katex-multicolumn-array-spans | JavaScript | 38% | resolved |
| clack-async-autocomplete-options | TypeScript | 39% | resolved |
| onedump-dump-encryption-pipeline | Go | 39% | resolved |
| kgateway-consistent-hash-policy | Go | 39% | resolved |
| langchain-request-coalescing | Python | 40% | timeout |
| arktype-json-schema-refs-dependencies | TypeScript | 41% | resolved |
| go-critic-doc-link-checker | Go | 41% | not resolved |
| pwntools-tube-multiplexing | Python | 41% | not resolved |
| python-statemachine-state-data-scoping | Python | 41% | not resolved |
| httpx-streaming-json-iteration | Python | 42% | not resolved |
| igel-persist-feature-schema | Python | 43% | resolved |
| optique-conditional-option-dependencies | TypeScript | 43% | resolved |
| participle-grammar-conflict-analysis | Go | 44% | resolved |
| dateutil-rfc5545-timezone-interop | Python | 45% | resolved |
| bandit-incremental-cache-control | Python | 45% | resolved |
| fastapi-deprecation-response-headers | Python | 47% | resolved |
| bandit-interprocedural-taint-checks | Python | 47% | resolved |
| pebble-durability-wait-apis | Go | 48% | not resolved |
| boa-hierarchical-evaluation-cancellation | Rust | 48% | resolved |
| eicrud-keyset-pagination-cursor | TypeScript | 49% | not resolved |
| dasel-html-document-format | Go | 50% | resolved |
| mashumaro-flattened-dataclass-fields | Python | 50% | not resolved |
| fastapi-implicit-head-options | Python | 50% | not resolved |
| cliffy-config-file-parsing | TypeScript | 52% | resolved |
| skrub-duration-encoding | Python | 53% | resolved |
| anko-typed-variable-bindings | Go | 54% | resolved |
| opa-rego-rule-profiling | Go | 55% | resolved |
| httpx-multipart-response-parsing | Python | 55% | not resolved |
| prometheus-typed-label-sorting | Go | 56% | resolved |
| kombu-single-active-consumer-priority | Python | 56% | resolved |
| tengo-destructuring-bindings | Go | 57% | not resolved |
| claude-code-by-agents-recursive-delegation | TypeScript | 58% | not resolved |
| scriggo-method-declarations | Go | 60% | not resolved |
| ipython-session-bundle-replay | Python | 60% | resolved |
| mnamer-daemon-watch-lifecycle | Python | 60% | resolved |
| valibot-recursive-schema-composition | TypeScript | 61% | resolved |
| scc-bounded-memory-spilling | Go | 61% | resolved |
| mobly-grouped-test-barriers | Python | 62% | resolved |
| sqlite-utils-safe-import-checkpoints | Python | 62% | timeout |
| adaptix-name-mapping-aliases | Python | 63% | resolved |
| kysely-window-grouping-helpers | TypeScript | 64% | resolved |
| textual-richlog-follow-state | Python | 65% | not resolved |
| fd-deterministic-multi-key-sorting | Rust | 65% | resolved |
| tengo-callable-instance-isolation | Go | 65% | resolved |
| ts-pattern-match-each | TypeScript | 66% | resolved |
| tomlkit-toml-table-converters | Python | 66% | resolved |
| etree-xml-diff-patch | Go | 66% | resolved |
| numba-stencil-boundary-modes | Python | 66% | not graded 2 attempts |
| yaegi-go-embed-directives | Go | 67% | resolved |
| opa-template-string-reconstruction | Go | 67% | resolved attempt 2 |
| abs-stepped-slices | Go | 68% | resolved |
| cattrs-partial-structuring-recovery | Python | 68% | not resolved |
| dynamodb-toolbox-lazy-recursive-schemas | TypeScript | 68% | resolved |
| koota-entity-snapshot-rollback | Python | 68% | resolved |
| obsidian-linter-scoped-ignore-markers | TypeScript | 68% | resolved |
| arcane-drift-detection-baselines | Go | 68% | resolved |
| query-persist-restored-query-state | TypeScript | 71% | resolved |
| anko-default-function-arguments | Go | 71% | resolved |
| go-git-worktree-merge-conflicts | Go | 72% | resolved |
| geo-shapeindex-serialization | Go | 72% | resolved |
| kcp-go-multiplexed-kcp-streams | Go | 72% | resolved |
| testem-per-launcher-reports | JavaScript | 73% | resolved |
| dynamodb-toolbox-conditional-attribute-requirements | TypeScript | 73% | resolved |
| wasmi-trap-coredumps | Rust | 74% | not resolved |
| task-task-graph-export | Go | 75% | resolved |
| aiomonitor-task-snapshots-diff | Python | 76% | resolved |
| abs-module-cache-flags | Go | 77% | resolved |
| vitest-duration-sharding | TypeScript | 78% | not resolved |
| ytt-jsonpath-query-api | Go | 78% | resolved |
| wazero-multi-module-snapshots | Go | 79% | resolved |
| goreleaser-retry-publish-auditing | Go | 79% | resolved |
| psd-tools-blend-range-api | Python | 80% | resolved |
| yjs-map-conflict-detection | JavaScript | 82% | resolved |
| httpx-deterministic-cookie-store | TypeScript | 83% | resolved |
| returns-validated-error-accumulation | Python | 83% | resolved |
| ofetch-per-origin-circuit-breaker | TypeScript | 83% | resolved |
| go-genai-streamed-function-args | Go | 84% | resolved |
| actionlint-action-pinning-lint | Go | 84% | resolved |
| happy-dom-abort-pending-body-reads | TypeScript | 84% | resolved |
| helm-unified-manifest-stream | Go | 84% | resolved |
| sql-formatter-bigquery-pipe-formatting | TypeScript | 84% | resolved |
| drizzle-orm-window-function-builders | TypeScript | 86% | resolved |
| narwhals-rolling-window-suite | Python | 89% | resolved |
| true-myth-iterable-collection-combinators | TypeScript | 92% | resolved |
By language
Resolve rate by language
Effort per task
Over our 112 graded attempts [counted from each task's summary]: 77.6 agent-hours in all. The public figures are medians over 31,462 trials run with mini-swe-agent on other hardware; they show the scale of a typical public attempt, not a like-for-like comparison.
| Median per attempt | Ours (Pi) | Public (mini-swe-agent) |
|---|---|---|
| Agent wall time | 33.8 min | 16.0 min |
| Model turns (ours) / agent steps (public) | 137 | 66 |
| Output tokens | 117,272 | 51,772 |
| Largest context | 171,923 | 126,159 |
| Cost | not recorded (local hardware) | $2.74 |
Tool calls per attempt had a median of 148. 67 of our 112 attempts compacted at least once (at most 4 times); wall times ran from 14.7 to 180.0 minutes. Our output tokens are as the agent recorded them per turn; the public counts come from each provider and may count reasoning differently. Wall time depends on the serving hardware as much as on the model, so no speed comparison is made here.
Agent wall time per attempt
Model turns per attempt
Output tokens per attempt
Caveats and considerations
- One attempt per task. 112 graded attempts give a 95% interval of 54.2–71.7% (Wilson score interval) around 63.4%. Public configurations pool 4.0 attempts per task on average, so their scores are tighter.
- A different harness. We used the Pi coding agent with a 204,800-token window and compaction; Datacurve ran every public configuration with mini-swe-agent, whose context and compaction settings are not in the public data. Our attempts reached a median largest context of 171,923 tokens against 126,159 for the public trials. A harness can move a score on its own, so read the comparison as indicative.
- A quantized model, not the vendor's weights. 3.43 bits per weight on average, and the engine also stores its attention cache in int8. The engine computes cached experts on the GPU and the rest on the CPU, which rounds differently, so its outputs can differ slightly from a pure-GPU run.
- The vendor's 58.7% is Alibaba's reported figure for Flash-Next, repeated on model-listing sites. It is not an independent run, and its harness, attempts and benchmark version are not recorded here.
- Retries. Infrastructure errors were retried once. 3 tasks were retried: numba-stencil-boundary-modes (infrastructure error, infrastructure error); opa-template-string-reconstruction (infrastructure error, resolved); superjson-error-stack-serialization (infrastructure error, resolved).
- Task images v1.1. Our task images and Datacurve's public data are both v1.1; this page compares only against v1.1, not the earlier v1 board.
- Contamination is unknown either way. Datacurve says its tasks are written from scratch rather than adapted from existing commits; the model's training data is not public, so we cannot check for overlap.
Harness problems, and the tasks each touched
| Problem | Tasks touched [counted] |
|---|---|
| Engine crashes. The server process crashed twice on the first day (2026-10-07 14:26:09 UTC; 2026-10-07, about 14:36 UTC). The log shows the engine starting again at 2026-10-07 14:26:21 UTC, 2026-10-07 14:36:21 UTC, 2026-10-07 19:44:05 UTC (while the run was paused), and no later start through the end of the run, so no crash after the first day. | opa-template-string-reconstruction: attempt 1 lost (dropped), attempt 2 resolved; superjson-error-stack-serialization: attempt 1 lost (dropped), attempt 2 resolved. Also go-genai-streamed-function-args (5 connection errors, each recovered on retry, resolved). |
| Verifier container not at the pristine base. The fresh grading container was not at the task's clean base commit, so the attempt could not be graded. | numba-stencil-boundary-modes (both of its 2 attempts; the only task never graded). |
| No per-command timeout. A shell command could run until the 10,800 s task limit. Commands of 900 s or more, found in the task logs: | sqlite-utils-safe-import-checkpoints (10,501 s, timeout); langchain-request-coalescing (8,746 s, timeout); tengo-destructuring-bindings (1,417 s, not resolved); kysely-window-grouping-helpers (1,201 s, resolved); boa-hierarchical-evaluation-cancellation (900 s, resolved). |
The agent shell's PATH. The agent's shell could not find cargo, the Rust toolchain, in these Rust tasks (a text search of the task logs). In a few TypeScript tasks deno or tsx was missing as well; whether those tools are in the images at all is not recorded. | boa-hierarchical-evaluation-cancellation (resolved); fd-deterministic-multi-key-sorting (resolved); oxvg-structural-selector-preservation (resolved); pest-character-class-coalescing (not resolved). Missing deno/tsx: effect-sse-httpapi-streaming (not resolved); optique-conditional-option-dependencies (resolved); valibot-recursive-schema-composition (resolved). |
| Agent killed mid-command. The agent process exited with code 137 while a command ran, each time with its largest context near the agent's compaction point of 172,032 tokens; the cause is not recorded. Both were graded as they stood. | pebble-durability-wait-apis (largest context 171,806, not resolved); tengo-destructuring-bindings (largest context 172,226, not resolved). |
Reproduction
- Model:
Qwen3.8-Flash-Next-GSQ-RCO-IQ3_XXS-00001-of-00002.ggufandQwen3.8-Flash-Next-GSQ-RCO-IQ3_XXS-00002-of-00002.gguf. - Engine: Strata 0.1.40 at
82f46a8, run with--kv int8 --spec 4 --max-context 204800 --kv-resident 32768 --pcie-frac 0.20 --spec-min-p 0.70. - Harness: revision
ae9bc1e+dirtywith Pi 0.99.1; DeepSWE task repository0b9fabbb63b9104d678fe965e1632f2dd9eaa2ea. - Run ledger: 234 rows, SHA-256
647431d28916e4d287e659f801185cad5e72e9ec5d0d6bf4be42ece72c688157. - Public data (Datacurve v1.1, fetched 2026-10-09): trials.json
310cb428fe8914cff21b8edcb0b17256884efca55666bd6d6646d223c77d2ce6, tasks.jsonbae967f6472943564c3fc5232fba3c8e0ac465c1be5ccf9dd4895d4ee9df6242, difficulty.json00db63423282f56d9cbd321fedc55204e61cad4817b301d1ba6a4f9ec88c3a32. Source: deepswe.datacurve.ai. - Leaderboard page used for the method check (read 2026-10-13): SHA-256
14436c31be1e50a0b62171e4aee4dd0ae0ce66b1e390af89c7e6e095ad59f1f1. - Generator:
python3 build_page.pywritesdata.json(every figure on this page) and this page; the same inputs give the same bytes.
Not recorded
- SHA-256 of the model files and of the MTP draft file (their sizes are recorded; their hashes are not).
- The format and source file of Strata's own MTP draft layer (only its 835 MiB of VRAM is logged).
- Whether Strata's repacked expert pack holds exactly the GGUF's expert bytes.
- The server's system RAM size and the RTX 4080's total VRAM (the log names the card, not its capacity).
- The server's decode speed during the run (it keeps no per-request log the harness reads).
- The harness, attempts, settings, date and benchmark version behind the vendor's 58.7%.
- The vendor's release format for the full-precision weights.
- mini-swe-agent's context limit and compaction settings for each public configuration.
- Whether Datacurve re-ran trials that hit infrastructure errors, or only dropped them.
- Why two runs ended with the agent killed (exit 137) mid-command.
- Energy or dollar cost of our run.
- Whether any DeepSWE task appears in the model's training data.
DeepSWE is Datacurve's benchmark; the public figures are computed from its published trial data. Our run used its public v1.1 tasks unchanged.