Esta página es una traducción de la documentación en inglés. Los comandos, identificadores y ejemplos no cambian. Runtime 7.24.4 · SDK 2.6.7. Original en inglés
Proveedores personalizados y de puerta de enlace
Estado: Activo Alcance: estado actual Última revisión: 2026-09-06 Responsable: entorno de ejecución de ax-code
AX Code habla con los modelos mediante protocolos estándar de proveedor. Cualquier endpoint que hable una API compatible con OpenAI (/v1/chat/completions) o compatible con Anthropic (/v1/messages) puede añadirse como proveedor personalizado apuntando baseURL hacia él: sin cambios de código y sin esperar un ajuste predefinido integrado.
Esto cubre agregadores autoalojados y puertas de enlace de retransmisión como LiteLLM, one-api, new-api y Vercel AI Gateway, además de proxies corporativos privados y cualquier otro servicio compatible. AX Code los trata de forma uniforme: habla el protocolo de cable y tú aportas la URL y la clave.
Nota de responsabilidad. Una puerta de enlace se sitúa entre AX Code y el modelo de origen, así que tus prompts, tu código y tus credenciales pasan por ella. Cuando apuntas AX Code a una retransmisión de terceros o de agrupación de cuentas, eres responsable de confiar a ese operador tus datos y de permanecer dentro de las condiciones de servicio de cada proveedor de origen al que enruta. Los ajustes predefinidos integrados de puerta de enlace, como OpenRouter, usan la misma ruta de protocolo estándar; la configuración personalizada de una puerta de enlace no implica respaldo de ningún operador de retransmisión.
Configuración interactiva
Usa /connect -> API Cloud Provider -> Custom API provider para una
puerta de enlace compatible, o /connect -> AX Trust -> Connect AX Trust para
una puerta de enlace AX Trust. Introduce su URL base (incluido /v1 para AX Trust) y la clave de API
del cliente. El editor descubre los ID de modelo y los metadatos, y guarda las credenciales en
el almacenamiento de autenticación cifrado. También puede aceptar ID de modelo explícitos si el descubrimiento
no está disponible. Reconectar una URL guardada conserva su ID de proveedor y su clave cuando
el token se deja en blanco. Las conexiones de AX Trust conservan su categoría después de las ediciones
y de las actualizaciones de modelos. AX Code envía X-AX-Prompt-Cache-Key con el ID de sesión
en esas conexiones para que la puerta de enlace pueda mantener una sesión en una cuenta apta;
establece provider.<id>.options.axTrust en false para desactivarlo. Esta cabecera no se
reenvía al origen y no es un prompt_cache_key del cuerpo.
Los proveedores de AX Trust conectados actualizan sus listas de modelos en segundo plano al
arrancar. AX Code llama a GET /models del endpoint configurado con la credencial
existente y actualiza nombres de modelo, límites de contexto y salida, razonamiento, llamada a
herramientas, soporte de temperatura y soporte de imagen. Los modelos capaces de imagen muestran
el marcador de visión en /models, incluidos los alias de puerta de enlace cuando AX Trust
anuncia su soporte de imagen. La TUI se actualiza cuando termina el descubrimiento.
Para los ID exactos de modelos DeepSeek de primera parte, los metadatos ausentes se rellenan desde el
catálogo models.dev incluido. Las marcas de capacidad y los límites explícitos de la puerta de enlace tienen
precedencia; los alias desconocidos no heredan capacidades por similitud de nombre.
Una actualización exitosa sustituye la lista del entorno de ejecución, elimina los modelos que la puerta de enlace ya no anuncia y sigue aplicando las listas de permiso y bloqueo configuradas. Los tiempos de espera, los errores y las respuestas vacías o no válidas conservan la lista guardada y registran un fallo de descubrimiento. El arranque no espera a la red. Esta actualización no reescribe la configuración del proveedor ni las credenciales; la configuración guardada sigue siendo el respaldo de arranque. Los proveedores de API personalizados ordinarios conservan la actualización manual.
Cómo se resuelve un proveedor
Para cada solicitud, AX Code necesita tres cosas de una entrada de proveedor:
npm— el adaptador del SDK de IA que habla el protocolo de cable. Usa@ai-sdk/openai-compatiblepara endpoints de estilo OpenAI y@ai-sdk/anthropicpara endpoints de estilo Anthropic. Solo los adaptadores@ai-sdk/*están incluidos o se pueden instalar.options.baseURL— la URL de la puerta de enlace. Recurre al campoapidel proveedor y luego alapi.urlpropio del modelo. Admite la sustitución${ENV_VAR}.- Una credencial — se resuelve en orden desde
options.apiKey, luego el almacén de autenticación persistente y luego las variablesenvdel proveedor.
La configuración manual también necesita un mapa models explícito. El editor
interactivo rellena este mapa desde el endpoint o desde los ID de modelo que aportes.
Las nubes GPU privadas dedicadas son proveedores de primera clase bajo /connect → Private GPU cloud. Pega la URL compatible con OpenAI y el token (alibaba-pai, runpod, huggingface-endpoints, sagemaker, volcengine-ark, modelarts, tencent-ti o custom-private-gpu); AX Code llama a GET …/models y usa de forma automática los ID del modelo desplegado.
Los catálogos GPU alojados (nebius, fireworks-ai, togetherai, baseten, nvidia, deepinfra) usan una clave de API y la instantánea de modelos incluida, el mismo patrón que usa OpenCode.
Puerta de enlace compatible con OpenAI
La mayoría de los agregadores (LiteLLM, one-api, new-api, puertas de enlace gratuitas o autoalojadas) exponen una superficie compatible con OpenAI. Añade esto a tu ax-code.json (global en ~/.config/ax-code/ax-code.json, o por proyecto en la raíz del repositorio):
{
"$schema": "https://ax-code.app/docs-assets/schema/config.schema.json",
"provider": {
"my-gateway": {
"name": "My Gateway",
"npm": "@ai-sdk/openai-compatible",
"options": {
"baseURL": "https://gateway.example.com/v1",
"apiKey": "${MY_GATEWAY_API_KEY}",
},
"models": {
"gpt-4o": {
"name": "GPT-4o (via gateway)",
"tool_call": true,
"reasoning": false,
"attachment": true,
"limit": { "context": 128000, "output": 16384 },
},
},
},
},
}
- La clave
"my-gateway"es el id de proveedor que seleccionas en/connectyax-code models. - Cada clave bajo
modelses el ID de selección local. Establece elidde la entrada en el ID exacto de modelo que espera la puerta de enlace cuando difiere de esa clave; si no, la clave se usa para los modelos declarados a mano sin una correspondencia de catálogo existente. - Prefiere
${ENV_VAR}a una clave literal para que el secreto quede fuera de la configuración confirmada en el repositorio.
Alias de modelo de la puerta de enlace tras cambiar endpoints
Cambiar options.baseURL no traduce los ID de modelo configurados a mano.
Por ejemplo, un endpoint de AX Trust puede anunciar deepseek-flash mientras una
selección local existente es ax-trust/deepseek-v4-flash. Conserva la clave local
y establece provider.ax-trust.models.deepseek-v4-flash.id en deepseek-flash.
AX Code envía entonces el ID de la puerta de enlace en las solicitudes de API.
Consulta el ejemplo de configuración de AX Trust para DeepSeek Flash.
Fusiona los campos de proveedor pertinentes en tu configuración existente, conservando
los demás modelos y sus ajustes de capacidad. El ejemplo usa
{env:AX_TRUST_API_KEY}; establece esa variable de entorno antes de iniciar AX Code,
o conserva tu configuración de credenciales existente. Reinicia AX Code después de editar.
Al diagnosticar 403 model is not allowed, compara el ID de modelo de la solicitud
con la respuesta autenticada GET /models del endpoint. Una solicitud exitosa de lista
de modelos por sí sola no establece permiso para ejecutar un modelo. Si el ID exacto
sigue fallando, comprueba los permisos de clave y modelo de la puerta de enlace.
Puerta de enlace compatible con Anthropic
Las retransmisiones que exponen /v1/messages (la forma de la API de Claude) usan el adaptador de Anthropic:
{
"$schema": "https://ax-code.app/docs-assets/schema/config.schema.json",
"provider": {
"my-claude-gateway": {
"name": "My Claude Gateway",
"npm": "@ai-sdk/anthropic",
"options": {
"baseURL": "https://gateway.example.com",
"apiKey": "${MY_GATEWAY_API_KEY}",
},
"models": {
"claude-sonnet-4-6": {
"name": "Claude Sonnet (via gateway)",
"tool_call": true,
"reasoning": true,
"attachment": true,
"limit": { "context": 200000, "output": 64000 },
},
},
},
},
}
Algunas retransmisiones con forma de Anthropic también respetan directamente las variables de entorno de Claude. Para una ejecución headless rápida sin editar la configuración puedes establecer:
export ANTHROPIC_BASE_URL="https://gateway.example.com"
export ANTHROPIC_AUTH_TOKEN="sk-..."
Sigue siendo recomendable una entrada de configuración cuando quieras que la puerta de enlace aparezca como su propio proveedor seleccionable, con una lista de modelos curada.
Campos del modelo
Las entradas de modelo reutilizan el esquema del registro; para un endpoint personalizado, los campos útiles son:
| Campo | Significado |
|---|---|
name |
Etiqueta visible en el selector de modelos |
tool_call |
Si el modelo admite llamadas a herramientas o funciones (necesario para las herramientas) |
reasoning |
Si el modelo emite razonamiento extendido |
attachment |
Si el modelo acepta adjuntos de imagen o archivo |
limit |
Límites de tokens { context, output } usados para el presupuesto |
modalities |
Arrays { input, output } opcionales (text, image, pdf, …) |
Establece las marcas de capacidad de acuerdo con lo que el modelo de origen admite de verdad; AX Code las usa para condicionar las llamadas a herramientas, los adjuntos y el presupuesto de contexto.
Verificación
Después de guardar la configuración:
ax-code modelslista cada modelo que expone tu proveedor./connectdentro de la TUI muestra el proveedor y te permite autenticarte si usaste una claveenven lugar deoptions.apiKey.
Si falta un modelo, confirma el id del proveedor, la clave del modelo y que la puerta de enlace es alcanzable en baseURL.
Resolución de problemas
- Errores de autenticación — confirma el orden de resolución de la credencial: gana
options.apiKey; si no, se usa una clave deenvo del almacén de autenticación. - Flujos detenidos — las puertas de enlace a veces almacenan SSE en búfer. Ajusta
options.chunkTimeout(por fragmento) yoptions.timeout(solicitud completa) en el proveedor. - Llamadas a herramientas rechazadas — establece
"tool_call": trueen el modelo y confirma que el modelo de origen detrás de la puerta de enlace admite herramientas de verdad.