Más allá de la ingeniería de prompts: cómo la reingeniería de un sistema de IA mejoró el rendimiento, la consistencia y la eficiencia operativa
Las aplicaciones impulsadas por inteligencia artificial suelen ofrecer resultados impresionantes durante las primeras etapas de desarrollo. El verdadero desafío comienza cuando estos sistemas pasan a entornos de producción, donde la velocidad, la confiabilidad, la consistencia y los costos operativos se vuelven factores críticos.
En Blue Trail Software, recientemente enfrentamos este desafío mientras trabajábamos en una plataforma de reclutamiento impulsada por IA diseñada para evaluar la compatibilidad entre candidatos y vacantes. Aunque la plataforma mostró resultados prometedores en sus primeras etapas, a medida que aumentó su uso comenzaron a surgir inconsistencias y limitaciones de rendimiento que afectaron tanto la experiencia del usuario como la eficiencia operativa.
El problema no era una falla total del sistema. Más bien, se trataba de un deterioro gradual provocado por la variabilidad, la latencia y el incremento de los costos. Este proyecto se convirtió en una lección sobre un principio cada vez más importante para los sistemas modernos de IA:
La ingeniería de prompts por sí sola no es suficiente. El rendimiento sostenible de la IA requiere arquitectura de software, orquestación y diseño determinista.
Los límites de la ingeniería de prompts monolítica
Nuestra plataforma utilizaba Modelos de Lenguaje de Gran Escala (LLMs) para evaluar perfiles de candidatos frente a descripciones de puestos y generar puntuaciones de compatibilidad.
Inicialmente, la implementación dependía en gran medida de un único prompt extenso y rico en instrucciones diseñado para gestionar todo el proceso de evaluación.
Este enfoque generó varios problemas críticos.
Inconsistencia en las puntuaciones y variabilidad de las respuestas
El problema más significativo era la inconsistencia. La misma combinación candidato-vacante podía producir resultados drásticamente diferentes:
Primera evaluación: 60
Segunda evaluación: 10
Tercera evaluación: 95
Ningún dato subyacente cambiaba entre evaluaciones.
El sistema estaba generando resultados impredecibles, lo que afectaba gravemente la confianza y la usabilidad. En los procesos de reclutamiento, este nivel de variabilidad genera preocupaciones importantes:
Menor confianza en las recomendaciones
Mala experiencia de usuario
Dificultad para explicar los resultados
Mayor riesgo operativo
La consistencia es fundamental para los sistemas de IA en producción.
Latencia y cuellos de botella de rendimiento
La arquitectura original requería que el modelo procesara:
Cientos de instrucciones
Perfiles completos de candidatos
Grandes conjuntos de datos contextuales
Lógica compleja de puntuación
Esto generaba retrasos significativos.
Tiempo promedio de evaluación: 18 segundos por solicitud
Para los usuarios reales, esto generaba fricción y afectaba negativamente la capacidad de respuesta de la plataforma.
Alto consumo de tokens y costos operativos
Los prompts extensos y las respuestas de texto sin restricciones generaban un uso innecesario de tokens.
Como resultado:
Aumento de los gastos de API
Escalabilidad ineficiente
Menor rentabilidad
A medida que los sistemas de IA crecen, la eficiencia en el uso de tokens se convierte tanto en una preocupación empresarial como técnica.
Reingeniería de la arquitectura: Del prompt a la orquestación de IA
En lugar de seguir optimizando un único prompt masivo, rediseñamos completamente la arquitectura del sistema.
El nuevo enfoque introdujo un modelo de orquestación basado en subagentes.
En vez de pedirle a un único modelo de IA que realizara todas las tareas, distribuimos las responsabilidades entre componentes especializados.
Paso 1: Introducción de un agente orquestador
Se creó una capa central de orquestación para gestionar el proceso de evaluación. El orquestador:
Recibe la información del candidato y del puesto
Recupera información contextual mediante ChromaDB
Extrae categorías clave de evaluación
Envía la información a componentes especializados
Las categorías principales incluían:
Experiencia laboral
Habilidades técnicas
Educación
Afinidad con la industria
Competencias requeridas
Esto transformó una única tarea de IA en múltiples evaluaciones enfocadas.
Procesamiento paralelo de IA para un mejor rendimiento
Cada categoría se enviaba simultáneamente a subagentes especializados.
En lugar de un procesamiento secuencial:
Proceso anterior: Candidato → Prompt único → Evaluación
Nuevo proceso: Candidato → Orquestador → Múltiples agentes especializados → Resultados agregados
La ejecución en paralelo redujo significativamente los tiempos de procesamiento.
Resultados:
Latencia anterior: 18 segundos
Nueva latencia: 8 segundos
Esto representó una reducción de más del 50 % en el tiempo de espera.
Trasladando la lógica de negocio fuera del LLM
Otra mejora importante consistió en separar el razonamiento de IA de la lógica determinista de la aplicación.
En lugar de permitir que el LLM realizara cálculos y devolviera respuestas abiertas:
La salida en formato JSON se volvió obligatoria
Las operaciones matemáticas se trasladaron a la API de la aplicación
Los cálculos de puntuación pasaron a ser deterministas

