Qwen3.8 Flash Next: la receta que desactivó el razonamiento (a propósito)
56 tok/s estructurado en TP2, concurrencia lineal hasta ×8... y la decisión más contraintuitiva: forzar thinking=false en toda la ruta porque el razonamiento oculto se comía el presupuesto. Nuestro A/B completo.

El experimento con la decisión más discutida del laboratorio: corremos un modelo con capacidad de razonamiento desactivada deliberadamente. Esta es la historia completa, con los números que justifican la decisión.
La ficha
| Modelo | Qwen3.8-27B Flash Next, NVFP4 con lm_head BF16 |
| Runtime | SGLang (receta dual actualizada) |
| Cluster | 2× Spark, TP=2 |
| Especulación | MTP NEXTN 3/1/4 + CUDA graphs (decode) |
| Contexto | 262.144 (candidato a 1M, no activado) |
Los números medidos
| prueba | resultado |
|---|---|
| decode estructurado (mediana ×5) | 56,17 tok/s |
| decode prosa (mediana ×5) | 41,19 tok/s |
| concurrencia ×1/×2/×4/×8 | 26,1 / 46,1 / 81,5 / 109,5 tok/s agregados |
| prefill concurrente 4×32k | 8,2 tok/s agregado · TTFT peor 62,5s |
| KV quick / long | 11/11 · 20/20 NIAH |
| aceptación NEXTN | α=60,3% · 2,81 tokens/step |
| tool-eval corto | 87/100 (★★★★) |
La concurrencia casi lineal hasta ×8 es la gran noticia para multi-agente: 109,5 tok/s agregados sirviendo 8 flujos a la vez, con TTFT que se mantiene bajo medio segundo.
El bucle de exclamaciones (y la decisión)
Todo empezó con un bug inquietante: con herramientas activas, el modelo entraba en un bucle
de !!!!!! infinito o devolvía respuestas vacías. La diagnosis:
- El modelo, en modo thinking, quemaba su presupuesto generando razonamiento oculto
- Con herramientas + razonamiento, el routing interno se perdía y entraba en bucle
- El usuario solo veía: respuestas vacías o exclamaciones eternas
La solución tomada —discutida, medida y documentada—:
El gateway fuerza
enable_thinking=falseen toda la ruta de este perfil, aunque el cliente pida lo contrario. El razonamiento queda desactivado hasta que exista un perfil separado probado para herramientas.
Fue polémica interna (“¿comprar un modelo thinking para apagar el thinking?”) pero los números cerraron el debate: sin el bucle, las respuestas con herramientas pasaron de fallar a 87/100, y la latencia por token se quedó en 41-56 tok/s. Un modelo pensando bien pero respondiendo vacío pierde contra uno respondiendo bien sin pensar.
La validación agéntica completa
La rotación a este cartucho fue la primera que pasó la máquina transaccional completa del laboratorio: health, routing fail-closed, smoke de herramientas en los tres clientes, TC-60 y rollback verificado. El cartucho anterior quedó intacto como rollback de un solo comando.
Lo aprendible para tu casa
- Los modelos thinking no son siempre mejores agentes: el presupuesto de razonamiento es finito y puede comerse la respuesta
- La concurrencia importan más de lo que parece: si sirves a varios agentes/apps, el agregado ×8 manda sobre el ×1
- Los CUDA graphs solo en decode: en esta receta, activarlos para prefill daba problemas; solo decode + MTP fue la combinación estable
- Fijar la revisión de los pesos: la receta de la comunidad referenciaba el modelo “por nombre”; nosotros lo fijamos a un commit exacto para que las medidas compararan siempre lo mismo
Estado actual: probado y documentado, con rotación verificada. Hoy cede el sitio a GLM-5.3 Flash por calidad agéntica, pero sigue siendo nuestro cartucho de referencia en concurrencia multi-agente. ⚡