CreaRack-SL

Incidente: Gemma 4 emite scratchpad de razonamiento en bib_ask (latencia ×16, respuesta ilegible)

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íntomaValor antes del fix
Latencia bib_ask~120 s (vs. 7-9 s con OpenRouter)
Formato de respuestaScratchpad en inglés seguido de respuesta real
Primeras líneas de la respuesta* Question: ..., * Language: ..., * Constraint: ..., * Self-Correction during drafting: ...
UsabilidadRespuesta 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ámetroAntesDespués
temperature0.51.0
topP—0.95
topK—64
maxOutputTokens40961536

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étricaAntesEsperado después
Latencia (8 chunks)~120 s25-40 s
Scratchpad en respuestaSíNo
Idioma de respuestaInglés (scratchpad) + mezclaMismo idioma que la pregunta

Lecciones aprendidas

  1. 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.
  2. Los modelos de razonamiento requieren inhibición explícita del scratchpad cuando el output crudo llega al usuario.
  3. Usar la configuración de sampling oficial del modelo: temperature=1.0 / topP=0.95 / topK=64 para Gemma 4, no parámetros heredados de modelos distintos.
  4. maxOutputTokens como 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]]