A las dos cuarenta de la madrugada, el grupo de alertas de monitoreo empezó a llenarse de mensajes. Dábamos soporte técnico a un equipo que desarrolla un sistema de atención al cliente para comercio electrónico transfronterizo; la tasa de tiempos de espera de su API de atención al cliente inteligente pasó del 0,3% habitual a un 27%, y se mantuvo así casi una hora. De cara al usuario, el bot de atención al cliente tardaba una eternidad en responder y los agentes solo podían volver temporalmente a la atención manual.
En la revisión posterior, el problema no estaba en nuestro código, sino en el origen: el clúster de inferencia de un único proveedor de modelos sufrió limitación de tasa regional en ese intervalo. Todas nuestras solicitudes iban a un mismo proveedor, sin ninguna alternativa. Este artículo expone por completo aquel incidente y el plan de mejora posterior, como referencia para colegas que están trabajando en la integración de IA empresarial.
Las tres trampas de la dependencia de un único punto, las pisamos todas
Mucha gente cree que integrar una API de modelos grandes se reduce a rellenar una Key y enviar una petición HTTP. Cuando se llega al entorno de producción, las trampas se concentran en tres puntos.
La primera es la limitación de tasa. La cuota de QPS del proveedor se asigna por dimensión de cuenta; durante las grandes promociones el volumen de sesiones de atención al cliente se triplica, la cuota se agota al instante y se devuelve 429. En aquel momento no habíamos implementado encolado de solicitudes ni retroceso, y además la lógica de reintento estaba escrita de forma demasiado agresiva, lo que amplificaba aún más la presión.
La segunda es el tiempo de espera. Una vez que la interfaz de streaming (SSE) se atasca en el origen, la conexión queda colgada mucho tiempo sin devolver nada y el cliente no puede hacer otra cosa que esperar. En aquel incidente, una parte considerable de las solicitudes no fallaban, sino que estaban «falsamente vivas»: la conexión TCP seguía ahí, pero no emitía ni un solo token.
La tercera es la diferencia de protocolos. Cada proveedor es distinto en el formato de retorno en streaming, las marcas de finalización y la definición de códigos de error. La estructura de eventos SSE de la API de GPT-4o y la de la API de Claude son diferentes, y las API nacionales de Qwen y DeepSeek tienen cada una sus propios campos. Si el código de negocio se conecta directamente a varios proveedores, es como enterrarse un montón de if-else.
Solución de enrutamiento multimodelo: clasificación, degradación, normalización y agregación
Tras el incidente hicimos una ronda de mejoras; la idea central era introducir una capa de gateway de modelos que sacara del código de negocio la decisión de «a qué modelo llamar».
La clasificación de solicitudes es el primer paso. Dividimos las solicitudes en tres niveles según la importancia del negocio: las de conversación en tiempo real (atención al cliente, asistente de agentes) exigen una latencia P99 inferior a 2 segundos; las de generación por lotes (descripciones de productos, borradores de correos) toleran nivel de minutos; las de tareas offline (etiquetado de datos, resúmenes de informes) son totalmente asíncronas. Solo tras la clasificación la estrategia de enrutamiento tiene fundamento.
La degradación automática ante fallos es el segundo paso. Cada modelo tiene una comprobación de salud; si las fallas o los tiempos de espera superan el umbral de forma consecutiva, se retira automáticamente y el tráfico se desvía al modelo de respaldo. Nuestro umbral se dispara cuando la tasa de error en la ventana deslizante supera el 5%, con un intervalo de sondeo de recuperación de 30 segundos. Aquí conviene advertir: la degradación no es un cambio ciego, hay que mirar el tipo de tarea; en el escenario de atención al cliente, cambiar a un modelo de capacidad similar es aceptable, pero en tareas que implican razonamiento complejo hay que marcar tras la degradación y revisar manualmente después.
La normalización del protocolo SSE es el tercer paso, y también el que más trabajo costó. En la capa de gateway unificamos el formato de salida en streaming; el lado del negocio solo reconoce una estructura de eventos, y el gateway traduce según el proveedor subyacente. Así, cambiar de modelo no requiere modificar el código de negocio.
La agregación de consumo es el cuarto paso. Tras las llamadas multimodelo, la facturación de Tokens y las estadísticas de consumo deben unificar criterios, o la conciliación de fin de mes será una locura. El gateway agrega por tres dimensiones —inquilino, modelo y tipo de tarea— y emite una factura unificada.
Más tarde actualizamos la estrategia de enrutamiento a «seleccionar automáticamente el modelo óptimo según la tarea»: las preguntas y respuestas simples van a modelos pequeños y baratos, el razonamiento complejo a modelos de mayor capacidad y la generación de código a modelos especializados. Con esta lógica en marcha, el coste global de las llamadas bajó y la respuesta fue más estable. En el fondo, esto depende de la capacidad de programación del lado del cómputo; mecanismos como la programación de cómputo verde y la elasticidad bajo demanda de GPU evitan que los recursos de inferencia en horas punta hagan colas interminables.
Sobre los límites de la estrategia de enrutamiento, hablemos con franqueza
No todos los equipos necesitan multimodelo activo-activo. Si tu volumen diario de llamadas es de solo unas decenas de miles, el negocio no es sensible a la latencia y el presupuesto es holgado, basta con integrar un solo proveedor y hacer bien los reintentos y los tiempos de espera; la complejidad que aporta el activo-activo frena la velocidad de iteración.
Los escenarios donde el enrutamiento multimodelo aporta valor real son: un volumen de llamadas lo bastante grande como para sufrir limitación de tasa, un negocio con requisitos estrictos de disponibilidad, o la necesidad de equilibrar dinámicamente coste y calidad. El criterio es simple: ¿ha afectado alguna vez tu tasa de tiempos de espera de API a los usuarios finales? Si es así, merece la pena construir esta capa de gateway.
En nuestro proyecto también usamos la plataforma de agregación de API de modelos grandes token8341 para la integración unificada multimodelo: con una sola Key se puede llamar a los principales modelos como GPT-4o, Claude, Gemini, DeepSeek, Qwen, ERNIE y Doubao, es compatible con el SDK de OpenAI y basta cambiar una línea de base_url para alternar. Lo que resuelve fundamentalmente son los problemas de normalización de protocolos y agregación de consumo mencionados arriba, ahorrándose el mantenimiento propio de varios SDK. Para equipos que no quieren construir un gateway desde cero, una solución de agregación de API de IA como token8341 es una opción viable.
Una última nota: la plataforma de agregación de API de modelos grandes token8341 tiene una cobertura bastante completa de modelos nacionales —Pangu, DeepSeek, Qwen, ERNIE, Doubao y Spark están todos—, lo que facilita los proyectos de cumplimiento de la iniciativa de innovación tecnológica nacional. Pero las herramientas son al fin y al cabo herramientas; cómo diseñar la estrategia de enrutamiento y cómo fijar los umbrales de degradación depende de ajustarlo con tus propios datos de negocio. La lección más tangible que nos dejó aquel incidente de madrugada es: la disponibilidad no se compra, se diseña capa por capa.
Autor: Sun Haoran
Fecha de publicación: 12 de noviembre de 2026