GUÍA DE MIGRACIÓN

De las llamadas directas a la API a un único endpoint gobernado

La mayoría de los equipos empiezan llamando a OpenAI o a Anthropic directamente desde sus aplicaciones, con una clave de proveedor en el entorno de cada servicio. Es la forma correcta de empezar. Esta guía es para cuando deja de bastar: usted traslada cada aplicación detrás de Wäg de una en una, sin reescribirla, y cada paso se puede deshacer volviendo a cambiar una línea.

Qué cambia

  • La URL base a la que cada aplicación envía las peticiones
  • La clave que envía: una clave de gateway por aplicación en lugar de la clave del proveedor
  • Dónde viven las claves de proveedor: en Wäg, no en cada servicio

Qué no cambia

  • Su SDK — openai, langchain, llamaindex y el resto
  • Sus prompts, las formas de petición y el tratamiento de las respuestas
  • El streaming, el tool calling, la visión y la salida estructurada
  • Los nombres de modelo que su código ya utiliza
  • Sus cuentas y contratos con los proveedores

¿No tiene claro si ya necesita un gateway? Esto explica qué hace uno y cuándo sigue siendo mejor llamar directamente al proveedor: ¿Qué es un gateway de IA?

EL CAMINO

Cinco pasos, una aplicación cada vez

1 · Ponga en marcha Wäg y añada sus proveedores

Asigne a cada proveedor su cuenta actual y ponga a los alias los nombres de modelo que su código ya envía. Así no hay que cambiar ninguna referencia a modelos en ninguna aplicación.

# waeg.yaml — aliases named after the models your code already asks for
providers:
  openai:
    provider: openai
    api_key_env: OPENAI_API_KEY
  anthropic:
    provider: anthropic
    api_key_env: ANTHROPIC_API_KEY

models:
  - name: gpt-4o
    deployments:
      - provider: openai
        model_id: gpt-4o

  - name: claude-haiku-4-5
    deployments:
      - provider: anthropic
        model_id: claude-haiku-4-5

Las claves se resuelven desde el entorno o desde su vault; nunca se escriben en el archivo.

2 · Emita una clave de gateway por aplicación

Cada aplicación recibe su propia clave virtual en lugar de la clave del proveedor. Eso es lo que hace posible conocer el coste por aplicación, fijar límites por equipo y revocar un solo servicio — nada de lo cual permite una clave de proveedor compartida.

3 · Cambie la URL base y la clave

Wäg sirve la superficie compatible con OpenAI — chat completions, la Responses API (sin estado), embeddings, imágenes, audio, vídeo, OCR, moderaciones, rerank, archivos, lotes, tiempo real y modelos — con streaming SSE real, además de /v1/mcp y /v1/a2a para agentes. En la aplicación cambian dos líneas:

  client = OpenAI(
-     api_key=os.environ["OPENAI_API_KEY"],
+     base_url=os.environ["WAEG_BASE_URL"],   # e.g. https://waeg.internal/v1
+     api_key=os.environ["WAEG_KEY"],         # this application's gateway key
  )

También se admiten las aplicaciones basadas en los SDK propios de Anthropic o Gemini: /v1/messages y /v1beta de Gemini son formas de petición de primer nivel, no solo traducciones de la forma de OpenAI.

4 · Compruebe y pase a la siguiente aplicación

Envíe una petición normal, una con streaming y una con tool calling, y lea las cabeceras de respuesta: x-waeg-routed-model indica qué modelo la atendió, x-waeg-route-reason por qué (con el enrutamiento inteligente) y x-waeg-cache si respondió una caché. La petición ya aparece en la consola con sus tokens y su coste.

Un orden razonable: primero las herramientas internas, después las cargas por lotes y offline, luego un servicio de producción y al final todo lo demás.

5 · Retire las claves de proveedor de las aplicaciones

Cuando todas las aplicaciones pasen por Wäg, rote las claves de proveedor y elimínelas de los entornos de las aplicaciones, de los secretos de CI y de los archivos de configuración. A partir de ahí, solo las guarda Wäg — que es la mayor parte de la ganancia en seguridad, y el paso que los equipos olvidan con más frecuencia.

