Saltar al contenido principal

Documentation Index

Fetch the complete documentation index at: https://docs.kodus.io/llms.txt

Use this file to discover all available pages before exploring further.

BYOK (Bring Your Own Key) es la forma predeterminada en que Kodus usa LLMs en todos los planes — Community, Teams y Enterprise. Conectas tu propia cuenta de proveedor, eliges un modelo, pagas solo por lo que usas y monitoreas los costos directamente en el panel de tu proveedor. Kodus nunca aplica márgenes sobre los tokens y nunca ve tu clave en texto plano.

Cómo se relaciona con los planes

BYOK es gratuito en Community, incluido en Teams ($10/desarrollador activo/mes sobre tu gasto en tokens) y una de dos opciones en Enterprise (la otra es una clave de API administrada por Kodus).

Primeros pasos

La pantalla de BYOK tiene dos caminos: elegir un modelo recomendado del catálogo curado (la vía más rápida, 90% de los casos) o configurar cualquier proveedor manualmente (salida de escape para endpoints personalizados o modelos no curados).
1

Abrir la configuración de BYOK

2

Elegir un modelo recomendado

La sección Modelo principal muestra una cuadrícula de modelos curados que hemos evaluado para revisión de código. Haz clic en cualquier tarjeta para empezar a conectarlo.
3

Pegar tu clave de API y probar

Cada tarjeta se expande en línea con un único campo — solo la clave de API. Haz clic en Test para verificar el proveedor, o en Test & save para ejecutar la prueba y persistir la configuración si tiene éxito.
4

Agregar un modelo de respaldo (recomendado)

Una vez configurado el modelo principal, aparece una sección Modelo de respaldo. Si tu proveedor principal alcanza límites de tasa o deja de estar disponible, Kodus conmuta automáticamente.
Prueba antes de guardar. El botón Test verifica tu proveedor con una llamada de metadatos económica (no se realiza inferencia LLM). Detecta claves inválidas, URLs base incorrectas y problemas de red antes de que rompan tu primera revisión de código.

Modelos recomendados

Estos seis modelos están curados para revisión de código. Todos aparecen en el catálogo en /organization/byok y vienen preajustados con valores por defecto razonables (temperatura, máximo de tokens de salida y esfuerzo de razonamiento configurado en medium).

Claude Sonnet 4.6

Mejor equilibrio entre calidad y costoEl último Sonnet de Anthropic. Razonamiento extendido adaptativo, análisis sólido entre archivos, ventana de contexto de 200K.

Claude Opus 4.7

Calidad insigniaModelo de primer nivel de Anthropic para las revisiones más exigentes. Contexto de 1M, precio premium.

Gemini 3.1 Pro (custom tools)

Mayor contextoModelo insignia de Google con soporte para herramientas personalizadas. Ventana de contexto de 1M — el más robusto en PRs grandes y monorepos.

GPT-5.4

Rápido y consistenteÚltimo modelo insignia de OpenAI. Latencia baja confiable, conocimiento amplio, contexto de 400K.

Kimi K2.6 Coding

Especializado en código, económicoModelo de Moonshot AI ajustado para código. Dos planes: Developer API (pago por token) o Kimi Code Plan (suscripción con endpoint dedicado).

GLM 5.1

Mejor valor por suscripciónÚltimo de Z.ai. Dos planes: Developer API (pago por token) o GLM Coding Plan (suscripción a tarifa plana).
Nuestra recomendación predeterminada: Comienza con Claude Sonnet 4.6 para la mejor experiencia general de revisión de código. Si el costo es prioridad, GLM 5.1 en el Coding Plan o Kimi K2.6 en el Kimi Code Plan ofrecen suscripciones a tarifa plana que limitan tu gasto mensual.

Selector de plan (GLM 5.1 y Kimi K2.6)

