# Integraciones de SDK y frameworks - GateLLM

> Conecte cualquier SDK o framework a GateLLM: OpenAI, Anthropic, Gemini, DashScope, LangChain, LlamaIndex, CrewAI, Vercel AI SDK, OpenAI Agents SDK, Ollama y más de 30 adicionales, con un solo cambio de base_url e incluyendo las particularidades de cada SDK.

Canonical: https://www.gatellm.io/es/integrations/

## Integraciones de SDK y frameworks
Todos los SDK se conectan a GateLLM con los mismos tres pasos. Encuentre su SDK, fíjese en su convención de base_url y en su particularidad, y copie el patrón.
El gateway está orientado a protocolos: sea cual sea el SDK que use, siempre que hable OpenAI / Anthropic / Gemini / DashScope / Realtime / MCP, apuntar su base_url al gateway y cambiar a una clave de acceso le permite llamar a cualquier modelo configurado, incluidas llamadas entre protocolos a modelos de otros proveedores.
## Funciona con el SDK que ya tiene
Apunte cualquier SDK o framework al gateway con una línea. OpenAI, Anthropic, Gemini y DashScope se conectan de forma nativa; LangChain, LlamaIndex, CrewAI, Vercel AI SDK y más de 30 adicionales mediante el mismo cambio de base_url.
### Apunte base_url al gateway
Por defecto https://your-gateway.gatellm.io; que incluya /v1 depende del SDK (cada ejemplo indica el valor exacto).
### Cambie a una clave de acceso del gateway
No es una clave upstream sk-…; la misma clave de acceso se monta en la cabecera que espere su SDK.
### Use el nombre del modelo del gateway
El que haya configurado en la consola, no el nombre oficial del proveedor.
```
# base_url convention differs by SDK — match the one you're using
from openai import OpenAI
OpenAI(base_url="https://your-gateway.gatellm.io/v1")        # OpenAI SDK: /v1

import anthropic
anthropic.Anthropic(base_url="https://your-gateway.gatellm.io")  # Anthropic SDK: root (appends /v1/messages)

# Vercel AI SDK createAnthropic: baseURL ".../v1" (appends /messages) — the reverse
# LangChain ChatOpenAI: base_url="https://your-gateway.gatellm.io/v1"
```
### `Authorization: Bearer <key>`
- SDK / framework: OpenAI · DashScope · genérico
- El prefijo Bearer no distingue mayúsculas de minúsculas

### `x-api-key: <key>`
- SDK / framework: SDK de Anthropic
- También se acepta Authorization

### `x-goog-api-key: <key>`
- SDK / framework: SDK de Gemini
- También se acepta Authorization

## Matriz de selección de SDK

### SDK oficiales de proveedores
Los SDK de OpenAI / Anthropic / Google se conectan de forma nativa; solo cambia base_url
| SDK / framework | Lenguaje | Protocolo | Documentación |
| --- | --- | --- | --- |
| OpenAI SDK | Python, Node.js | OpenAI | https://docs.gatellm.io/en/sdk/vendor-sdks |
| Anthropic SDK | Python, Node.js | Anthropic | https://docs.gatellm.io/en/sdk/vendor-sdks |
| Google GenAI SDK | Python, JavaScript | Gemini | https://docs.gatellm.io/en/sdk/vendor-sdks |
| OpenAI-compatible third parties | Python, Node.js | OpenAI-compatible | https://docs.gatellm.io/en/sdk/vendor-sdks |

### DashScope nativo
Texto, imagen, video asíncrono, embedding y rerank a través de un único endpoint
| SDK / framework | Lenguaje | Protocolo | Documentación |
| --- | --- | --- | --- |
| DashScope SDK | Python | DashScope | https://docs.gatellm.io/en/quickstart/dashscope |