Cómo revertir

Vuelva a cambiar la URL base y la clave. Wäg no guarda ningún estado del que dependan sus aplicaciones, así que, hasta el paso 5, ese es todo el procedimiento. Haga el paso 5 el último, cuando esté seguro — después, revertir significa volver a entregar claves de proveedor a las aplicaciones.

DESPUÉS

Lo que ha ganado

  • El coste por aplicación, equipo y usuario, en el momento en que se produce — no reconstruido a partir de una factura.
  • Presupuestos que frenan el gasto antes de llamar al proveedor, no paneles que se ponen en rojo después.
  • Failover a otro proveedor o modelo cuando uno está caído.
  • Reglas sobre los datos — enmascarar, redactar, bloquear — aplicadas a cada prompt, también en aplicaciones que nadie ha tocado.
  • Un registro de cada petición: quién, qué modelo, por qué, cuánto costó y qué reglas se aplicaron.
  • Modelos que se añaden o se sustituyen por configuración, sin desplegar de nuevo cada aplicación.
LA PARTE HONESTA

Lo que le cuesta

  • Un servicio más que operar. El modo embebido no necesita nada externo, pero es de un solo nodo y en memoria, para pruebas; producción funciona sobre Postgres y OpenFGA, además de Redis en cuanto hay varias réplicas.
  • Un salto de red más. Unos pocos milisegundos frente a llamadas a modelos de cientos de milisegundos a segundos — y los aciertos de caché responden más rápido que cualquier proveedor.
  • Alguien tiene que responsabilizarse. Normalmente el equipo de plataforma, las mismas personas que se encargan del resto de su infraestructura compartida.
FAQ

Preguntas que suelen surgir

¿Tengo que cambiar el código de la aplicación?

Dos líneas por aplicación: la URL base y la clave. Si sus aplicaciones leen ambas del entorno, ni siquiera eso: cambia el entorno.

¿Podemos migrar solo una aplicación?

Sí. Las aplicaciones que sigan llamando directamente al proveedor continúan funcionando. Migrar de una en una es el camino recomendado.

¿Siguen funcionando el streaming y el tool calling?

Sí. El streaming son eventos server-sent reales, y el tool calling, la visión y la salida estructurada se conservan en las formas de petición de OpenAI, Anthropic y Gemini.

¿Van nuestros datos a bitkaio?

No. Wäg se ejecuta en su infraestructura y solo habla con los proveedores que usted configure. No hay telemetría ni phone-home, y la licencia es un token firmado sin conexión, sin servidor de licencias.

¿Qué necesitamos para ejecutarlo?

Para una primera aplicación, un contenedor en modo embebido. Para producción, Postgres y OpenFGA, además de Redis para mantener coherentes los presupuestos y los límites de tasa entre réplicas. Lo instala un operator de Kubernetes propio o un chart de Helm; las bases de datos siguen siendo suyas.

Un endpoint. Cada modelo. Control total.

Empiece por el open source

Ejecútelo en su propia infraestructura

Todo lo necesario para operar un control plane en producción es Apache-2.0 y seguirá siéndolo: enrutamiento, alta disponibilidad, caché, failover, presupuestos, políticas, MCP, trabajos y observabilidad. Self-hosted, sin cuenta, sin phone-home.

$ docker run -p 4000:4000 <registry>/waeg-gateway:<version>

No es un pull que funcione: las imágenes aún no son públicas. Los socios de diseño reciben los datos del registro en privado.

Despliega en 5 minutos
Alianza de diseño

Contribuya a definirlo como design partner

Wäg todavía no se ha publicado. Trabajamos con un grupo reducido de equipos que ejecutan IA multiproveedor en producción y se toman en serio la gobernanza y la soberanía, para endurecer el control plane con cargas de trabajo reales.

  • Todas las capacidades Enterprise incluidas, sin coste de licencia
  • Migración acompañada: la hacemos con usted, también desde LiteLLM
  • Línea directa con los ingenieros que lo construyen e influencia real sobre lo que llega después
Solicitar entrada al programa