Z.ai y Moonshot ofrecen cada uno un plan de suscripción con un endpoint distinto al de su Developer API de pago por token. La tarjeta curada para cada uno de estos modelos muestra un selector de Plan para que elijas el endpoint correcto antes de pegar tu clave.
PlanEndpointClaves desdeIdeal para
Developer APIhttps://api.z.ai/api/paas/v4/z.ai/manage-apikeyCargas variables, pago por token
Coding Planhttps://api.z.ai/api/coding/paas/v4z.ai/subscribeVolumen predecible de equipo, tarifa mensual fija
Las claves del GLM Coding Plan solo funcionan en /api/coding/paas/v4. Los niveles Lite y Pro suelen estar limitados a 1 solicitud concurrente — Kodus rellena previamente maxConcurrentRequests=1 cuando eliges este plan. Auméntalo en la configuración avanzada si estás en el nivel Max (hasta 30).

Configurar manualmente

Cuando el modelo que quieres no está en la lista curada (endpoint personalizado, LLM auto-alojado, o un proveedor que no hemos evaluado), haz clic en Configure manually al final del catálogo. Esto abre /organization/byok/manual?slot=main — un asistente paso a paso:
1

Elegir un proveedor

Elige entre OpenAI, Anthropic, Google Gemini, OpenRouter, Novita o OpenAI Compatible (para cualquier endpoint con formato OpenAI).
2

Ingresar la URL base (si es necesario)

Los proveedores compatibles con OpenAI necesitan una URL base explícita. El campo solo aparece cuando eliges ese proveedor.
3

Elegir o escribir el ID del modelo

Si Kodus puede listar los modelos del proveedor, obtienes un menú desplegable. De lo contrario (por ejemplo, auto-alojado o cuando las claves de la plataforma no están configuradas), escribe el ID exacto del modelo manualmente.
4

Pegar la clave de API

El campo de la clave aparece una vez que el proveedor y el modelo están definidos.
5

Ajustar configuración avanzada (opcional)

Temperatura, máximo de tokens, esfuerzo de razonamiento y máximo de solicitudes concurrentes — todo opcional. Los valores predeterminados son razonables para la mayoría de los proveedores.
6

Probar y guardar

Haz clic en Test & save para ejecutar la prueba de conexión y persistir si tiene éxito.
La misma ruta manual funciona para el respaldo — navega con ?slot=fallback, o usa el enlace Add fallback después de guardar el principal.

Proveedores compatibles

Ideal para: Los últimos modelos GPT y rendimiento confiable.Obtener una clave de API:
  1. Visita OpenAI API Keys
  2. Crea una nueva clave para Kodus
  3. Agrega información de facturación

Razonamiento / Pensamiento extendido

Los seis modelos recomendados soportan razonamiento. El formulario de BYOK expone un interruptor Thinking (Off / Low / Medium / High / Custom) bajo Configuración avanzada, preconfigurado en Medium para cada modelo recomendado.

Niveles predefinidos

Cuando eliges Low / Medium / High, Kodus traduce el nivel al formato nativo de cada proveedor automáticamente:
ProveedorCómo se mapea “medium”
Anthropic (Claude Sonnet 4.6 / Opus 4.7)thinking: { type: "adaptive" } + outputConfig: { effort: "medium" }
Google (Gemini 3.1 Pro)thinkingConfig: { thinkingLevel: "medium" }
OpenAI (GPT-5.4)reasoningEffort: "medium"
OpenRouterreasoning: { effort: "medium" }
Compatible con OpenAI (Kimi K2.6 / GLM 5.1)thinking: { type: "enabled" } — binario on/off, el nivel se ignora
Kimi y GLM actualmente exponen el razonamiento como un único indicador on/off. Elegir Low, Medium o High emite el mismo payload (thinking habilitado). Cuando sus APIs añadan granularidad de nivel, Kodus empezará a reenviarla.

Sobrescritura con JSON personalizado

