Field report: DiffusionGemma 26B as a full Claude Code agent on a single RTX 5090 (WSL2) — what worked, and the guardrails for the accuracy problem

#21
by Markbdean - opened

I'm a retired builder/hacker in the UK who tinkers with agentic systems for fun, not notoriety — but a few things I hit running DiffusionGemma as a real agent might save people an evening, so here's a brain-dump. Happy to be wrong on any of it.

Setup: DiffusionGemma 26B-A4B (NVFP4) on vLLM, wired up as a full Claude Code agentANTHROPIC_BASE_URL pointed straight at vLLM's native /v1/messages endpoint, no shim, --enable-auto-tool-choice --tool-call-parser gemma4. Consumer RTX 5090 32GB, WSL2 on Windows 11. It runs my actual home-automation lanes — email/calendar, a hybrid RAG knowledge base, web research, browser automation, task registers — ~11 genuine multi-step tool scenarios, all passing, typically 10–20s end-to-end.

A few things I learned that might be useful:

  • Prompt size dominates diffusion latency far more than I expected (coming from autoregressive models). Trimming the client system prompt from ~24.5k to ~2.6k tokens — a custom agent definition with 5 tools instead of the stock ~27 — took one email task from ~5 min to ~10s. If you're wiring an agent client to this model: trim the tool schemas first, tune the sampler second.
  • Aggressive sampler tuning backfired — pushing the entropy bound / denoising steps made answers worse and slower end-to-end (worse answers mean more agent steps).
  • The accuracy problem is real, and the fix is architecture, not the model. It's fast but it hallucinates names/commands more than an AR model — risky to let it run bash autonomously. What works for me: a deterministic "fact-critical wall" (the tool does the action/read; the model only phrases the result) plus a cascade — the local model handles the volume and self-escalates to a frontier model for the hard calls. That turns "4× faster but error-prone" into something you can actually trust in the loop.
  • Restart anatomy on a warm 5090: weights 30s, torch.compile 5s (AOT cache hit — nice), flashinfer autotune ~82s (re-runs every start), warmup/CUDA-graph ~75s → ~3m40s to serving.

Not selling anything — just closing the loop with real-workload data, and honestly hoping to find anyone else doing training (LoRA / diffu-GRPO) or agentic-harness work on this thing, because that side seems wide open. If that's you, say hi.

(Written up with my AI sidekick, but every number above is from my own rig.)

Sign up or log in to comment