Situación del cliente
Banca mediana española con ~15.000M€ en balance y 200 oficinas. El proceso de scoring crediticio para PYMEs tardaba entre 3 y 5 días hábiles. Los analistas consultaban manualmente ocho fuentes heterogéneas: core bancario (T24 de Temenos), CIRBE, Registro Mercantil, cuentas anuales, bureaus de crédito (Experian/Informa), ratios sectoriales del Banco de España, noticias del solicitante e historial interno de incidencias.
Las operaciones por encima de 100.000€ iban obligatoriamente a comité de dos personas. El impacto era doble: pérdida de clientes ante neobancos que respondían en 24 horas, y un coste operativo que crecía un 20% anual sin capacidad de escalar el equipo proporcionalmente. Habían intentado un modelo de ML clásico que mejoró la velocidad marginalmente pero no resolvía el problema real: integración de fuentes heterogéneas y explicabilidad de la decisión ante el auditor.
Retos
- Integración con ocho fuentes heterogéneas sin APIs estándar — especialmente CIRBE (Banco de España), que solo ofrece acceso mediante certificado digital y formulario web
- Explicabilidad regulatoria bajo DORA y guía EBA sobre IA en crédito: el sistema debe poder justificar cada decisión ante el inspector del Banco de España con trazabilidad completa
- Alucinaciones en cálculos financieros: los LLMs generan ratios financieros incorrectos con estados contables en formatos no estándar o con notas que redefinen partidas
- Precisión decimal COBOL vs. Python: los sistemas legacy usan COMP-3 (aritmética decimal exacta); Python usa IEEE 754 (punto flotante binario) que acumula errores en cálculos de intereses
- Gobernanza jurídica: el comité de riesgos bloqueó el proyecto tres meses hasta obtener dictamen legal sobre responsabilidad en decisiones asistidas por IA bajo legislación española y guía EBA
- Latencia en producción: el diseño inicial con llamadas secuenciales superaba los 24 segundos por solicitud, inviable operativamente para el equipo de analistas
Solución implementada
- Arquitectura multi-agente con patrón ReAct: cuatro agentes especializados coordinados por un agente supervisor: Agente de Datos Internos (T24), Agente de Datos Externos (CIRBE, Registro, bureaus), Agente de Análisis Sectorial (ratios BdE) y Agente de Síntesis y Recomendación
- Paralelización de tool calls: las cuatro consultas iniciales se lanzan en paralelo al no tener dependencia de datos entre ellas — latencia de ~24s (secuencial) a ~7s (paralelo)
- RAG jerárquico con re-ranking: chunking en tres niveles (sección → subsección → párrafo) con embeddings por nivel usando Amazon Titan Embeddings v2 (1024 dim) sobre DLC SageMaker dentro de la VPC. Re-ranking con cross-encoder. Mejora del 34% vs. búsqueda vectorial pura
- Separación razonamiento/cálculo: Amazon Textract extrae tablas de cuentas anuales; capa determinista en Python calcula los ratios financieros con tipo NUMERIC (aritmética decimal exacta equivalente a COMP-3 COBOL). El LLM solo interpreta y contextualiza
- Auditabilidad DORA: tracing ReAct completo (enableTrace: ENABLED) emitido a CloudWatch con cada ciclo Thought/Action/Observation. Expediente de auditoría generado automáticamente. Retención 7 años en S3
- Prompt caching: la política de crédito completa (180 páginas) cargada con prompt caching, reduciendo tokens facturados y latencia ~85% en las partes estáticas del contexto