Elegir Custom en el interruptor de Thinking revela un área de texto JSON. Pega directamente las opciones del proveedor — Kodus las envuelve automáticamente bajo el namespace del proveedor activo. No necesitas conocer las reglas de enrutamiento del Vercel AI SDK. Úsalo cuando:
  • Necesitas un valor específico de budgetTokens para Claude (en lugar del mapeo predefinido de esfuerzo)
  • Quieres habilitar/deshabilitar el razonamiento por modelo en proveedores compatibles con OpenAI
  • Quieres campos más allá del razonamiento — caching, service tier, safety settings, etiquetado user, etc. La sobrescritura se fusiona en providerOptions, por lo que cualquier campo del adaptador pasa
  • El proveedor lanza un nuevo campo que Kodus aún no ha envuelto

Ejemplos (pega directamente — sin namespace)

Sobrescribir el presupuesto de pensamiento de Claude a exactamente 20,000 tokens:
{
  "thinking": { "type": "enabled", "budgetTokens": 20000 }
}
Habilitar el caching de prompts (ejemplo no relacionado con razonamiento):
{
  "cacheControl": { "type": "ephemeral" }
}

Modo manual con namespaces (usuarios avanzados)

Si tu JSON ya contiene una clave de namespace conocida en el nivel superior (anthropic, google, openai, openrouter, openaiCompatible), Kodus lo deja intacto. Útil si quieres mezclar múltiples namespaces de proveedores o ser explícito:
{
  "openrouter": {
    "reasoning": { "effort": "high" },
    "provider": { "order": ["moonshot"], "allow_fallbacks": false }
  }
}
Internamente, estos son los mapeos de namespace que Kodus usa:
Proveedor BYOKClave de namespace
anthropicanthropic
google_gemini / google_vertexgoogle
openaiopenai
open_routeropenrouter
openai_compatible / novitaopenaiCompatible

Detalles a tener en cuenta

  • Solo JSON válido. Las comas faltantes o sobrantes rompen el análisis y Kodus ignora la sobrescritura.
  • Precedencia: la sobrescritura JSON reemplaza por completo el bloque de namespace del preset de esfuerzo — si sobrescribes anthropic.thinking pero olvidas anthropic.outputConfig, ese campo no se enviará. El enrutamiento de OpenRouter (Pin providers / Allow fallbacks) es la única excepción: se fusiona en profundidad con tu sobrescritura bajo openrouter.
  • Proveedor desconocido = sin envoltura. Si tu proveedor de BYOK no está en la tabla de namespaces anterior, Kodus pasa el JSON tal cual. Raro — solo aplica si configuras un proveedor que Kodus no reconoce.

Fijar proveedores de OpenRouter

OpenRouter es un enrutador — cuando solicitas un modelo (por ejemplo, moonshotai/kimi-k2.5), reenvía la llamada a uno de varios proveedores upstream (Moonshot directo, Together, Groq, Fireworks, Novita…). Cada llamada puede caer en un backend diferente. Es conveniente, pero introduce variación silenciosa:
  • Variación de calidad — los upstreams corren diferentes precisiones (FP8, INT4, completa) y entregan salidas sutilmente distintas para prompts idénticos
  • Inconsistencia en tool-calling — algunos backends no soportan function calling de la misma forma, lo que provoca llamadas a herramientas mal formadas
  • Variación en el formato de razonamiento — un upstream respeta reasoning_effort, otro solo thinking.enabled, otro ignora ambos
  • Oscilaciones de latencia — el p50 puede saltar de 800ms a 4s entre llamadas a medida que cambia el enrutamiento
  • Sorpresas de rate-limit — alcanzas la cuota en un backend que no elegiste explícitamente

Cómo fijarlos

Cuando tu proveedor de BYOK es OpenRouter, el panel de Advanced settings muestra una sección OpenRouter routing con dos campos:
  • Pin providers (in order) — lista separada por comas de nombres de upstream (por ejemplo, moonshot, together). OpenRouter los prueba en orden y usa el primero disponible.
  • Allow fallbacks — cuando está desactivado, las solicitudes fallan de forma contundente si ninguno de los proveedores fijados está disponible. Cuando está activado (valor por defecto), OpenRouter puede recurrir a cualquier otro upstream que sirva el modelo.
