Laguna S 2.1: make the guide answer "what should I do", + @BlackwellBoy's 12h soak#1
Conversation
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.
|
Green light from me — merge it. Organizing by what a user should do instead of by Two precision points so my data doesn't get oversold:
Raw logs and harness are now live, replacing "publishing shortly": |
… 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.
|
will adjust language |
…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.
|
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:
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:
Also folded in a third data point while I was in there: an independent Strix Halo test found Changelog entry records both corrections and attributes them to you, so the walk-back is on the record rather than quietly edited. |
…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.
… 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.
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.
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
poolside_v1tool 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.max_new_tokenspost-release, so if you do not impose a ceiling, nothing does. That is the actual mechanism behind the community "it never stops" reports.What his soak adds (§5d)
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.