### SDK y gateways unificados
Vercel AI SDK, LiteLLM, Portkey, Semantic Kernel, Spring AI
| SDK / framework | Lenguaje | Protocolo | Documentación |
| --- | --- | --- | --- |
| Vercel AI SDK | TypeScript | OpenAI / Anthropic | https://docs.gatellm.io/en/sdk/unified-sdks |
| LiteLLM | Python | OpenAI-compatible | https://docs.gatellm.io/en/sdk/unified-sdks |
| Portkey | Node.js, Python | OpenAI-compatible | https://docs.gatellm.io/en/sdk/unified-sdks |
| Braintrust / Langbase | TypeScript, Python | OpenAI-compatible | https://docs.gatellm.io/en/sdk/unified-sdks |
| Semantic Kernel | Python, .NET | OpenAI-compatible | https://docs.gatellm.io/en/sdk/unified-sdks |
| Spring AI | Java | OpenAI-compatible | https://docs.gatellm.io/en/sdk/unified-sdks |

### Frameworks de orquestación
LangChain, LlamaIndex, CrewAI, AutoGen, DSPy, Haystack
| SDK / framework | Lenguaje | Protocolo | Documentación |
| --- | --- | --- | --- |
| LangChain | Python, TypeScript | OpenAI / Anthropic | https://docs.gatellm.io/en/sdk/orchestration-frameworks |
| LangGraph | Python, TypeScript | OpenAI / Anthropic | https://docs.gatellm.io/en/sdk/orchestration-frameworks |
| LlamaIndex | Python, TypeScript | OpenAI-compatible | https://docs.gatellm.io/en/sdk/orchestration-frameworks |
| CrewAI | Python | OpenAI-compatible (LiteLLM) | https://docs.gatellm.io/en/sdk/orchestration-frameworks |
| AutoGen / AG2 | Python | OpenAI-compatible | https://docs.gatellm.io/en/sdk/orchestration-frameworks |
| DSPy | Python | OpenAI-compatible | https://docs.gatellm.io/en/sdk/orchestration-frameworks |
| Haystack | Python | OpenAI-compatible | https://docs.gatellm.io/en/sdk/orchestration-frameworks |
| Llama Stack | Python | OpenAI-compatible | https://docs.gatellm.io/en/sdk/orchestration-frameworks |

### SDK de agentes
OpenAI Agents, Claude Agent, Pydantic AI, ADK, Mastra
| SDK / framework | Lenguaje | Protocolo | Documentación |
| --- | --- | --- | --- |
| OpenAI Agents SDK | Python, TypeScript | OpenAI Responses | https://docs.gatellm.io/en/sdk/agent-sdks |
| Claude Agent SDK | Python, TypeScript | Anthropic | https://docs.gatellm.io/en/quickstart/anthropic-interop |
| Pydantic AI | Python | OpenAI-compatible | https://docs.gatellm.io/en/sdk/agent-sdks |
| Google ADK | Python | OpenAI-compatible (LiteLLM) | https://docs.gatellm.io/en/sdk/agent-sdks |
| Mastra | TypeScript | OpenAI-compatible | https://docs.gatellm.io/en/sdk/agent-sdks |
| Microsoft Agent Framework | .NET, Python | OpenAI-compatible | https://docs.gatellm.io/en/sdk/agent-sdks |
| MCP SDK | Python, TypeScript | MCP | https://docs.gatellm.io/en/reference/mcp-config |

### Tiempo real y audio
Voz por WebSocket en tiempo real + ASR / TTS de openai_audio
| SDK / framework | Lenguaje | Protocolo | Documentación |
| --- | --- | --- | --- |
| Realtime WebSocket | Any WS client | OpenAI Realtime | https://docs.gatellm.io/en/sdk/realtime-and-audio |
| openai_audio (ASR / TTS) | Python, Node.js | OpenAI audio | https://docs.gatellm.io/en/sdk/realtime-and-audio |

### Local / autoalojado
Ollama, vLLM, llama.cpp como upstreams: conserve cualquier SDK de cliente
| SDK / framework | Lenguaje | Protocolo | Documentación |
| --- | --- | --- | --- |
| Ollama | REST | OpenAI-compatible (upstream) | https://docs.gatellm.io/en/sdk/local-inference |
| vLLM | REST | OpenAI-compatible (upstream) | https://docs.gatellm.io/en/sdk/local-inference |
| llama.cpp server | REST | OpenAI-compatible (upstream) | https://docs.gatellm.io/en/sdk/local-inference |
| SGLang | REST | OpenAI-compatible (upstream) | https://docs.gatellm.io/en/sdk/local-inference |
| Text Generation Inference (TGI) | REST | OpenAI-compatible (upstream) | https://docs.gatellm.io/en/sdk/local-inference |
| LM Studio | REST | OpenAI-compatible (upstream) | https://docs.gatellm.io/en/sdk/local-inference |

