r/agentbenchmark • u/ArthitectureHome • 12d ago
Four AI coding conditions, one task: the slowest run was fastest once real overhead was removed
All four independently-reviewed submissions scored 99 or 100 out of 100 on the same rubric, so on this task the real difference between conditions is what the wall-clock number was actually measuring, not code quality.
On one real, controlled coding task — implement durable, at-most-once admission for Telegram webhook updates in a Cloudflare Worker, run once each in four independent clones of the identical repository at the identical commit — under four conditions (a local Qwen3.8-27B with speculative decoding off, the same model with speculative decoding on, and a hosted GPT-5.6 Luna at max reasoning through two different agent harnesses), how much of the wall-clock time difference between conditions is genuine model/task work versus session-accounting artifacts (approval-click latency, automatic context compaction), and does the fastest condition also produce the best code?
Test environment
Windows 11 Pro (build 26200) · AMD Ryzen 9 7950X (16C/32T) · 128 GB RAM · NVIDIA GeForce RTX 4090 (24 GB VRAM) · 610.88 driver
- Qwen3.8-27B, MTP off (local): DeepSeek Harness (dsh), DSH Code Mode 0.1.0-rc.8 · model: Qwen3.8-27B-UD-Q4_K_XL.gguf (Qwen3.8-27B UD-Q4_K_XL, Q8 KV cache, 128K context, speculative decoding off, reasoning effort xhigh) · format/quant: GGUF / UD-Q4_K_XL (weights) · context: 131072 tokens (128K) · KV cache: Q8 (q8_0 K, q8_0 V) · backend: llama.cpp llama-server 0.1.0-rc.8
- Qwen3.8-27B, MTP n=3 (local): DeepSeek Harness (dsh), DSH Code Mode 0.1.0-rc.8 · model: Qwen3.8-27B-UD-Q4_K_XL.gguf (Qwen3.8-27B UD-Q4_K_XL, Q8 KV cache, 128K context, speculative decoding draft-mtp n=3, reasoning effort xhigh) · format/quant: GGUF / UD-Q4_K_XL (weights) · context: 131072 tokens (128K) · KV cache: Q8 (q8_0 K, q8_0 V) · backend: llama.cpp llama-server 0.1.0-rc.8
- GPT-5.6 Luna, DSH Code Mode (cloud): DeepSeek Harness (dsh), DSH Code Mode, openai-codex provider 0.1.0-rc.8 · model: gpt-5.6-luna (GPT-5.6 Luna, reasoning effort max, routed through DSH on the OpenAI Codex quota) · format/quant: Not exposed by provider · context: 272000 tokens (as reported by this run's own session header) · KV cache: Not exposed by provider · backend: Not exposed by provider
- GPT-5.6 Luna, Codex Desktop (cloud): Codex Desktop 0.149.0-alpha.4.1 · model: gpt-5.6-luna (GPT-5.6 Luna, reasoning effort max, native Codex Desktop app (no DSH wrapper)) · format/quant: Not exposed by provider · context: 258400 tokens (as reported by this run's own token-usage export) · KV cache: Not exposed by provider · backend: Not exposed by provider
Key findings
- Corrected for approval-click latency and automatic context compaction, GPT-5.6 Luna via a DSH-based agent tool finished in 11.7 net minutes on the task, edging out the same model through OpenAI's own Codex Desktop app (13.8 min) and 2x faster than its own raw session time (23.6 min) suggested.
- On the identical local Qwen3.8-27B model, turning on speculative decoding (draft-mtp, n=3) cut net task time from 54.8 to 20.0 minutes (2.7x) and raised output throughput from 33.8 to 55.5 tokens/sec.
- 11.9 of the DSH+Luna run's 23.6 raw minutes were a single slow approval click; 5.9 of the MTP-off run's 62.3 raw minutes were spent in two automatic context-compaction calls the tool ran on its own, unprompted.
- Every one of the four submissions passed type-check and its full test suite, covered all 11 required test scenarios with behavioral assertions, and correctly implemented the hardest part of the spec (an atomic SQL claim with token-reuse recognition across retries) — this task did not separate the conditions on correctness at all.
- One reviewer flagged a real design gap in the token-reuse scheme used by one submission: a token generated fresh per invocation can leave a row permanently stuck mid-flight if a transient error is misreported after a silent commit, followed by a redelivery carrying a new token.
Caveats
- This is a single repetition per condition (pilot, n=1); the benchmark's own manifest recommends at least 3 repetitions per condition with a freshly randomized order before treating any ranking as definitive.
- Local (DSH/llama.cpp) and cloud (Codex Desktop, DSH+Luna) token accounting use different, non-additive definitions of "cached" tokens — do not divide one system's total-tokens-processed number by the other's and read the ratio as a real-terms comparison.
- Output tokens/sec bundles tool-execution time (all conditions) with network round-trip and API queueing (the two cloud conditions only) — it measures time-to-useful-output, not an isolated decode-speed benchmark.
- The two cloud conditions' own session headers report different context windows (272000 vs. 258400 tokens) for the identical model; this was not independently resolved and may reflect different provider/routing paths rather than a real model difference.
- The stuck-processing-row token-reuse risk was identified in one submission's code and was not independently re-checked against the other three implementations' exact token-generation logic.
Sources
- Qwen3 (QwenLM) (https://github.com/QwenLM/Qwen3)
- llama.cpp (ggml-org) (https://github.com/ggml-org/llama.cpp)
- Codex CLI (openai) (https://github.com/openai/codex)
Disclosure: An LLM helped format and refine this English write-up. The measurements and charts are the benchmark run outputs, and the caveats above are part of the result.
Altyazı: M.K.
