Todos los posts
Tooling de IACalidad de código

Por qué las herramientas de IA alucinan — y cómo reducirlo

Por RaussOn3 min de lectura

Le pides a un asistente de IA que agregue una feature y a veces llama a una función que no existe, importa desde una ruta que nunca estuvo ahí, o escribe lógica que se ve bien y está silenciosamente mal. Eso es una alucinación — y es la razón número uno por la que los equipos desconfían del código generado por IA.

La buena noticia: las alucinaciones no son ruido aleatorio. Siguen patrones, lo que significa que puedes contrarrestarlas por diseño. El modelo no miente; cuando se topa con un vacío en lo que sabe, lo rellena con el token más plausible — no con el correcto. Reduce los vacíos y reduces las alucinaciones.

Por qué pasa

Tres causas cubren la mayoría de los casos:

  • Falta de contexto. El modelo no ve tu código privado, así que adivina tus APIs y convenciones.
  • Ambigüedad. Un prompt vago tiene muchas terminaciones plausibles; el modelo elige una, con confianza.
  • Sobrecarga. Mete demasiado en la ventana de contexto y los detalles relevantes se pierden en el ruido.

Dale los hechos que le faltan

El arreglo de mayor apalancamiento es el grounding: pon la información real frente al modelo en vez de hacerlo adivinar. Pega la interfaz real, la definición de tipos, el archivo relevante — no una descripción. Si tus herramientas lo soportan, un archivo de contexto de proyecto (CLAUDE.md, AGENTS.md, reglas de editor) y un esquema o diccionario de datos mantienen esos hechos disponibles en cada pedido.

Restringe la superficie

Una tarea acotada alucina menos que una amplia.

  • Pide un diff pequeño, no una feature entera de una sola vez.
  • Dale los archivos exactos que debe tocar, para que no invente vecinos.
  • Entrégale los tipos y firmas a completar, para que no se los invente.

El tipado fuerte es tu aliado: una firma de TypeScript o un schema de Zod convierte "inventar un argumento" en un error de compilación.

Arma un ciclo de verificación

Asume que el primer borrador puede estar mal, y haz que estarlo sea barato de detectar:

  1. Tipos y lint rechazan símbolos inventados antes de siquiera correr el código.
  2. Tests — pídele al asistente que también los escriba, y luego léelos tú.
  3. La revisión humana sigue siendo obligatoria. La IA es rápida produciendo código y mala sabiendo cuándo está confiadamente equivocada; ese criterio sigue siendo tuyo.

Mantén el contexto ajustado

Más contexto no siempre es mejor. Un prompt enfocado con los tres archivos que importan le gana a un volcado gigante de todo el repo, donde la señal se entierra. Dale al modelo lo relevante para esta tarea y nada más.

Las alucinaciones caen fuerte cuando la herramienta tiene los hechos que necesita, una tarea lo bastante acotada para acertar, y un ciclo que atrapa los fallos. Nada de eso requiere un modelo mejor — solo una mejor configuración alrededor.

Trata el output de la IA como tratarías a un colaborador rápido y capaz que es nuevo en el código: dale contexto, mantén las tareas acotadas, y revisa el trabajo. Haz eso y "la IA alucina" deja de ser una razón para no usarla.