## Particularidades
### El nombre del modelo debe coincidir con la configuración del gateway
No es el nombre oficial del proveedor ni el ID del modelo upstream, sino el nombre que le dio en la consola. Un nombre incorrecto produce 404 model_not_found.

### Que base_url incluya /v1 varía según el SDK
El SDK de OpenAI usa /v1; el SDK de Anthropic usa la raíz (añade /v1/messages); createAnthropic del Vercel AI SDK usa /v1 (añade /messages). Equivocarse añade o elimina un segmento de ruta.

### Los campos se traducen y restringen entre protocolos
Un max_tokens puede convertirse en max_output_tokens con un límite inferior (por ejemplo, ≥16) cuando el upstream es un modelo de protocolo Responses; un valor demasiado pequeño produce 400.

### El gateway envuelve los bloques de pensamiento
El contenido y las firmas de pensamiento de Claude / Gemini se pasan o se eliminan; tome el elemento con type == "text" del arreglo content y no asuma que content[0] es texto.

### El SDK de OpenAI Agents usa /v1/responses por defecto
Llama a la API de Responses, no a Chat Completions. Si el upstream es openai (Chat), cambie explícitamente con OpenAIChatCompletionsModel; si es openai_response, un nombre de modelo como cadena funciona tal cual.

### LlamaIndex valida el nombre del modelo contra una lista permitida
La clase OpenAI solo acepta familias que reconoce y rechaza nombres personalizados del gateway; use OpenAILike (Python) o declare la información del modelo explícitamente.

### CrewAI funciona con LiteLLM por debajo
base_url no es un parámetro del framework: es la variable de entorno OPENAI_API_BASE, y el modelo necesita el prefijo openai/.

### AutoGen requiere model_info explícito
Los nombres de modelo desconocidos dan error con la lista predeterminada; declare model_info explícitamente para omitir la comprobación.

### El SDK de Google GenAI apunta a la raíz
base_url se pasa mediante http_options.base_url (sin /v1) y la clave se monta en la cabecera x-goog-api-key.

## Preguntas frecuentes
### ¿Funciona GateLLM con LangChain / LlamaIndex / CrewAI?
Sí: apunte el modelo de chat subyacente de cada framework al endpoint compatible con OpenAI del gateway. Cada uno tiene un punto de entrada específico para "cambiar base_url": LangChain usa ChatOpenAI(base_url=…), LlamaIndex usa OpenAILike y CrewAI configura la variable de entorno OPENAI_API_BASE (por debajo es LiteLLM).
### ¿Puedo usar el SDK de Claude Agent o Claude Code a través de GateLLM?
Sí. Leen las variables de entorno ANTHROPIC_BASE_URL / ANTHROPIC_AUTH_TOKEN: apúntelas a la raíz del gateway y use una clave de acceso del gateway. Asigne al modelo del gateway exactamente el ID que solicita el agente (o alinéelo con ANTHROPIC_MODEL).
### ¿Cómo conecto el SDK de OpenAI Agents?
Apunte su cliente de OpenAI al gateway y configure el modelo. Tenga en cuenta que usa /v1/responses por defecto: si su upstream es un modelo de protocolo Chat, cambie explícitamente con OpenAIChatCompletionsModel. Desactive el trazado (set_tracing_disabled) para que las trazas no lleguen también al gateway.
### ¿Puede GateLLM poner al frente Ollama / vLLM / llama.cpp?
Sí: configúrelos como upstreams compatibles con OpenAI y conserve cualquier SDK de cliente. El gateway añade enrutamiento, conmutación por error y gobernanza sobre sus modelos autoalojados.
### ¿El base_url incluye /v1 o no?
Depende del SDK: el SDK de OpenAI usa /v1; el SDK de Anthropic usa la raíz (añade /v1/messages); createAnthropic del Vercel AI SDK usa /v1 (añade /messages). La documentación indica el valor exacto de cada SDK.
### ¿Qué diferencia hay entre una clave de acceso del gateway y una clave upstream?
La clave de acceso del gateway es la que presenta su cliente, en la cabecera que use su SDK (Authorization, x-api-key o x-goog-api-key). Las claves de los proveedores upstream permanecen en el gateway y nunca se exponen a su cliente.

