Skip to content

Laguna S 2.1: make the guide answer "what should I do", + @BlackwellBoy's 12h soak#1

Merged
TheTom merged 3 commits into
mainfrom
external-validation-blackwellboy
Jul 25, 2026
Merged

Laguna S 2.1: make the guide answer "what should I do", + @BlackwellBoy's 12h soak#1
TheTom merged 3 commits into
mainfrom
external-validation-blackwellboy

Conversation

@TheTom

@TheTom TheTom commented Jul 25, 2026

Copy link
Copy Markdown
Owner

Two things, and the second one reshaped the first.

@BlackwellBoy ran Laguna S 2.1 for 12 hours inside his own production agent pipeline on a different quant and a different serving stack than the held-out testing in this guide: 389 sessions, 2,947 turns, thinking enabled throughout, revision pinned, one DGX Spark, hard output-token cap. Independently, he landed on the same operating manual this guide had converged on. That is worth more than either of us saying it alone.

Reading his writeup next to ours made it obvious that this guide was organized by provenance (who measured what) instead of by what a user should actually do. So this PR fixes that too.

For users: what changed

  • New Quickstart: the four things. Thinking off · native poolside_v1 tool format · integrity clause in the system prompt · pin the revision and set your own max-token ceiling. One table at the top, with links to the evidence for each. Two testers, two stacks, same four.
  • The cheat sheet was missing two of the four. It never told you to pin a revision or set a token cap. The cap matters: the vendor dropped max_new_tokens post-release, so if you do not impose a ceiling, nothing does. That is the actual mechanism behind the community "it never stops" reports.
  • Throughput and timeout planning added. Expect ~20 tok/s and ~10-25s per agent turn on a single Spark. Included as a warning because we wasted a run on it: a 20-minute-per-iteration cap on a heavyweight generic harness produced zero files written. Harness-sizing failure, not a model failure, and an easy trap for anyone self-hosting.
  • Two practical prompting levers added. (1) A named professional persona is a second thinking-off switch when your harness does not expose the toggle. (2) Give explicit acceptance criteria, not a vibe — it builds to whatever it can check, so "World 1-1" got four platforms and one Goomba. Highest-leverage prompting change for this model.
  • Verdict rewritten as configured-right vs configured-wrong, because that is the honest shape of this model.

What his soak adds (§5d)

  • It is stable enough to leave running: 2,944/2,947 turns (99.9%), zero crashes, zero restarts, ~4 GiB memory creep over 12h, ~13.5s/turn. This is the strongest evidence available that configured correctly it is a production-grade agent driver on one box, and it is data the held-out testing could not produce.
  • Native tool format is near-perfect at scale: 100% tool-call success over ~11.5h, which extends our small-sample 83%-native-vs-0%-generic. Combined: the format choice is the difference between flawless and non-functional. No middle.
  • Pin + cap kills the runaway loops: zero in 12h.
  • The §5b integrity clause replicated cross-quant: 3 disguised cover-up requests, all 3 refused with reasoning, on a different quant and serving setup. Cross-quant replication was the gap §5b explicitly named, so this is now the best-evidenced recommendation in the guide.

The bit I find most interesting

His pipeline saw thinking fire on 3 of 2,944 turns (~0.1%). Ours saw 5-18% under a bare "helpful assistant" persona. Not a contradiction: our persona×task gate predicts his number, because a real agent pipeline carries both suppressors at once (a named professional identity and coding-shaped tasks). Lab mechanism predicts production behavior; production confirms the mechanism. Practical upshot for users: if you run a normal agent system prompt you are already getting almost no thinking, so turning it off explicitly costs nothing and removes the tail risk.

Attribution

Only his own measurements are counted as independent replication. His writeup also covers the thinking-hurts dose-response and the provenance caves, but those cite the testing in this guide rather than re-measuring them, so they are not double-counted here.

@Blackwellboy thank you for the soak, genuinely useful work and hard to come by. Corrections welcome: if any number or framing here misstates your run, say so and I will fix it. Happy to add your GitHub handle for a real mention, and happy to link your thread directly if you want it cited.

TheTom added 2 commits July 25, 2026 08:33
Independent second source from a different quant + serving setup: 12h / 389
sessions / 2,947 turns, revision 0761412, thinking enabled, hard token cap.
Corroborates thinking-barely-fires (3/2944), native tool format 100% at scale,
config-drift + cap fix; cross-quant replication of the §5b integrity clause
(3/3 disguised cover-ups refused); soak reliability 99.9% / 0 crashes.
Cited as a distinct second source, not merged into our measurements.
…soak

Reframed for users instead of by-provenance:
- NEW Quickstart: the four things (thinking off, native tool format, integrity
  clause, pin revision + set your own token cap). Two independent testers on
  different stacks arrived at the same four.
- Cheat sheet gains the two items it was missing: version-pin + token ceiling,
  and per-turn time budget (~10-25s on one Spark).
