Marcio Cunha

¿IA inestable? Cómo usar DSPy para estruturar prompts

Descubra cómo reemplazar la ingeniería de prompts artesanal por programación declarativa con DSPy, garantizando estabilidad y precisión en modelos de lenguaje.

Marcio Cunha•4 min
También disponible en:PortuguêsEnglish
Resumen
  • La ingeniería de prompts artesanal falla al cambiar de modelo debido a su dependencia del texto libre y la prueba y error.
  • La programación declarativa separa la intención del negocio de los detalles de formato exigidos por cada LLM.
  • DSPy trata los prompts como módulos compilados y optimizados de forma automática a través de código.
  • La definición de firmas claras reemplaza el texto ambiguo por contratos de entrada y salida bien tipados.
  • El ecosistema de optimizadores internos ajusta ejemplos e instrucciones basándose en métricas reales de validación.

Por qué la ingeniería de prompts artesanal llegó a su límite

Quien haya intentado construir un sistema corporativo utilizando inteligencia artificial generativa ha experimentado rápidamente la frustración de ajustar textos manualmente. Cambiar una sola palabra en un prompt gigantesco puede hacer que el modelo olvide reglas importantes, arruine el formato del resultado o invente información de la nada. Esto ocurre porque tratamos a los modelos de lenguaje como si fueran humanos sensibles a la poesía, cuando en realidad requieren ingeniería de software predecible. Para comprender los riesgos de esta inestabilidad, vale la pena revisar las técnicas discutidas en cómo crear guardrails con validación estricta para contener comportamientos indeseados.

Qué significa la programación declarativa en inteligencia artificial

La programación declarativa es un concepto en el que le dices a la computadora qué quieres lograr, en lugar de dictar paso a paso cómo debe realizar cada tarea. En el contexto de los modelos de lenguaje, esto significa dejar de escribir textos largos llenos de instrucciones complejas y comenzar a definir firmas limpias, como entradas, salidas y tipos de datos esperados. En lugar de cruzar los dedos para que la inteligencia entienda tu formato, entregas una estructura de datos rígida. Esto aporta al universo de la IA la misma tranquilidad que obtenemos al utilizar tipado estático en lenguajes como TypeScript o Go.

Cómo DSPy convierte los prompts en código reutilizable

Creado en la Universidad de Stanford, DSPy es un framework que elimina el trabajo manual de crear y ajustar textos para modelos de lenguaje. Convierte tus prompts en módulos de código que se pueden encadenar, probar y optimizar de manera automatizada. En la práctica, defines una firma informando lo que entra y lo que sale, y el framework se encarga de armar el texto ideal para cualquier modelo que decidas usar. Si necesitas migrar de un modelo costoso a un modelo local más pequeño, por ejemplo, tu código sigue funcionando a la perfección sin que tengas que reescribir cientos de frases de instrucciones.

Implementando una firma declarativa en la práctica

Para ver esta lógica en funcionamiento, imagina que necesitamos extraer el sentimiento y entidades clave de mensajes de clientes de forma completamente estructurada. En lugar de crear un texto gigante explicando la tarea, definimos un bloque declarativo simple utilizando Python. El siguiente código muestra cómo estructurar esta tarea usando DSPy, asegurando que el resultado retorne exactamente en el formato esperado por tu sistema backend.

import dspy

class ExtraerAnalisisCliente(dspy.Signature):
    """Analiza el texto del cliente y extrae el sentimiento y puntos clave."""
    texto_cliente = dspy.InputField(desc='Mensaje de soporte recibido')
    sentimiento = dspy.OutputField(desc='Positivo, Neutro o Negativo')
    puntos_clave = dspy.OutputField(desc='Lista resumida de problemas mencionados')

analizador = dspy.Predict(ExtraerAnalisisCliente)
resultado = analisador(texto_cliente='El sistema falló durante el pago y perdí tiempo valioso.')
print(resultado.sentimiento, resultado.puntos_clave)

El papel de los compiladores y optimizadores automáticos

Una de las mayores ventajas de adoptar este enfoque basado en código es la capacidad de optimizar el comportamiento del sistema de forma matemática. Al igual que un compilador de lenguaje de programación optimiza el código de máquina para que se ejecute más rápido, DSPy cuenta con optimizadores que ajustan los ejemplos proporcionados al modelo. Prueba diferentes variaciones de instrucciones y selecciona automáticamente qué ejemplos generan las respuestas más precisas para tu base de datos real. Para garantizar que esta evolución sea segura, el proceso se puede integrar en rutinas de prueba continua, similar a los conceptos en cómo crear evaluaciones con Ragas para medir la confiabilidad de las respuestas.

Ventajas operativas de abandonar el texto libre

Adoptar la programación declarativa en lugar de la ingeniería artesanal aporta claras ventajas de mantenimiento y escalabilidad para los equipos de ingeniería. Cuando un modelo de IA es actualizado por su proveedor y cambia su comportamiento, modificar un prompt manual disperso en docenas de archivos del sistema es una pesadilla logística. Con DSPy, si la lógica estructural cambia, actualizas la firma central o ejecutas el optimizador nuevamente para adaptar los ejemplos. Esto reduce los costos de soporte, disminuye el retrabajo y permite que el equipo se concentre en la regla de negocio en lugar de adivinar palabras mágicas para convencer a la inteligencia artificial de cooperar. Para profundizar en estos conceptos arquitectónicos en producción, consulte también nuestro análisis técnico sobre ¿API inestable en Node.js? Cómo aplicar circuit breaker.

Reflexiones finales sobre el futuro de los prompts

La ingeniería de prompts basada en prueba y error ha alcanzado un límite de sostenibilidad en proyectos de software reales. Tratar las instrucciones para modelos de inteligencia artificial como código estructurado, comprobable y compilable es el camino natural para estabilizar aplicaciones corporativas. Herramientas como DSPy demuestran que el futuro de la interacción con modelos de lenguaje radica en la ingeniería de software tradicional, donde los contratos claros, las validaciones estrictas y la automatización reemplazan la intuición humana y el texto libre.