## Relacionado
- [Inicio](https://www.gatellm.io/es/index.md)
- [Precios](https://www.gatellm.io/es/pricing.md)
- [Calculadora de costos](https://www.gatellm.io/es/calculator.md)
- [Acerca de](https://www.gatellm.io/es/about.md)
- [Reservar una demo](https://www.gatellm.io/es/demo.md)
- [FAQ](https://www.gatellm.io/es/faq.md)
- [Comparar gateways de IA](https://www.gatellm.io/es/compare.md)
- [Comparar LiteLLM](https://www.gatellm.io/es/compare/litellm.md)
- [Comparar OpenRouter](https://www.gatellm.io/es/compare/openrouter.md)
- [Comparar Alibaba Cloud AI Gateway](https://www.gatellm.io/es/compare/alibaba-cloud.md)
- [Comparar Azure API Management](https://www.gatellm.io/es/compare/azure-apim.md)
- [Comparar Apigee](https://www.gatellm.io/es/compare/apigee.md)
- [Comparar Cloudflare AI Gateway](https://www.gatellm.io/es/compare/cloudflare.md)
- [Comparar Kong AI Gateway](https://www.gatellm.io/es/compare/kong.md)
- [Comparar Portkey](https://www.gatellm.io/es/compare/portkey.md)
- [LiteLLM vs Kong AI Gateway](https://www.gatellm.io/es/compare/litellm-vs-kong.md)
- [LiteLLM vs OpenRouter](https://www.gatellm.io/es/compare/litellm-vs-openrouter.md)
- [LiteLLM vs Portkey](https://www.gatellm.io/es/compare/litellm-vs-portkey.md)
- [Casos de uso](https://www.gatellm.io/es/use-cases.md)
- [Reducir el costo de LLM](https://www.gatellm.io/es/use-cases/reduce-cost.md)
- [Alta disponibilidad](https://www.gatellm.io/es/use-cases/high-availability.md)
- [Aislamiento multiusuario](https://www.gatellm.io/es/use-cases/multi-tenant.md)
- [Cumplimiento y auditoría](https://www.gatellm.io/es/use-cases/compliance-audit.md)
- [Solución de problemas por síntoma](https://www.gatellm.io/es/use-cases/troubleshooting.md)
- [Stack de modelos multivendor](https://www.gatellm.io/es/use-cases/mixed-model-stack.md)
- [IA autoalojada dentro de Office](https://www.gatellm.io/es/use-cases/self-hosted-office-ai.md)
- [Visibilidad y atribución del uso de tokens](https://www.gatellm.io/es/use-cases/token-ops.md)
- [Token FinOps: asignación y control del costo de IA](https://www.gatellm.io/es/use-cases/token-finops.md)
- [Gobernanza de herramientas MCP](https://www.gatellm.io/es/use-cases/mcp-tool-governance.md)
- [Búsqueda web para todos los modelos](https://www.gatellm.io/es/use-cases/web-search-grounding.md)
- [Rotación y respaldo multi-clave](https://www.gatellm.io/es/use-cases/multi-key-pooling.md)
- [Control de admisión de clientes](https://www.gatellm.io/es/use-cases/client-admission-control.md)
- [Aplicar la política de uso de modelos](https://www.gatellm.io/es/use-cases/enforce-model-policy.md)
- [Sin elección de modelo en el cliente](https://www.gatellm.io/es/use-cases/automatic-model-tiering.md)
- [Un protocolo, cualquier modelo](https://www.gatellm.io/es/use-cases/one-protocol-any-model.md)
- [Complemento para Office / Microsoft 365](https://www.gatellm.io/es/office-addin.md)
- [Glosario](https://www.gatellm.io/es/glossary.md)
- [Catálogo de modelos](https://www.gatellm.io/es/models.md)
- [Agentes de código IA y harnesses](https://www.gatellm.io/es/coding-agents.md)
- [Seguridad y cumplimiento](https://www.gatellm.io/es/security.md)
