In the last three days we published two single-GB300 recipes by hand: GLM-5.3-Flash NVFP4 with DFlash2 and DeepSeek-V4-Flash-Vision-Exp at 1M context. Both followed the same loop: read what the community has found, design a short list of experiments, run them one flag at a time, gate the winner, write down every loser, publish the repo and the post with credit to the people whose work we stood on. The second time through, the loop was obviously a machine we were operating manually. This post is the design for building it.
The first design decision was noticing that "recipe generator" means two different things, and the split decides what gets open-sourced.
| Product | What it is | Who it's for | Depends on |
|---|---|---|---|
| The Forge (working name) | The tool: a bench harness with a fixed contract, a recipe template repo, an experiment-card schema, and the two-agent loop that runs them. | Anyone with a GB300 (or, later, any box) who wants to produce a recipe comparable to ours. MIT. | Nothing of ours. No private hosts, no private memory. The agent glue is documented as "how we run it," not required. |
| The Recipes | The outputs: one public repo + one post per model/engine combination, co-authored by James and Milo, with the full ledger of what lost. | People trying to run that model on that hardware today. | Our box, our fleet, our nights. |
The harness and template are the part someone else can run tomorrow. The loop is the part that makes us fast. Both get published; only the first is a dependency for anyone else.
An outer loop that thinks and an inner loop that runs. The outer loop is a frontier model (today Claude Fable 5.1, driven by Milo). The inner loop is a second Hermes agent on a cheaper, fast model (today GPT-5.6-Sol, driven by Miloh) whose only job is to execute experiment cards against the Station and hand back numbers. Between them sits the Hermes Kanban board, which is the handoff, the audit trail, and the human gate, all in one place.
Step 3 is the whole inner loop. The board is the only thing both agents touch; neither reads the other's memory. Cards go right, results go left, and nothing reaches the public without passing the amber gate.
do-not-retry.md, so the model doesn't re-propose what already lost. Then the external sources listed below. Nightly is a cheap delta (what changed since yesterday: releases, merged PRs, new checkpoints); weekly is a deep pass on the frontier model.do-not-retry.md with the reason each loser lost, and draft the recipe repo, the post, and the cartoon.rm.| Role | Who | Model | Cadence | Owns |
|---|---|---|---|---|
| Research + design | Milo | Claude Fable 5.1 (weekly deep); cheaper model for the nightly delta | Nightly delta, weekly deep | Research docs, the experiment queue, do-not-retry.md |
| Execute | Miloh (a separate Hermes profile on the same machine) | GPT-5.6-Sol | Nightly window | Results, receipts, restoring production |
| Review + draft | Milo | Claude Fable 5.1 | Morning | Ledgers, repo, post, cartoon, one new BOFH shirt line per recipe |
| Approve + publish | James | — | When ready | Everything public, and the decision to run any night at all |
Two agents on one machine, two profiles, no shared memory. The board is the seam. That's deliberate: it keeps the audit trail in one place, and it means the design doesn't depend on our particular agents. Anyone can put any two profiles in those lanes.
Twelve hours is a shift, not a sprint. It makes the slow experiments routine: the 433 GB full-size GLM-5.3 with expert offload takes about 30 minutes just to place weights before you learn anything, and every vLLM config change pays its autotune. During the window the production endpoint is down and every client that uses it (our agents, a robot, a couple of family machines) rides its configured cloud fallback. The restore step is the real risk, not the experiments: a failed restore means production is still down at breakfast. So restore is boring by design.
Conceptually, before schema:
# experiment card (concept; schema TBD)
id: 2026-09-04-03
model: org/checkpoint @ revision
engine: sglang | vllm image: sha256:…
incumbent: card id this is measured against
delta: exactly one thing (a flag, a draft model, a quant, a KV dtype)
hypothesis: one sentence, falsifiable
bench: throughput contract (see tiers) prefill ladder: yes/no
gates: [tools, needle:served_ctx, repetition:C64, agent_loop:4+]
cost_estimate: minutes (autotune-aware)
stop_if: e.g. "C8 aggregate < 0.9 × incumbent" or "any gate red"
rollback: container name to restore
A runner reads that and executes. It never gets a paragraph that says "try making it faster."
The loop is mostly testing serving configurations, not models. That changes what a benchmark is for. For a flag change, a quality benchmark is wasted time: the weights didn't move. For a quant swap, a drafter, an abliterated checkpoint, or a KV-cache dtype, quality is the whole question. So benchmarks are tiered by what the delta could have broken, and the card says which tier it needs.
| Tier | When | What | Cost |
|---|---|---|---|
| 0 · every card | Any delta | Throughput contract (catid's: ~8K in / 1024 out, temperature 0, warm C then 3×C, at C1/4/8/16/32/64), cold-prefill ladder (8K–256K, nonce at the start, max_tokens=1), tools-array smoke. | ~15 min after warmup |
| 1 · candidate to lock | Anything that beats the incumbent at Tier 0 | Needle ladder to the served context, C64 repetition audit, headless agent loop with 4+ replayed tool turns, and a greedy-equivalence check: a fixed prompt set at temperature 0, compared token-for-token against the incumbent. Speculative decoding is supposed to be lossless; this is where you find out. Batch numerics make 100% unrealistic, so the card sets a floor and we report the match rate. | ~1 h |
| 2 · before a recipe ships | Weights or KV changed (quant, abliteration, KV dtype), or a new model entirely | One real task benchmark under a fixed harness so recipes are comparable to each other: Terminal-Bench 2 core set with the same agent version we've used before, plus a tool-calling benchmark (BFCL v3) for anything meant to sit behind an agent. Same harness, same cut, same timeout regime every time, or the number goes in its own section, not the table. | ~3 h for Terminal-Bench 2 on this box; one per recipe, not per experiment |
Two rules carry over from doing this by hand. Tier 2 results only compare when cut, engine, host, and harness version all match; anything else is a separate datum. And any change that touches weights or KV has to land inside noise of the incumbent at Tier 2 or it doesn't ship, regardless of how fast it is. We don't publish speed bought with quality.
Every recipe repo and post, in its first cut, carries:
| Source | Why | Machine-readable? |
|---|---|---|
Our own ledgers + do-not-retry.md | First, always. The cheapest quality filter in the system. | Yes |
| SGLang GitHub (issues, PRs, releases) + lmsys blog | Our DFlash2 win came from a PR branch, not a release. DSpark came from the blog. | Yes |
vLLM GitHub + vllm-project/recipes | They publish GB200/GB300 cookbook cells. Several are multi-GPU flags that lose on one box, which is itself a recipe finding. | Yes |
| FlashInfer, TensorRT-LLM releases | Blackwell kernel fixes, autotune changes. | Yes |
| NVIDIA developer forums (DGX Station), DGX OS / driver release notes, technical blog | Kernel-module traps live here. So did the CDMM tip that reclaimed HBM from the kernel. | Mostly |
| Hugging Face: trusted quant uploaders, model-card discussions, new drafters | A new speculative drafter for a model we serve is an instant card. | Yes |
| X | Where the people actually doing this post first. | Yes, via search |
| r/LocalLLaMA | Noisy, early. | Yes |
| Discord (LocalInferenceLab has a GB300 channel), SGLang/vLLM Slack | Real findings, behind a login. We won't scrape it. Humans paste highlights, or findings get mirrored somewhere public. | No |
forge-runner profile with only the tools it needs is open. The role profile is the shape anyone else can reproduce.Before we build any of this we'd like to hear from people who've been optimizing on these boxes longer than we have. Specifically:
Reply on X, open an issue once the repo exists, or email. Contributors get credited in every recipe the tool produces.
bench.py, prefill.py, needle.py, repaudit.py, spec_metrics.py) into one engine-agnostic harness with the contract baked in.do-not-retry.md from the two existing recipe ledgers.This is a design note; no numbers above are new measurements. Every figure cited (autotune cost, C1 noise, the 30-minute weight placement, the encoding bug) traces to the two linked recipe posts and their repos, where it was measured. Drafted by Milo with claude-fable-5-1 (extended thinking) from a design conversation with James on September 3, 2026; the decisions are his, the diagrams are Milo's. Related: DeepSeek-V4-Flash-Vision-Exp on one GB300 · GB300 GLM 5.3 Testing · GB300 Station day one.