Incidente: Gemma 4 scratchpad leak en bib_ask
Estado: Resuelto en el mismo commit que lo documenta. Detectado: 2026-05-07 · Resuelto: 2026-05-07T10:37:08Z Commit de fix:
59b7818
Resumen ejecutivo
Tras la migración de la síntesis de bib_ask a Google AI Studio paid tier (commit 63fb815), el modelo Gemma 4 26B-A4B-IT comenzó a emitir su bloque interno de razonamiento (scratchpad) al inicio de cada respuesta. El bloque —en inglés— precedía a la respuesta real y la hacía ilegible. La latencia se disparó de ~8 s a ~120 s.
Síntomas observados
| Síntoma | Valor antes del fix |
|---|---|
Latencia bib_ask | ~120 s (vs. 7-9 s con OpenRouter) |
| Formato de respuesta | Scratchpad en inglés seguido de respuesta real |
| Primeras líneas de la respuesta | * Question: ..., * Language: ..., * Constraint: ..., * Self-Correction during drafting: ... |
| Usabilidad | Respuesta ilegible para el usuario final |
Reportado por: Edu (uso directo de la herramienta MCP en el workspace).
Causa raíz
1. Cambio de proveedor sin ajuste del prompt
El commit 63fb815 migró la llamada a /synthesizeAnswer desde OpenRouter (con sort:latency) a la API directa de Google AI Studio. OpenRouter filtraba el scratchpad de razonamiento antes de devolver la respuesta; Google AI Studio devuelve el output crudo del modelo.
Gemma 4 26B-A4B-IT es un modelo de razonamiento que, por diseño, genera un bloque de reflexión interna antes de la respuesta final. El prompt original (en inglés, sin instrucciones anti-scratchpad) no inhibía este comportamiento.
2. Configuración de sampling incorrecta
El prompt original usaba temperature: 0.5, adecuado para Gemini Flash (s48), pero no es la configuración oficial de Google para Gemma 4. Los parámetros incorrectos pueden exacerbar la verbosidad del modelo.
3. maxOutputTokens: 4096 excesivo
Con 4096 tokens de presupuesto, el modelo tenía margen para emitir ~2000 tokens de scratchpad más la respuesta real, inflando la latencia sin beneficio para el usuario.
Fix aplicado (archivo-core.ts, función synthesizeAnswer)
1. Prompt reescrito en español con 5 reglas anti-scratchpad
REGLAS DE RESPUESTA (obligatorio):
1. Responde DIRECTAMENTE con la respuesta final. Empieza con texto útil al usuario, no con meta-comentarios.
2. NO muestres tu razonamiento. NO escribas "Question:", "Language:", "Constraint:", "Self-Correction"
ni listas de reflexión interna. NO repitas la pregunta antes de responder. NO emitas un esquema
o plan previo a la respuesta.
3. Responde en el MISMO IDIOMA de la pregunta.
4. Apóyate SOLO en los fragmentos de documentación entregados. Cita fuentes con [1], [2], etc.
5. Sé claro y útil: párrafos cortos, listas o tablas cuando ayuden.
2. Sampling oficial Gemma 4 (igual que Auto-Plan en CreaRack-Pro)
| Parámetro | Antes | Después |
|---|---|---|
temperature | 0.5 | 1.0 |
topP | — | 0.95 |
topK | — | 64 |
maxOutputTokens | 4096 | 1536 |
Fuente de referencia: blueprints/services/google_genai_driver.py en CreaRack-Pro (Auto-Plan).
3. Reducción de maxOutputTokens
De 4096 → 1536. Con la regla anti-scratchpad el modelo ya no necesita ese buffer, y el límite más ajustado reduce la latencia máxima posible.
Resultado esperado post-fix
| Métrica | Antes | Esperado después |
|---|---|---|
| Latencia (8 chunks) | ~120 s | 25-40 s |
| Scratchpad en respuesta | Sí | No |
| Idioma de respuesta | Inglés (scratchpad) + mezcla | Mismo idioma que la pregunta |
Lecciones aprendidas
- Al cambiar de proveedor de LLM, revisar el prompt: los filtros implícitos de intermediarios (OpenRouter) no se transfieren a llamadas directas a la API del modelo.
- Los modelos de razonamiento requieren inhibición explícita del scratchpad cuando el output crudo llega al usuario.
- Usar la configuración de sampling oficial del modelo:
temperature=1.0 / topP=0.95 / topK=64para Gemma 4, no parámetros heredados de modelos distintos. maxOutputTokenscomo palanca de latencia: reducir el presupuesto de tokens es una forma barata de acotar la latencia máxima en calls síncronas.
Véase también
- [[feature—biblioteca—bib-ask]]
- [[entity—biblioteca—handler—archivo-core]]
- [[decision—20260507—google-ai-studio-paid-tier]]