Una configuración de proveedor compatible con OpenAI de OpenCode es útil cuando quieres que OpenCode se comunique con una ruta de modelo que se comporte como la API de Chat Completions de OpenAI, mientras tu equipo mantiene la propiedad de las claves, el enrutamiento de modelos y la revisión del uso en una única puerta de enlace.
La parte importante es que OpenCode tiene una ruta documentada para proveedores personalizados. En la documentación del proveedor de OpenCode, consultada el 8 de julio de 2026, el flujo es: añadir una credencial con /connect, elegir Otro para un proveedor que no esté ya en la lista, darle a ese proveedor un ID fácil de recordar, configurar el proveedor en opencode.json y luego ejecutar /models para seleccionar entre los modelos configurados.
Flatkey encaja en ese patrón como la puerta de enlace detrás del proveedor. Mantienes OpenCode como el agente de codificación, apuntas el proveedor a la URL base de la API compatible con OpenAI de Flatkey y verificas que el tráfico del modelo de OpenCode aparezca en los registros de uso o de solicitudes de Flatkey antes de convertirla en la ruta predeterminada.
Respuesta rápida para la configuración del proveedor compatible con OpenAI de OpenCode
Utiliza esta forma de configuración cuando el punto de conexión del modelo sea compatible con Chat Completions.
| Decisión | Valor recomendado | Por qué es importante |
|---|---|---|
| ID del proveedor | flatkey |
El ID debe coincidir entre /connect, opencode.json y los modelos seleccionados. |
| Paquete NPM | @ai-sdk/openai-compatible |
La documentación de OpenCode especifica este paquete para proveedores compatibles con OpenAI que utilizan /v1/chat/completions. |
| URL base de la API de OpenCode | https://router.flatkey.ai/v1 |
El sitio público de Flatkey dirige a los clientes compatibles con OpenAI a esta raíz de la API. |
| ID de modelo | Alias de modelo de Flatkey actuales disponibles para tu clave | OpenCode utiliza los ID de modelo configurados en el selector /models. |
| Verificación | Respuesta de OpenCode más registro de solicitud o uso de Flatkey | Esto demuestra que la solicitud del agente de codificación utilizó la ruta de la puerta de enlace prevista. |
| Reversión | Conserva el valor anterior de model y la configuración del proveedor previa |
Un cambio de proveedor debe ser reversible sin refactorizar tus prompts o el flujo de trabajo del agente. |
Esta guía del proveedor compatible con OpenAI de OpenCode utiliza plantillas. Valida los alias de modelo exactos y la familia de puntos de conexión con tu cuenta de Flatkey antes de enrutar el trabajo del agente de codificación de producción.
Lo que OpenCode requiere
OpenCode tiene dos piezas de estado separadas para un proveedor personalizado.
| Capa de OpenCode | Lo que configuras | Comportamiento de origen a respetar |
|---|---|---|
| Credencial | Clave de API introducida a través de /connect en Otro |
El ID de proveedor que introduzcas aquí debe coincidir con el ID de proveedor en la configuración. |
| Configuración del proveedor | provider.<id> en opencode.json |
La configuración nombra el paquete del SDK de IA, la URL base, los modelos y las cabeceras opcionales o las referencias a la clave de API. |
| Selección de modelo | Selector /models o valor predeterminado de model |
Los modelos de proveedor configurados aparecen después de que se configura el proveedor. |
| Valores predeterminados en tiempo de ejecución | model y small_model opcional |
La configuración de OpenCode admite valores predeterminados de proveedor/modelo para tareas normales y ligeras. |
La configuración de OpenCode puede ser JSON o JSONC. Puedes colocarla globalmente en ~/.config/opencode/opencode.json, o en la raíz de un proyecto como opencode.json. La configuración del proyecto tiene una precedencia estándar más alta, así que utiliza un archivo de proyecto cuando quieras que un repositorio pruebe Flatkey sin cambiar cada espacio de trabajo de OpenCode.
Paso 1: Crea una clave de Flatkey para OpenCode
Crea una clave de Flatkey para esta carga de trabajo y anota tres valores fuera del control de código fuente.
FLATKEY_API_KEY=sk-fk-your-key
FLATKEY_BASE_URL=https://router.flatkey.ai/v1
FLATKEY_MODEL=your-current-flatkey-model-alias
Mantén la raíz de la API separada de la ruta del punto de conexión. La configuración del proveedor de OpenCode debe usar https://router.flatkey.ai/v1 como options.baseURL; las pruebas de humo HTTP directas añaden /chat/completions.
Antes de conectar OpenCode, ejecuta una prueba directa con la misma clave de Flatkey y el mismo alias de modelo.
curl "$FLATKEY_BASE_URL/chat/completions" \
-H "Authorization: Bearer $FLATKEY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "'"$FLATKEY_MODEL"'",
"messages": [
{ "role": "user", "content": "Responde exactamente con: flatkey route ok" }
]
}'
Si esta solicitud directa falla, corrige la clave de Flatkey, el alias del modelo, la familia de puntos de conexión o la ruta de la cuenta antes de depurar OpenCode. Un proveedor compatible con OpenAI de OpenCode no puede compensar un alias de modelo al que la cuenta de la puerta de enlace no puede llamar.
Paso 2: Añade la credencial de Flatkey en OpenCode
OpenCode almacena las credenciales del proveedor a través de /connect. En la TUI de OpenCode:
/connect
Elige Otro, introduce un ID de proveedor como flatkey y luego pega la clave de API de Flatkey. No pegues la URL base en la solicitud de credenciales. La clave demuestra la identidad; la URL base pertenece a opencode.json.
Usa un ID de proveedor sencillo. flatkey es mejor que flatkey-prod-openai-compatible-gateway-v2 porque lo escribirás en los ID de modelo y en las notas de reversión.
Paso 3: Añade la configuración del proveedor de OpenCode
Crea o actualiza opencode.json en la raíz del proyecto que quieres probar.
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"flatkey": {
"npm": "@ai-sdk/openai-compatible",
"name": "Flatkey",
"options": {
"baseURL": "https://router.flatkey.ai/v1"
},
"models": {
"your-current-flatkey-model-alias": {
"name": "Flatkey primary model"
}
}
}
},
"model": "flatkey/your-current-flatkey-model-alias"
}
Esta es la configuración más pequeña de un proveedor compatible con OpenAI de OpenCode. Le da a OpenCode un proveedor llamado flatkey, le indica a OpenCode que use el paquete AI SDK compatible con OpenAI y expone un alias de modelo en el selector de modelos.
Si quieres que OpenCode use una ruta más pequeña para trabajos ligeros, añade small_model solo después de que la ruta principal funcione.
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"flatkey": {
"npm": "@ai-sdk/openai-compatible",
"name": "Flatkey",
"options": {
"baseURL": "https://router.flatkey.ai/v1"
},
"models": {
"primary-flatkey-model-alias": {
"name": "Flatkey primary"
},
"lighter-flatkey-model-alias": {
"name": "Flatkey lightweight"
}
}
}
},
"model": "flatkey/primary-flatkey-model-alias",
"small_model": "flatkey/lighter-flatkey-model-alias"
}
Usa los alias de modelo que tu clave de Flatkey realmente puede llamar. Si tu cuenta expone una ruta autenticada /v1/models, compara los ID de modelo configurados con esa respuesta. De lo contrario, copia los alias del panel de control actual de Flatkey o del directorio de modelos y verifícalos con una solicitud real.
Paso 4: Selecciona y prueba el modelo en OpenCode
Después de guardar la configuración, abre el selector de modelos.
/models
Selecciona el modelo del proveedor Flatkey. Luego, ejecuta un pequeño prompt en OpenCode:
Reply with exactly: opencode flatkey route ok
No muevas todo un flujo de trabajo de codificación todavía. Primero, guarda un paquete de verificación compacto.
| Verificación | Condición de éxito | Evidencia a conservar |
|---|---|---|
| El proveedor aparece | /models muestra el modelo de Flatkey configurado |
Captura de pantalla o nota de terminal con el ID del modelo seleccionado. |
| La autenticación funciona | OpenCode recibe una respuesta normal del modelo, no un 401 o 403 |
Propietario de la clave redactado, tiempo de respuesta y marca de tiempo de la solicitud. |
| La URL base está limpia | Sin /v1/v1 duplicado, sin comportamiento faltante de /chat/completions |
options.baseURL final y punto de conexión curl directo. |
| Flatkey lo ve | La solicitud aparece en los registros de uso o de solicitudes de Flatkey | Marca de tiempo de la solicitud, alias del modelo, campos de token o unidad, etiqueta de clave/carga de trabajo. |
| Existe una reversión | Puedes volver al proveedor/modelo anterior con una sola edición de la configuración | model anterior, ID del proveedor anterior y propietario de la clave anterior. |
Esto convierte una migración de un proveedor compatible con OpenAI de OpenCode en un pequeño cambio operativo en lugar de un intercambio de proveedor a ciegas.
Paso 5: Mantén las Completions de Chat y las Responses separadas
La documentación de proveedores personalizados de OpenCode señala un límite de paquete: usa @ai-sdk/openai-compatible para proveedores compatibles con OpenAI que usan /v1/chat/completions; si un proveedor o modelo usa /v1/responses, usa @ai-sdk/openai.
Eso significa que la primera ruta de Flatkey debería ser un modelo de estilo Chat Completions, a menos que tengas evidencia actual de que tu modelo seleccionado y la ruta del cliente usan una familia de puntos de conexión diferente.
Usa esta tabla de decisiones antes de añadir más modelos.
| Ruta del modelo | Indicación del paquete de OpenCode | Qué probar |
|---|---|---|
| Compatible con Chat Completions | @ai-sdk/openai-compatible |
Chat simple, streaming, comportamiento de llamada a herramientas si es necesario. |
| Ruta de estilo Responses | @ai-sdk/openai según la documentación de OpenCode |
Creación de respuestas, manejo de herramientas y análisis de la salida. |
| Rutas mixtas bajo un mismo proveedor | Anulación del paquete por modelo si tu configuración lo usa | Un modelo a la vez, con registros separados. |
Para la mayoría de los trabajos de configuración, comienza con una ruta de Chat Completions. Añade streaming, llamadas a herramientas y alias de modelos secundarios después de que la primera prueba de humo del proveedor compatible con OpenAI de OpenCode sea visible en Flatkey.
Paso 6: Añade controles de equipo después de que la ruta funcione
Una vez que OpenCode pueda llamar a Flatkey, haz que la ruta sea observable.
| Control | Por qué ayuda |
|---|---|
| Nomenclatura de claves | Etiqueta la clave para OpenCode, el entorno, el equipo o el repositorio. |
| Aprobación de modelos | Limita la primera configuración a alias aprobados antes de añadir una selección de modelos más amplia. |
| Revisión de uso | Comprueba los registros de solicitudes o de uso de Flatkey por marca de tiempo después de cada prueba de OpenCode. |
| Revisión de costos | Asocia el uso del modelo, los tokens y la clave con el responsable del presupuesto. |
| Política de tiempo de espera | Usa las opciones del proveedor de OpenCode solo después de saber que la ruta base funciona. |
| Nota de reversión | Guarda los valores anteriores del proveedor y del modelo antes de establecer Flatkey como predeterminado. |
Aquí es donde Flatkey se convierte en algo más que una URL base. Un proveedor compatible con OpenAI de OpenCode que funcione también debería dar a los equipos de plataforma, finanzas y operaciones un lugar para revisar el uso de los modelos y cambiar la ruta sin pedir a cada desarrollador que gestione cuentas de proveedor separadas.
Para una planificación de migración más amplia, combina esta guía con la guía de migración de API compatibles con OpenAI de Flatkey. Si estás comparando herramientas de codificación adyacentes, consulta la guía del proveedor compatible con OpenAI de Continue.dev y la guía de configuración compatible con OpenAI de Roo Code.
Solución de problemas de un proveedor compatible con OpenAI de OpenCode
| Síntoma | Causa probable | Qué comprobar |
|---|---|---|
El proveedor no aparece en /models |
El ID del proveedor no coincide o la configuración no se ha cargado | Confirma que el ID de /connect y la clave provider sean ambos flatkey; confirma que el archivo de configuración está en la raíz del proyecto o en la ruta de configuración global que esperas. |
401 o 403 |
Falta la clave de Flatkey, está revocada o es incorrecta | Vuelve a introducir la credencial con /connect; nunca imprimas la clave completa en los registros. |
404 |
Raíz de la API o familia de endpoints incorrecta | options.baseURL debe ser la raíz de la API, no una URL completa de /chat/completions. |
| Modelo no encontrado | El alias no está disponible para la clave o la familia de endpoints | Verifica el alias del modelo en Flatkey y prueba una solicitud directa. |
| El streaming se cuelga | Problema de capacidad de la ruta, soporte del modelo o tiempo de espera del fragmento (chunk) | Prueba primero el chat sin streaming y luego ajusta chunkTimeout de OpenCode solo si es necesario. |
| Falta el uso en Flatkey | La solicitud no pasó por Flatkey o los registros están filtrados | Busca por marca de tiempo, etiqueta de clave, alias de modelo y entorno. |
| Fallan las características de las respuestas | Paquete incorrecto para la familia de endpoints | Vuelve a comprobar si la ruta seleccionada utiliza /v1/chat/completions o /v1/responses. |
Si la primera solicitud falla, no cambies todavía los prompts, los agentes, los permisos ni el código del repositorio. Mantén la superficie de depuración del proveedor compatible con OpenAI de OpenCode pequeña: credencial, ID del proveedor, URL base, paquete, alias del modelo y una solicitud de chat simple.
Lista de verificación final
Antes de usar Flatkey como la ruta predeterminada de OpenCode, confirma:
/connecttiene una credencial de Flatkey bajo el mismo ID de proveedor utilizado enopencode.json.provider.flatkey.npmes@ai-sdk/openai-compatiblepara la ruta de Chat Completions.provider.flatkey.options.baseURLeshttps://router.flatkey.ai/v1.modelapunta a un valor configurado deflatkey/<alias-del-modelo>./modelsmuestra el modelo de Flatkey configurado.- Un prompt de una línea de OpenCode se devuelve con éxito.
- Los registros de uso o de solicitudes de Flatkey muestran la solicitud de prueba de OpenCode.
- La ruta anterior del proveedor/modelo está documentada para su reversión.
La configuración de un proveedor compatible con OpenAI de OpenCode está completa cuando el proveedor está configurado, es seleccionable, está verificado en los registros de Flatkey y es reversible. Cuando estés listo para enrutar el tráfico del modelo de agente de codificación a través de una sola clave, obtén una clave de Flatkey y comienza con un único prompt de OpenCode de bajo riesgo.



