El cliente y el problema
Distribuidora de materiales de construcción con presencia en cinco estados, equipo de ventas de 8 personas, 240 cotizaciones promedio al mes. Cada cotización requería leer un PDF o documento del cliente con specs de la obra, identificar SKUs en un catálogo de 12,000 productos, validar disponibilidad por sucursal, calcular margen objetivo según volumen y armar PDF formal con condiciones.
Tiempo promedio antes de la intervención: 2 horas 40 minutos por cotización. El cuello de botella era 100% identificación de SKUs y validación de catálogo. Los vendedores se quejaban — con razón — de que pasaban más tiempo en Excel que vendiendo.
La arquitectura
El agente vive en una interfaz web simple. El vendedor sube el PDF/imagen del cliente y arranca una conversación. Por debajo:
- Extracción: Claude lee el PDF (con vision) y extrae items mencionados en lenguaje natural — "varilla del 3/8", "cemento gris 50kg", "50 metros lineales de tubo PVC 4 pulgadas".
- Tool use: El agente llama a una función
buscar_sku(descripcion, cantidad)que consulta Postgres con búsqueda semántica + reglas de negocio. - Validación cruzada: Para cada match, agente y vendedor confirman. Si la confianza es baja, el agente pregunta antes de asumir.
- Cálculo: Función
calcular_precio(skus, sucursal, volumen)aplica reglas de pricing y disponibilidad. - Render: El agente arma un draft de PDF que el vendedor edita en línea antes de mandar al cliente.
Los gotchas reales
Gotcha 1: el catálogo no estaba listo para búsqueda semántica
El primer rollout falló estrepitosamente. El agente identificaba items pero los SKUs que regresaba eran del lado izquierdo del catálogo. La razón: las descripciones de SKU eran códigos internos ("VAR-038-3M-CMP") sin texto descriptivo. Tuvimos que invertir 3 semanas en enriquecer el catálogo con descripciones largas, sinónimos y embeddings antes de que el agente fuera útil.
Esta es la lección que más cuesta: la IA no resuelve catálogos sucios. La IA expone catálogos sucios.
Gotcha 2: alucinaciones de precios
En una versión temprana, el agente infería precios cuando no encontraba un match exacto. Catastrófico. La solución no fue prompting — fue arquitectónica: el agente nunca emite precios; solo el tool calcular_precio lo hace. Si el tool retorna error, el agente lo escala al vendedor explícitamente.
Gotcha 3: el costo de inferencia explotó al inicio
En las primeras dos semanas el costo de Claude pasó los $18K MXN. La razón: el sistema prompt incluía el catálogo entero (12K SKUs) en cada llamada. Al mover a tool use con búsqueda y eliminar el catálogo del contexto base, el costo bajó a $4,800 MXN/mes.
Resultados después de 6 meses
- Tiempo medio por cotización: 2h 40min → 1h 1min.
- Tasa de error en SKUs: 8.4% → 1.2%.
- Capacity de cotizaciones del equipo: 240/mes → 580/mes (sin contratar).
- NPS interno del equipo de ventas: 41 → 78.
Si tu equipo dedica >2 horas a tareas que parecen mecánicas pero requieren juicio (cotizaciones, propuestas, onboarding documentado, revisiones de contratos), hablemos. Hacemos POCs con métricas claras de impacto en 4–6 semanas.