Para una configuración estable, fija un único proveedor y desactiva los fallbacks (Pin: moonshot, Allow fallbacks: off). Las solicitudes siempre impactarán en el mismo upstream o fallarán de forma ruidosa — sin cambios silenciosos de calidad. La contrapartida es cero resiliencia si ese upstream se cae; emparéjalo con un Fallback de BYOK distinto (por ejemplo, Anthropic) para absorber las caídas.
Los nombres de upstream deben coincidir con el catálogo de OpenRouter. Revisa las etiquetas de proveedor en openrouter.ai/docs/features/provider-routing — los valores comunes incluyen moonshot, together, groq, fireworks, novita.
Internamente, Kodus emite esto en la llamada del Vercel AI SDK:
{
  "openrouter": {
    "provider": {
      "order": ["moonshot", "together"],
      "allow_fallbacks": false
    }
  }
}

Avanzado: sobrescritura con JSON en crudo

Si necesitas campos más allá de order y allow_fallbacks (por ejemplo, ignore, data_collection, require_parameters), cambia Thinking a Custom en Advanced settings y pega el payload de enrutamiento completo — se fusiona en providerOptions junto con cualquier configuración de razonamiento:
{
  "openrouter": {
    "provider": {
      "order": ["moonshot"],
      "allow_fallbacks": false,
      "ignore": ["deepinfra"],
      "data_collection": "deny"
    },
    "reasoning": { "effort": "medium" }
  }
}

Concurrencia y límites de tasa

El campo maxConcurrentRequests (bajo Configuración avanzada) limita cuántas solicitudes simultáneas envía Kodus a tu proveedor en paralelo. La mayoría de las veces, el valor predeterminado es suficiente — pero los planes de suscripción con topes de concurrencia estrictos necesitan configurarlo explícitamente.

Valores predeterminados que Kodus rellena

Proveedor / planValor preconfiguradoPor qué
GLM Coding Plan (Lite/Pro)1La suscripción solo permite una solicitud en curso. Subirlo dispara errores 429.
GLM Coding Plan (Max)1 (aumentar manualmente)Max permite hasta 30, pero usamos el valor seguro por defecto. Súbelo en la configuración avanzada.
Kimi Code Plan30Tope documentado por Moonshot en el endpoint de código.
GLM Developer API(vacío)Los límites escalan por clave; sin un valor global razonable.
Kimi Developer API(vacío)Escala con tu nivel de recarga (Tier 1 ≈ 50, Tier 5 ≈ 1000).
Anthropic / OpenAI / Google / OpenRouter(vacío)Los proveedores aplican sus propios TPM/RPM; Kodus no lo limita.

Cuándo ajustarlo

Subirlo

  • Tienes un nivel de recarga alto en Moonshot/OpenRouter y quieres más rendimiento en PRs grandes
  • Actualizaste tu GLM Coding Plan a Max y quieres usar el presupuesto completo de 30 concurrentes
  • Las revisiones se sienten serializadas en PRs con múltiples archivos y no ves errores 429

Bajarlo

  • Ves errores 429 o Too much concurrency en los logs de revisión
  • Tu proveedor advierte sobre límites de tasa en el panel
  • Quieres conservar la ventana del Coding Plan (5h/semanal) entre más PRs
Concurrencia vs. RPM vs. TPM. maxConcurrentRequests solo limita las solicitudes simultáneas en curso. Muchos proveedores también aplican límites separados de RPM (solicitudes por minuto) y TPM (tokens por minuto). Si estás alcanzando RPM/TPM mientras la concurrencia se ve bien, la solución suele ser subir de nivel o distribuir la carga en el tiempo — no cambiar maxConcurrentRequests.
Interacción con el respaldo. Cuando el principal recibe un 429 y Kodus conmuta al modelo de respaldo, se aplica el maxConcurrentRequests del propio respaldo. Configurar un respaldo generoso en un proveedor distinto es una buena forma de absorber ráfagas cuando tu principal está en una suscripción ajustada.

