← Últimos artículos
🤖 AI

Specification and Detection of LLM Code Smells

Este artículo introduce el concepto de "code smells" en LLM mediante la formalización de cinco prácticas de codificación problemáticas recurrentes para la inferencia de LLM, extiende la herramienta SpecDetect4AI para detectarlas y demuestra, a través de un estudio de 200 sistemas de código abierto, que estos "smells" afectan a más del 60% de dichos sistemas con una alta precisión de detección.

Autores originales: Brahim Mahmoudi, Zacharie Chenail-Larcher, Naouel Moha, Quentin Stiévenart, Florent Avellaneda

Publicado 2026-07-10
📖 6 min de lectura🧠 Análisis profundo

Autores originales: Brahim Mahmoudi, Zacharie Chenail-Larcher, Naouel Moha, Quentin Stiévenart, Florent Avellaneda

Artículo original bajo licencia CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta es una explicación generada por IA del artículo a continuación. No ha sido escrita ni avalada por los autores. Para mayor precisión técnica, consulte el artículo original. Leer descargo de responsabilidad completo

Imagina que acabas de construir un asistente robot súper inteligente (un Modelo de Lenguaje Grande, o LLM) y lo has invitado a vivir dentro de tu software. Es como contratar a un mago genio para que te ayude a lanzar hechizos en tu código. Pero aquí está el truco: si no le das reglas claras, una mano firme y un mapa, las cosas pueden volverse caóticas. El robot podría confundirse, quedarse sin magia o empezar a gritar disparates.

Este artículo es como la guía de un detective para detectar los "malos hábitos" que los desarrolladores adquieren accidentalmente cuando invitan a estos magos a su código. Los autores, Brahim, Zacharie, Naouel, Quentin y Florent, se dieron cuenta de que, aunque todo el mundo sabe escribir código, nadie había redactado una lista formal de los "malos olores" específicos (esos sutiles malos hábitos que no causan un error inmediato, pero que enferman al software más tarde) que ocurren específicamente al usar LLMs.

Los cinco "malos hábitos" (los malos olores)

El equipo investigó en artículos de investigación, blogs tecnológicos y código del mundo real para encontrar cinco problemas recurrentes. Piensa en esto como las "5 formas principales de arruinar el trabajo de tu mago":

  1. El olor de "Presupuesto Infinito" (Métricas Máximas no Limitadas): Imagina decirle a tu mago: "Ve a escribir una historia, pero no te detengas hasta que te quedes sin papel o tiempo". En el mundo real, las API tienen límites. Si no estableces un límite en cuántas palabras (tokens) puede escupir el mago, o cuánto tiempo puede pensar (tiempos de espera), podrías obtener una historia a medio terminar o, peor aún, tu computadora podría quedarse esperando eternamente mientras pagas una fortuna. ¿La solución? Siempre establece un tope estricto para la longitud y el tiempo.
  2. El olor de "Objetivo Móvil" (Sin Fijación de la Versión del Modelo): Imagina que tu mago se llama "GPT-4". Pero, ¿qué pasa si la empresa detrás del mago cambia secretamente el cerebro dentro del cuerpo de "GPT-4" mañana? Si no fijas tu código a una versión específica (como "GPT-4 del 20 de noviembre de 2024"), tu software podría funcionar hoy y actuar de forma totalmente extraña mañana porque el mago cambió. ¿La solución? Bloquea al mago a una versión específica e inalterable.
  3. El olor de "Sin Jefe" (Sin Mensaje de Sistema): Imagina enviar a tu mago a una habitación sin decirle quién es o cuáles son las reglas. Podría actuar como un comediante cuando querías un profesor, o como un poeta cuando querías un programador. Sin un "Mensaje de Sistema" para establecer el tono y el rol, los resultados son impredecibles y difíciles de controlar. ¿La solución? Siempre dale al mago una descripción de puesto clara antes de que empiece a trabajar.
  4. El olor de "Escritorio Desordenado" (Sin Salida Estructurada): Imagina pedirle a tu mago una lista de ingredientes, pero te entrega un párrafo de texto divagante en lugar de una lista ordenada. Si tu software espera una lista ordenada (como JSON) para hacer su trabajo, fallará al intentar leer el desastre. ¿La solución? Obliga al mago a escribir en un formato estricto, como una lista de verificación, para que tu software pueda leerlo fácilmente.
  5. El olor de "Montaña Rusa" (Temperatura no Establecida Explícitamente): Imagina el "dial de creatividad" de tu mago. Si no lo configuras, el mago podría ser súper serio un día y totalmente caótico al siguiente, dependiendo de cuál sea el ajuste predeterminado. Esto hace que tu software sea poco confiable porque la misma pregunta obtiene una respuesta diferente cada vez. ¿La solución? Gira siempre el dial a un número específico para que el mago se comporte de la misma manera cada vez.

Lo que encontraron (La evidencia)

Para ver qué tan comunes son estos malos hábitos, el equipo construyó una herramienta especial llamada SpecDetect4LLM. Piensa en ella como un corrector ortográfico que solo busca estos cinco errores específicos relacionados con el mago. Ejecutaron esta herramienta en 200 diferentes proyectos de software de código abierto que utilizan LLMs.

Aquí está la gran revelación: 60.50% de esos 200 proyectos tenían al menos uno de estos malos hábitos. ¡Eso es más de la mitad!

La herramienta fue bastante buena detectando los problemas reales, con una precisión del 86.06%. Esto significa que cuando la herramienta decía: "Oye, tienes un mal hábito aquí", tenía razón 86 de cada 100 veces.

También desglosaron la frecuencia con la que aparecía cada "olor":

  • Sin Salida Estructurada (NSO): El más común, presente en el 40.50% de los sistemas.
  • Métricas Máximas no Limitadas (UMM): Presente en el 38.00% de los sistemas.
  • Sin Fijación de la Versión del Modelo (NMVP): Presente en el 36.00% de los sistemas.
  • Temperatura del LLM no Establecida Explícitamente (TNES): Presente en el 36.50% de los sistemas.
  • Sin Mensaje de Sistema (NSM): Presente en el 34.50% de los sistemas.

Lo que no saben (Los límites)

Es importante notar lo que este artículo no hizo. Los autores no intentaron contar cuántos malos hábitos pasaron por alto (no midieron la "exhaustividad" o recall). Solo verificaron qué tan precisa era su herramienta cuando encontraba algo. Además, su herramienta analiza el código sobre el papel (análisis estático), por lo que no puede ver qué sucede cuando el código se está ejecutando realmente y hablando con el mago en tiempo real. Sugieren que trabajos futuros podrían observar esos efectos en ejecución, pero por ahora, solo midieron el código tal como reside en los archivos.

La conclusión

El punto principal no es que estos sistemas estén rotos sin remedio. Es que los desarrolladores a menudo tratan estas poderosas herramientas de IA como cajas mágicas sin leer el manual de instrucciones. Al definir estos cinco "malos olores" y construir una herramienta para encontrarlos, los autores están entregando a los desarrolladores una lista de verificación para que su software integrado con IA sea más confiable, más barato de ejecutar y más fácil de reparar después. No están diciendo que hayan resuelto todo el problema de la seguridad de la IA, pero definitivamente han encontrado los primeros cinco baches en el camino y han colocado señales para que todos los demás puedan evitarlos.

¿Ahogado en artículos de tu campo?

Recibe resúmenes diarios de los artículos más novedosos que coincidan con tus palabras clave de investigación — con resúmenes técnicos, en tu idioma.

Probar Digest →