Asesor técnico-comercial con IA para un e-commerce B2B
Un agente que encuentra productos, consulta precio y stock en tiempo real, calcula materiales y prepara presupuestos, citando la ficha técnica de la que sale cada dato.
- Sector
- Distribución de suelos y revestimientos
- Encargo
- Cliente directo
- Mi papel
- Arquitectura y desarrollo del agente
- Stack
- Python, FastAPI, LangGraph, Claude, PostgreSQL, pgvector, Next.js
El problema
El cliente quería que su tienda online resolviera las preguntas que hacen particulares, instaladores y arquitectos antes de comprar: qué producto sirve para un baño, cuántas cajas hacen falta para 34 m², qué certificados tiene un panel. Y que lo hiciera sin inventarse referencias ni precios.
Qué decidí
- Un grafo fijo con LangGraph en lugar de un agente autónomo. El proceso de venta se conoce de antemano, así que el grafo es más predecible y más barato.
- Los cálculos los hace el código. El modelo interpreta la pregunta y redacta la respuesta, pero las cajas, los metros y la merma salen de funciones deterministas.
- Un validador revisa cada respuesta antes de enviarla. Si menciona una referencia, una cifra o una afirmación que no sale del catálogo o de la documentación, se descarta y se responde con una plantilla.
- Dos modelos: uno rápido para entender la pregunta y otro mejor para redactar.
Qué construí
- RAG híbrido sobre fichas técnicas y certificados, con citas literales y número de página.
- Un adaptador de solo lectura sobre la base de datos de la tienda para consultar precio y stock en tiempo real.
- Borradores de carrito y de presupuesto, y traspaso al equipo comercial cuando hace falta.
- Trazas por turno con latencia, tokens y coste, con los datos personales ocultos, y un límite de gasto mensual.
Resultado
En la batería de 42 casos reales sobre el catálogo:
| Métrica | Resultado |
|---|---|
| Casos correctos | 39 de 42 (93 %) |
| Acierto en producto | 96 % |
| Citas literales | 100 % |
| Cálculos exactos | 100 % |
| Latencia mediana / p95 | 4,2 s / 8,4 s |
| Coste por respuesta | 0,008 $ |