El problema: cada cambio de modelo rompe tu código
¡Hola Devs! Si en el último año pusiste una feature de IA en producción, ya viviste esto. Hardcodeas un endpoint. Seis meses después sale un modelo más barato y más rápido, y de repente estás refactorizando auth, schema de payload y lógica de retry en cada servicio que llama al LLM. 😩
La respuesta de la industria ya tiene nombre: patrón LLM gateway — un ingress centralizado y serverless que acepta requests compatibles con OpenAI y los reparte al backend que tú quieras. Google Cloud acaba de lanzar model routing en API Gateway (Public Preview), y es un enfoque genuinamente ligero.
Lo interesante no es el routing en sí — los proxies llevan años haciendo eso. Lo interesante es que el gateway transcodifica el payload al schema nativo de cada backend e inyecta el token de autenticación del Agent Platform por ti. Tu cliente sigue hablando OpenAI; el backend escucha Gemini o Anthropic nativo.

Cómo funciona: backends, routers y paths
Toda la configuración vive en tu spec OpenAPI 3.x, vía la extensión x-google-api-management. Tres conceptos hacen todo el trabajo:
- backends — destinos upstream nombrados (Gemini, Claude, OSS-GPT) con dirección, deadline y
pathTranslation: CONSTANT_ADDRESS. - routers — un
defaultModelmás una lista derulesque mapea el stringmodelpedido a un backend. - paths — tus endpoints públicos, cada uno marcado con
x-google-model-router.
Aquí está la forma mínima:
x-google-api-management:
backends:
gemini-35-flashlite:
address: >-
https://aiplatform.googleapis.com/v1/projects/YOUR_PROJECT_ID/locations/global/publishers/google/models/gemini-3.5-flash-lite:generateContent
deadline: 60.0
pathTranslation: CONSTANT_ADDRESS
anthropic-claude-opus-47:
address: >-
https://aiplatform.googleapis.com/v1/projects/YOUR_PROJECT_ID/locations/global/publishers/anthropic/models/claude-opus-4-7:rawPredict
deadline: 60.0
pathTranslation: CONSTANT_ADDRESS
ai:
models:
routing:
routers:
gemini-claude-router:
defaultModel:
backend: gemini-35-flashlite
targetModel: google/gemini-3.5-flash-lite
rules:
- model: "claude-opus-4-7"
backend: anthropic-claude-opus-47
targetModel: anthropic/claude-opus-4-7
Luego lo expones como un path POST normal:
paths:
/v1/chat/gemini-claude:
post:
summary: "Endpoint: por defecto Gemini, Claude como opción."
operationId: "chatGeminiClaude"
x-google-model-router: gemini-claude-router
responses:
'200':
description: "OK"
Deployas la config y tu código cliente nunca vuelve a cambiar:
curl -X POST "https://my-gateway.example.com/v1/chat/gemini-claude" \
-H "content-type: application/json" \
-H "x-api-key: $API_KEY" \
-d '{
"model": "claude-opus-4-7",
"messages": [{"role": "user", "content": "Preséntate en 5 palabras"}]
}'
El gateway intercepta, transcodifica el cuerpo en formato OpenAI al schema nativo de Anthropic, adjunta el token del Agent Platform y enruta. Tú recibes la respuesta; nunca tocaste un proxy. 🚀
![]()
Comparativa: dónde encaja esto vs. hacerlo a mano
| Preocupación | Proxy casero | Model routing de Cloud API Gateway |
|---|---|---|
| Infra a operar | Sí (contenedores, escala, TLS) | Serverless, gestionado |
| Ingress compatible con OpenAI | Lo construyes tú | Ya viene |
| Transcodificación de schema (OpenAI → Gemini/Anthropic) | Código custom por backend | Lo resuelve el gateway |
| Rotación de credenciales del backend | Toca cada cliente | Aislado en el gateway |
| Rate limiting / token tracking | Add-on | Nativo |
| Routing cross-host | Flexible | No soportado — todos los backends de un router deben compartir host |
| Costo | Infra + tiempo de ops | Precio del Gateway |
Las limitaciones que debes conocer
- Un host por router. Todos los backends de un router deben compartir el mismo host (ej.:
aiplatform.googleapis.com). No es un router multi-cloud genérico — enruta modelos y paths en un host compartido del Agent Platform. - Public Preview. Espera cambios en la API. No lo pongas en un camino crítico de compliance todavía.
- Solo basado en reglas. Las decisiones vienen del campo
modely reglas estáticas — sin routing dinámico por latencia o costo (aún). - El split de auth es feature, pero también es trampa. Como el cliente autentica contra el gateway, no contra el proveedor del modelo, un gateway mal configurado se vuelve punto único de exposición de credenciales. Trata la API key del gateway como secreto de producción.
Si ya estás metido en Apigee o necesitas gobernanza a nivel de agente, el espectro más amplio de AI gateway (Agent Gateway, Gemini Enterprise Agent Platform) es a donde vas a migrar. Empieza ligero aquí; crece cuando los requisitos aparezcan.

La moraleja
El patrón LLM gateway ha sido la respuesta pragmática al churn de modelos desde hace rato — la pregunta siempre fue quién lo opera. El model routing de Google Cloud API Gateway se lleva las partes aburridas (transcodificación de schema, inyección de auth, rate limiting) y te deja un endpoint estable compatible con OpenAI para apuntar tus apps.
Próximos pasos para aprenderlo en serio:
- Deploya un router único contra un proyecto de dev y pégale con
curl— siente la transcodificación. - Agrega un segundo router y prueba el override del campo
model. - Estudia el espectro mayor de AI gateway (Apigee, Agent Gateway) para saber cuándo migrar.
Si todavía estás construyendo la capa de serving por debajo, las primitivas de comunicación distribuida importan igual — checa nuestro análisis a fondo de comunicación distribuida en PyTorch para entender point-to-point y operaciones colectivas que hacen funcionar el entrenamiento multi-GPU. Y si sigues el lado de hardware del stack de IA, el buildout de datacenters NVIDIA Rubin de Azure vale la lectura.