CreaRack-SL

Decisión 2026-09-13 · El Oráculo sintetiza con Gemini 3.8 Flash (Gemma 4 26B degeneraba en bucles)

Decisión de Edu (13-09-2026, s325): el Oráculo del workspace deja de sintetizar con gemma-4-26b-a4b-it y pasa a gemini-3.8-flash con razonamiento bajo (thinkingLevel: low, techo 2.048 tokens). Solo el Oráculo: el Help Widget, bib_ask, el Tutor y el chat del Correo siguen en Gemma 4. Criterio de Edu: “no creo que usemos intensamente al Oráculo, prefiero un uso contenido con el máximo de calidad”.

Por qué (medido, no supuesto)

El punto A1 del briefing pedía un A/B del Oráculo con y sin la búsqueda híbrida (entrega 2 de [[decision—20260910—busqueda-texto-completo-wikis]]) porque 4 de 5 preguntas de prueba acababan en el fallback “pregunta muy amplia” a los ~22 s.

PruebaModeloÚtilesMuestraLatencia
A/B en PROD, híbridogemma-4-26b-a4b-it2 de 105 preguntas × 228,9 s mediana
A/B en PROD, solo semánticagemma-4-26b-a4b-it5 de 105 preguntas × 228,3 s mediana
Reproducción local, pregunta difícilgemma-4-26b-a4b-it0 de 20temp 1,0 / 0,7 / 0,3 · con y sin esquema JSON · texto22 s (techo)
Reproducción localgemma-4-31b-it13 de 138 preguntas9 a 11 s
Reproducción localgemini-3.1-flash-lite8 de 88 preguntas1 a 2 s
Reproducción localgemini-3.8-flash (low)8 de 88 preguntas2 a 3,5 s

“Útil” = cierra el JSON, sin bucle de repetición, más de 300 caracteres. La reproducción local usó la misma pregunta, los mismos fragmentos (bib_search_semantic top 5 en PROD), el mismo prompt (buildOraclePrompts) y la misma generationConfig que el endpoint. Gemma 4 26B empezaba bien dos frases y luego repetía target-target-target… o de de de de… hasta agotar los 1.024 tokens; los tropiezos de las respuestas “buenas” (es es, hamos, la lógica de la lógica-de-gate) son el mismo defecto en pequeño. Sin esquema JSON vuelve el scratchpad en inglés ya documentado ([[feature—biblioteca—anti-degeneracion-gemma-4]]).

Las tres conversaciones reales de Edu del mismo día lo confirmaron: las fuentes listadas eran las correctas las tres veces (el buscador híbrido acierta), y dos de las tres primeras respuestas cayeron en el fallback a los 21 y 24 s. Conclusión: el híbrido no tiene la culpa; falla la síntesis.

Coste y volumen

  • Gemma 4 (ambas variantes) es gratuito en AI Studio. gemini-3.8-flash: 0,75 $/M tokens de entrada y 3,75 $/M de salida (razonamiento incluido) hasta el 31-12-2026; el doble desde el 01-01-2027. Una pregunta del Oráculo son ~3.700 tokens de entrada y ~350 de salida → ~0,5 $ por cada 100 preguntas en 2026.
  • Volumen real (oraculo_queries): 5 preguntas en julio, 2 en agosto, 32 en septiembre (20 de ellas el A/B de esta sesión). Menos de 1 € al año.
  • gemini-3.1-flash-lite (0,25 $/1,50 $) también salió impecable y sería la elección si el Oráculo se abriera a clientes o a mucho más volumen.

Lo que toca a la Regla 8

La Regla 8 (Gemma 4 como familia única, ADR [[decision—20260401—gemini-3-flash-preview]] y la retirada de Gemini del Auto-Plan en junio) sigue vigente para el producto. Esta es una excepción explícita para una herramienta interna que solo usan los tres del equipo y solo lee las wikis: no hay datos de clientes en juego. Queda anotada en la fila 8 del CLAUDE.md del workspace y en CreaRack-Pro/.claude/rules/ai-models.md para que nadie lo “corrija”.

Cómo está hecho

  • synthesizeAnswer acepta SynthesisOptions (model, thinkingLevel, maxOutputTokens); synthesisGenerationConfig es la función pura que arma la generationConfig (test test/synthesis-config.test.ts). Los llamadores que no pasan nada siguen exactamente igual.
  • oraculo/ask.ts: oracleSynthesis(env) elige env.ORACLE_SYNTHESIS_MODEL || 'gemini-3.8-flash'; si el modelo empieza por gemini- añade thinkingLevel: low (3.8 Flash no admite minimal: HTTP 400) y sube el techo a 2.048 porque los tokens de razonamiento cuentan contra maxOutputTokens (con 1.024 devolvió 29 tokens de respuesta).
  • Marcha atrás sin deploy: ORACLE_SYNTHESIS_MODEL = "gemma-4-26b-a4b-it" en las variables de CF Pages.
  • De paso, el retrieval de un seguimiento (“para qué se utiliza”) lleva el último turno del usuario delante de la pregunta nueva (embedding, HyDE y términos exactos); antes buscaba con la pregunta suelta y las fuentes del 2º turno salían de otro tema.

Vigilancia

  • Las próximas preguntas reales al Oráculo deben salir en 2-4 s sin el fallback “muy amplia”; si reaparece, mirar oraculo_queries.duration_ms y el modelo devuelto en model.
  • El precio de Gemini se dobla el 01-01-2027: revisar en la mensual de enero si el volumen sigue siendo de decenas de preguntas.