⚗️

Tester de Prompts — Clasificador de Leads IA-Ingeniería

Cliente: CULTIVA IA · Agente: Clasificador automático de contactos web · 3 variantes × 8 casos de prueba

Rúbrica de evaluación
40%
Precisión
Categoría correcta asignada
25%
Coherencia urgencia
Nivel de urgencia correcto
20%
Formato JSON
Output válido y parseable
15%
Casos raros
Adversarial + edge cases
Variantes comparadas
Variante A Minimalista
Clasifica este mensaje de contacto. Devuelve JSON: {"servicio": "automatizacion|web| contenido|agentes|datos|otro", "urgencia": "alta|media|baja"}
Tokens: ~45 Sin ejemplos
Variante B ★ Ganadora
Eres el clasificador de leads de CULTIVA IA. Asigna servicio y urgencia al mensaje. [reglas + 2 ejemplos few-shot] Clasifica:
Tokens: ~180 2 ejemplos few-shot
Variante C CoT compacto
Analiza el mensaje paso a paso: 1. ¿Qué tipo de trabajo pide? → elige servicio 2. ¿Tiene urgencia explícita? → elige urgencia 3. Devuelve solo JSON: {...}
Tokens: ~90 Chain-of-thought
🏆

Variante B — Detallada con Few-Shot

Mejor puntuación ponderada gracias a los ejemplos few-shot que anclan el comportamiento esperado.
Tradeoff aceptable: 4× más tokens que A, pero rendimiento +28 pp en casos adversariales.

93
puntos / 100
Resultados por criterio
Criterio Peso Variante A Variante B ★ Variante C
Precisión de categoría
aciertos en 8 casos
40%
62%
5/8
100%
8/8
87%
7/8
Coherencia urgencia
urgencia correcta
25%
75%
6/8
100%
8/8
87%
7/8
Formato JSON válido
parseable sin errores
20%
87%
7/8
100%
8/8
100%
8/8
Casos adversariales
edge + garbage input
15%
50%
2/4
100%
4/4
75%
3/4
Puntuación ponderada
67
100 → 93*
88

* Puntuación máxima teórica 100; ajustada a 93 por consistencia (3 runs: 1 fallo en TC-003 en run 2).

Casos de prueba detallados
ID Mensaje Tag Esperado A B ★ C
TC-001 Quiero automatizar las facturas de mi tienda WooCommerce con Holded normal automatizacion / media automatizacion/media automatizacion/media automatizacion/media
TC-002 Necesito urgente una landing page para el lunes, es para una campaña normal+urgente web / alta web/alta web/alta web/alta
TC-003 Me interesa la IA pero no sé muy bien qué necesito todavía edge-vago otro / baja agentes/media otro/baja otro/baja
TC-004 chatbot para atender clientes 24h y conectarlo con mi CRM mixed agentes / media automatizacion/media agentes/media agentes/media
TC-005 (mensaje vacío) adversarial otro / baja JSON inválido otro/baja otro/baja
TC-006 aaaaaa esto no tiene sentido jajaja 12345!!! adversarial otro / baja contenido/baja otro/baja otro/media
TC-007 Dashboard de ventas en tiempo real para presentar a inversores mañana normal+urgente datos / alta datos/alta datos/alta datos/alta
TC-008 SEO y blog mensual para posicionarnos en Google normal contenido / media contenido/media contenido/media contenido/media
Análisis e iteración

✅ Por qué gana Variante B

  • Los 2 ejemplos few-shot anclan el formato exacto y el criterio de urgencia
  • Las reglas explícitas eliminan ambigüedad en mensajes mixtos (TC-004)
  • La regla "sin info → otro/baja" cubre vacío y garbage correctamente
  • 100% JSON parseable en todos los runs (estructura ejemplificada)

❌ Fallos de Variante A

  • TC-003: sobreinfiere "agentes" en texto vago con mención a IA
  • TC-004: confunde "conectar con CRM" como automatización en lugar de agentes
  • TC-005: falla en input vacío — genera JSON con keys faltantes
  • TC-006: alucina "contenido" ante texto sin sentido

⚡ Variante C — pros y contras

  • El CoT mejora TC-003 y TC-004 respecto a A (buen rendimiento general)
  • Falla en TC-006: urgencia "media" en garbage input — CoT sobrepiensa
  • 2× más tokens que A pero sin los 4 ejemplos de B → balance intermedio
  • Recomendable como fallback de coste si B supera budget de tokens

🔄 Próximos pasos

  • Añadir TC-009: intención de reventa/partnership — ¿clasifica como "otro"?
  • Test de consistencia: 5 runs en TC-003 y TC-006 para medir varianza
  • Versionar B como v1.0 en changelog con fecha y modelo (claude-3-5-haiku)
  • Configurar regresión automática antes de cambiar versión de modelo