Mejores prácticas

Seguridad

Claves dedicadas

Crea claves de API separadas para Kodus. Facilita la auditoría de uso y la rotación de claves.

Rotación regular

Rota las claves periódicamente y actualízalas en la configuración de BYOK.

Monitorear el uso

Revisa los paneles de tu proveedor para detectar patrones inusuales.

Almacenamiento seguro

Nunca confirmes claves en repositorios. Kodus las almacena cifradas en reposo y en tránsito.

Estrategia de respaldo

  • Usa un proveedor diferente para el principal y el respaldo (por ejemplo, Anthropic principal, Google respaldo). Protege contra interrupciones específicas del proveedor.
  • Las suscripciones con límites de concurrencia estrictos (GLM Coding Plan Lite/Pro, Kimi Code Plan) son malas configuraciones en solitario — empárlalas con un respaldo de pago por token para que los PRs variables no se queden sin recursos.

Solución de problemas

  • Copia la clave sin espacios extra, comillas o saltos de línea al final.
  • Confirma que la facturación esté habilitada y la cuenta tenga créditos.
  • Para claves del GLM Coding Plan / Kimi Code Plan, asegúrate de haber elegido el Plan correspondiente en la tarjeta — las claves de suscripción no funcionan en el endpoint del Developer API y viceversa.
  • Verifica que la URL base coincida exactamente con el proveedor (la barra al final importa para algunos).
  • Para proveedores compatibles con OpenAI, el endpoint de modelos suele ser {baseURL}/models.
  • El botón Test valida la clave/endpoint pero no verifica el ID específico del modelo. Si escribiste un modelo que no existe (error de tipeo), la primera revisión real falla.
  • Verifica el ID del modelo contra el catálogo del proveedor antes de guardar.
  • Baja Max concurrent requests en la configuración avanzada.
  • En GLM Coding Plan Lite/Pro, mantente en 1 concurrente. Actualiza a Max (30 concurrentes) si necesitas más rendimiento.
  • En Kimi Code Plan, el tope documentado es 30 concurrentes.
  • Si Kodus está configurado mediante .env (Modo Fijo auto-alojado), la pantalla de BYOK muestra un banner informativo azul con el proveedor/modelo activo — la clave nunca se muestra por seguridad.
  • Guardar una configuración de BYOK sobre .env abre un diálogo de confirmación antes de sobrescribir.
  • El razonamiento agrega tokens. Si el costo se dispara, baja Thinking de Medium a Low, o cambia a un modelo más barato como principal.
  • Consulta el panel de tu proveedor para el desglose por modelo.
  • Establece un tope mensual a nivel del proveedor.

Preguntas frecuentes

Sí. El cambio surte efecto para la siguiente revisión — sin necesidad de redespliegue.
Las revisiones cambian automáticamente al modelo de respaldo si hay uno configurado. Sin un respaldo, la revisión falla y devuelve un error. Siempre configura un respaldo.
El modelo principal gestiona todas las revisiones por defecto. Si falla (límite de tasa, 5xx, tiempo de espera), Kodus reintenta una vez en el respaldo. Solo pagas por el proveedor que efectivamente procesó la revisión.
No. Proveedores diferentes protegen contra interrupciones específicas del proveedor. Un emparejamiento común: Anthropic principal + Google respaldo, o GLM Coding Plan principal + Anthropic respaldo para cubrir picos.
Sí. Las claves se cifran en reposo y en tránsito y nunca se registran en texto plano. El endpoint de estado de BYOK nunca devuelve la clave en crudo.
Sí — mediante el proveedor OpenAI Compatible en el asistente manual. Ingresa la URL base de tu endpoint, el ID del modelo que expone y una clave de API de marcador de posición (la mayoría de los runtimes auto-alojados ignoran el header de la clave pero aún así requieren uno).