Volver a la wiki

Degeneración por carácter del Oráculo (s109)

Síntoma

El Oráculo (synthesizeAnswer() en archivo-core.ts) ocasionalmente retorna un muro de comillas repetidas:

La """…""" Auditoria Suprema """…

Este es un segunda forma de degeneración de Gemma 4 (modelo estocástico): el modelo emite cientos de veces el carácter " seguidas. El mecanismo de rescate greedy de JSON (#96) captura esta cadena tal cual, y al decodificar \" → ", el muro persiste en la respuesta final.

Por qué la defensa anterior no lo cogía

La defensa clampRepetition() (introducida en #94) operaba a nivel de palabras (dividiendo por espacios). Un muro de comillas como """""" es un único token sin espacios, por lo que escapaba a esa detección.

Clasificación: Esta es una instancia del footgun s109 — un defecto estocástico del modelo que requiere defensa en tiempo de ejecución, no en entrenamiento.

Fix (PR #98)

Se introdujo una defensa de carácter:

  1. Regex de detección: Cualquier carácter que se repita 25+ veces seguidas es tratado como respuesta corrupta:

    if (answer && /(.)\1{24,}/.test(answer)) {
      degraded = true;
      answer = genericFallback();
    }
  2. Fallback honesto: Se devuelve un mensaje genérico amable (en el idioma detectado) indicando que la pregunta es muy amplia, en lugar de contaminación de datos.

  3. Refactor de fallback: Extraído a función genericFallback() (reutilizable en catch del parse JSON y en esta defensa).

  4. Flag degraded=true: Indica al cliente que la respuesta no debe reenviarse como history (por #97).

Validación

Cobertura de defensas contra degeneración (ahora completa)

Tipo de defectoDefensaPR
Repetición de palabrasclampRepetition()#94
JSON ininteligible + code fencesRescate greedy#96
Respuesta degradada contamina historyFlag degraded=true#97
Repetición de carácter (muros)Regex + fallback#98

Juntas forman una red defensiva multinivel contra los footguns estocásticos del modelo.


Nota de arquitectura: El handler archivo-core.ts contiene lógica crítica de sintetización del Oráculo pero aún no tiene entity_page documentada. Sería recomendable crear entity--functions--handler--archivo-core en un futuro ingest para visibilidad arquitectónica.

Véase también

Subir