Esto produjo varias ventajas:
Menos alucinaciones
El LLM dejó de generar cálculos inconsistentes.
Menor consumo de tokens
Las respuestas estructuradas requerían menos tokens.
Mayor transparencia
Los administradores ahora podían visualizar:
Puntuaciones individuales por categoría
Criterios detallados de evaluación
Lógica final de ponderación
El sistema pasó de ser una caja negra a un sistema explicable.
Mejorando la consistencia de la IA mediante el preprocesamiento de datos
Durante las pruebas iterativas con herramientas como Claude Code descubrimos algo importante:
El problema principal no eran las reglas defectuosas.
El verdadero problema era una comprensión contextual incompleta.
Cuando la información carecía de claridad, el modelo improvisaba.
Y esa improvisación generaba una gran variabilidad en las puntuaciones.
Preprocesamiento NLP con Python
Antes de que los datos llegaran al LLM, incorporamos técnicas tradicionales de Procesamiento de Lenguaje Natural (NLP).
La capa de preprocesamiento aplicaba:
Lematización
Stemming
Normalización de habilidades
Ejemplos:
"Engineer"
"Engineering"
"Software Engineer"
Estos términos se alineaban semánticamente antes de la evaluación.
Los beneficios incluyeron:
Mejor correspondencia de habilidades
Menor ambigüedad
Puntuaciones más consistentes
El NLP tradicional fortaleció significativamente el rendimiento de la IA.
Introducción de estructuras de decisión deterministas
La estructura de los prompts fue rediseñada utilizando una lógica más explícita.
Los nuevos patrones incluyeron:
Reglas numeradas
Tablas de decisión
Condiciones de detención
Flujos de evaluación tipo if-else
Ejemplo:
Si falta un requisito obligatorio: devolver resultado → detener evaluación
Esto redujo las interpretaciones innecesarias del modelo y aumentó la previsibilidad.
Priorización de habilidades y requisitos críticos
No todos los requisitos de una vacante deben tener el mismo peso en la evaluación de candidatos. Introdujimos palabras clave críticas ponderadas para garantizar que las calificaciones esenciales tuvieran una influencia mayor.
Ejemplos:
Requisitos críticos
Lenguajes de programación requeridos
Certificaciones
Años de experiencia
Conocimiento obligatorio del dominio
Esto generó clasificaciones más realistas y mejoró la calidad de las recomendaciones.
Reducción de costos de IA mediante caché en base de datos
Una de las optimizaciones más impactantes fue la incorporación de una capa de caché.
Cada combinación candidato-vacante generaba un hash único.
El sistema verificaba: ¿Ya se realizó esta evaluación?
Si los datos subyacentes no habían cambiado:
No se ejecutaba ninguna solicitud al LLM
Los resultados almacenados se devolvían instantáneamente
En la práctica:
Las evaluaciones repetidas pasaron a tener un costo de $0.
Beneficios:
Menores gastos de API
Respuestas más rápidas
Menor carga de infraestructura
Resultados: Mejoras en rendimiento, estabilidad y costos
El rediseño arquitectónico generó mejoras medibles en múltiples dimensiones.
Consumo de tokens
Anterior: 5,000 tokens
Actual: 3,500 tokens
Mejora: reducción del 25 %
Estabilidad de las respuestas de IA
Variación promedio anterior: 37 puntos
Variación promedio actual: 5 puntos
Mejora: aproximadamente 86 % más consistencia
Reducción de costos de API
Las mejoras combinadas provinieron de:
Optimización de tokens
Respuestas estructuradas
Caché en base de datos
Resultado: reducción del 30 % en los costos totales de API.

Lecciones aprendidas: La ingeniería de prompts no es suficiente
Una de las lecciones más importantes de este proyecto es que la ingeniería de prompts no es el destino final. Los sistemas de IA en producción requieren un enfoque de ingeniería más amplio que incluya:
Orquestación
Lógica determinista
Preprocesamiento NLP
Salidas estructuradas
Estrategias de caché
Optimización continua
Los sistemas de IA más exitosos no son necesariamente aquellos con los prompts más sofisticados.
Son aquellos respaldados por una arquitectura de software sólida.
Reflexiones finales
Los sistemas de IA requieren cada vez más los mismos principios que cualquier plataforma de software madura:
Escalabilidad
Confiabilidad
Predictibilidad
Observabilidad
Eficiencia de costos
Gracias a este rediseño logramos:
25 % menos uso de tokens
30 % menos costos operativos
Más de 50 % de mejora en velocidad de evaluación
Una consistencia significativamente superior
Pero el resultado más valioso fue la confianza.
Los usuarios ya no dependen de la aleatoriedad de un prompt. Ahora dependen de un sistema confiable diseñado para producción.
El futuro de las aplicaciones de IA probablemente no estará definido únicamente por mejores prompts.
Cada vez estará más definido por una mejor ingeniería.