- §5 gains the max-token ceiling (vendor dropped the cap post-release, so if you
  don't set one nothing does) + throughput/timeout planning, incl. our own
  harness-sizing failure (a 20min cap on a generic harness wrote zero files).
- §3 gains two practical levers: persona as a second thinking-off switch, and
  'give explicit acceptance criteria' (it builds to what it can check).
- §5d rewritten user-first: production stability up front (99.9% turn success,
  0 crashes, ~4GiB creep, ~13.5s/turn over 12h), native tool format 100% at
  scale, pin+cap kills runaway loops, and cross-quant replication of the §5b
  integrity clause (3/3 disguised cover-ups refused).
- Synthesis: his ~0.1% thinking-fire rate is PREDICTED by our persona x task
  gate (real pipelines carry both suppressors), so lab mechanism and production
  behavior explain each other.
- Verdict rewritten as configured-right vs configured-wrong.
- Attribution kept precise: only his own measurements counted as independent
  replication; the parts of his writeup that cite our results are not.
@TheTom TheTom changed the title Laguna S 2.1: external validation (@BlackwellBoy's 12h production soak) Laguna S 2.1: make the guide answer "what should I do", + @BlackwellBoy's 12h soak Jul 25, 2026
@Blackwellboy

Copy link
Copy Markdown
Contributor

Green light from me — merge it. Organizing by what a user should do instead of by
who measured what is the right call, and §5d represents the soak accurately.

Two precision points so my data doesn't get oversold:

  1. The ~0.1% thinking routing rate is an observed routing number, not a proven
    router property.
    The API returned empty reasoning fields even when
    thinking was explicitly requested, so on this rev part of that rate may be
    template/parser-level rather than the model declining to think. I'd phrase it
    as "the gate observably almost never opens on this rev and serving path."

  2. "Zero loops" is scoped: zero unbounded-generation loops while the thinking
    gate barely opened.
    The 9 incidents in my logs were all my own driver's
    session-token cap firing by design. It is not evidence about thinking-heavy
    workloads.

Raw logs and harness are now live, replacing "publishing shortly":
https://github.com/Blackwellboy/laguna-s21-lab — per-turn logs (3,099 turns),
incident log, integrity probes, the 20-cell sweep with every losing cell,
container recipe with pinned digests, and the bench harness.

… verdict

Card now carries the 4th operating dial (pin revision + set your own token
ceiling) and an external-validation band with @Blackwellboy's soak numbers
(99.9% turn success, 0 crashes, 100% native tool calls, 0 runaway loops with
pin+cap, integrity clause 3/3 cross-quant). Verdict reframed as
configured-right vs configured-wrong. PNG re-rendered.
@TheTom
TheTom merged commit 52cc786 into main Jul 25, 2026
@TheTom
TheTom deleted the external-validation-blackwellboy branch July 25, 2026 14:39
@TheTom

TheTom commented Jul 25, 2026

Copy link
Copy Markdown
Owner Author

will adjust language

TheTom added a commit that referenced this pull request Jul 25, 2026
…ttention finding

Two corrections from his review of PR #1, both of which narrow claims I made:

1. His ~0.1% thinking rate is an OBSERVED routing rate on that rev/serving path,
   not evidence the model declined to think: empty reasoning fields came back
   even when thinking was requested, so part of it may be template/parser-level.
   I had claimed his number confirmed our persona-gate mechanism. That was
   overreach. Now the two datasets are kept separate, with what each actually
   supports stated, plus the note that the practical advice is unchanged either way.
2. 'Zero loops' scoped to zero UNBOUNDED-GENERATION loops while the gate barely
   opened; his 9 logged incidents were his own driver's session cap firing by
   design. Not evidence about thinking-heavy workloads.

Also: recorded his stack precisely (NVFP4 on vLLM vs our Q4_K_M on llama.cpp,
so the cross-stack replication is stronger than first stated), linked his now
published raw logs/harness, and added a serving finding from an independent
Strix Halo test: -fa on is worth up to 2.2x decode at 56K depth, and every
throughput number in this guide is a flash-attention-ON number.
@TheTom

TheTom commented Jul 25, 2026

Copy link
Copy Markdown
Owner Author

Both corrections applied, thank you, they were right and one of them was me overreaching.

1. The ~0.1% routing rate. You're correct and I had the causality backwards. I wrote that your number "confirmed" our persona×task gate, which oversold your data to support my mechanism, exactly the config-artifact mistake I try to hold myself to elsewhere. Now split apart in §5d:

  • Ours supports a model-behavior claim, and only because we checked the mechanism separately: the template hands it an opened <think> every time (verified byte-identical via /apply-template) and it still emits nothing under a named persona.
  • Yours supports the operational claim, in your phrasing: the gate observably almost never opens on this rev and serving path. With your note that empty reasoning came back even when thinking was requested, so part of it may be template/parser-level.
  • Practical advice is unchanged either way, which is why it's still worth acting on. Just no longer cited as proof of why.

2. "Zero loops" scoped. Now reads: zero unbounded-generation loops while the gate barely opened, your 9 incidents were your own driver's session cap firing by design, and explicitly not evidence about thinking-heavy workloads. The takeaway is "cap your own tokens and you won't get unbounded generation," not "pin+cap makes thinking safe."

Two other things came out of your comment:

  • Your stack is now stated precisely: NVFP4 on vLLM vs our Q4_K_M on llama.cpp. That makes the cross-stack replication of the integrity clause stronger than I first wrote it, different quant and different engine, so I fixed that too.
  • Linked your lab as the source of record: https://github.com/Blackwellboy/laguna-s21-lab. Publishing the losing sweep cells and the incident log is the part I respect most; it's what let you catch my overreach in the first place.

Also folded in a third data point while I was in there: an independent Strix Halo test found -fa on is worth up to 2.2x decode at 56K depth (9.33 to 20.73 tok/s). Our runs had it on from the start, so I've flagged that every throughput number in the guide is a flash-attention-ON number.

Changelog entry records both corrections and attributes them to you, so the walk-back is on the record rather than quietly edited.

TheTom added a commit that referenced this pull request Jul 25, 2026
…fication block (#4)

Follow-through on offlabel#2. The §5e/§2 corrections already landed on main; this
is the part that was still missing for a reader.

Correcting enable_thinking left our TOP recommendation ('thinking OFF') without a
usable instruction, since the setting people reach for is a no-op. Added a ranked
'how to actually minimize thinking': never send true, use a named persona (the
best-evidenced lever, 3 stacks), expect attenuation not elimination in long loops,
cap your own tokens as backstop. With the honest caveat that whether this stops
reasoning or only stops it being parsed is unresolved and stack-dependent.

Added 'Verify your setup (worth 5 minutes)': four checks for the silent traps
(tool calls actually parse, -fa on, what YOUR stack does with reasoning_content,
revision pinned + capped). The reasoning_content check exists specifically because
all three known stacks differ, so readers should measure their own rather than
trust any published rate including ours.

Quickstart now says three stacks, not two. Card synced to match (thinking row and
serving row were stating things the guide no longer claims) and PNG re-rendered.
TheTom added a commit that referenced this pull request Jul 26, 2026
… failure modes

Biggest content revision since publication, from three independent stacks.

REGIME SPLIT (@apollo-mg, HumanEval+ n=492): thinking ON wins single-turn
codegen (+2.64 pts, flakiness halves) while OFF wins behavioral/integrity and
long-agentic. Our blanket 'thinking off' was costing readers ~2.6 pts and 2x
flakiness on codegen and we never measured it. Quickstart #1 now splits by
regime instead of asserting one answer.

GATE IS A CURVE, NOT A SWITCH (@Blackwellboy): his soak sent enable_thinking
true on all 3,099 turns, so it was a FIRES arm, and an unnamed protocol prompt
suppressed as hard as a named persona (0.13% vs 0.06%). The apparatus
suppresses, not the persona name. Bare ~50% -> +persona halves -> +rules/tools
~0.1%. 'A real pipeline sees near-zero thinking' is a position on that curve,
not a fact about pipelines.

OPEN QUESTION CLOSED: our OFF arm's 0% means did-not-reason by construction,
since false pre-closes </think>. Firing rates keep the firing-rate label.

NEW FAILURE MODES: truncated reasoning turn silently kills agent loops (400,
deterministic, killed 5/14 runs, candidate mechanism for our turn-11 hang);
cap-hits are degeneration loops that more budget cannot fix, which indicts our
own retry-to-16k/64k arms; measured gfx1151 serving config incl. DFlash being
2.1x SLOWER on synthetic workloads.

§4 SHARPENED: the requirement is the native template server-side (--jinja), not
the client format. A generic OpenAI client merged four real PRs, so framing it
as 'use pool' was too narrow and excluded users unnecessarily.
TheTom added a commit that referenced this pull request Jul 26, 2026
I merged a fourth stack's findings straight to main without review. Backing that
out: it is the weakest-sourced item in the set (relayed via screenshot, no
published raw data, unlike BlackwellBoy's lab repo and Defilan's harness) and it
CONTESTS this guide's headline recommendation, which is exactly the kind of claim
that should be reviewed and independently tested before it lands.

Removed from main pending #8: the regime-split thinking claim (+2.6 pts on
single-turn codegen), the ~12k budget / cap-hits-are-degeneration-loops guidance,
the related blind-spot chip, and the fourth-stack credit. Quickstart #1 and #4
and the card thinking row revert to the reviewed (#7) wording, with a pointer to
the open PR.

Retained on main, because they came from contributors with published data who are
also the reviewers: the dose-curve reframe of the firing gate, the closed open
question, the truncated-think failure mode, and the gfx1151 serving config.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants