BYOK (Bring Your Own Key) é a forma padrão como o Kodus usa LLMs em todos os planos — Community, Teams e Enterprise. Você conecta sua própria conta de provedor, escolhe um modelo, paga apenas pelo que usa e monitora custos diretamente no painel do seu provedor. O Kodus nunca cobra margem sobre tokens e nunca vê sua chave em texto simples.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.
Como isso se aplica aos planos
Primeiros Passos
A tela de BYOK tem dois caminhos: escolher um modelo recomendado do catálogo curado (caminho mais rápido, 90% dos casos) ou configurar qualquer provedor manualmente (saída de emergência para endpoints personalizados ou modelos não curados).Abrir as Configurações de BYOK
Escolher um modelo recomendado
Colar sua chave de API e testar
Modelos Recomendados
Estes seis modelos são curados para revisão de código. Todos aparecem no catálogo em/organization/byok e vêm pré-ajustados com padrões sensatos (temperature, max output tokens e reasoning effort definidos como medium).
Claude Sonnet 4.6
- Provedor: Anthropic
- Model ID:
claude-sonnet-4-6 - Chave: console.anthropic.com
Claude Opus 4.7
- Provedor: Anthropic
- Model ID:
claude-opus-4-7 - Chave: console.anthropic.com
Gemini 3.1 Pro (custom tools)
- Provedor: Google Gemini
- Model ID:
gemini-3.1-pro-preview-customtools - Chave: aistudio.google.com/apikey
GPT-5.4
- Provedor: OpenAI
- Model ID:
gpt-5.4 - Chave: platform.openai.com/api-keys
Kimi K2.6 Coding
- Provedor: OpenAI-compatible (Moonshot AI)
- Model ID:
kimi-k2.6 - Chaves: platform.moonshot.ai ou kimi.com/code
GLM 5.1
- Provedor: OpenAI-compatible (Z.ai)
- Model ID:
glm-5.1 - Chaves: console z.ai ou z.ai/subscribe
Seletor de plano (GLM 5.1 e Kimi K2.6)
Z.ai e Moonshot ambos oferecem um plano de assinatura com um endpoint diferente da Developer API pay-per-token. O card curado para cada um desses modelos exibe um seletor de Plan para que você possa escolher o endpoint correto antes de colar sua chave.- GLM 5.1 (Z.ai)
- Kimi K2.6 (Moonshot AI)
| Plano | Endpoint | Chaves de | Melhor para |
|---|---|---|---|
| Developer API | https://api.z.ai/api/paas/v4/ | z.ai/manage-apikey | Cargas variáveis, pay-per-token |
| Coding Plan | https://api.z.ai/api/coding/paas/v4 | z.ai/subscribe | Volume previsível de equipe, taxa mensal fixa |
Configurar manualmente
Quando o modelo que você quer não está na lista curada (endpoint personalizado, LLM self-hosted ou um provedor que não avaliamos), clique em Configure manually no final do catálogo. Isso abre/organization/byok/manual?slot=main — um assistente passo a passo:
Escolha um provedor
Informe a URL base (se necessário)
Escolha ou digite o Model ID
Ajustar configurações avançadas (opcional)
Provedores Suportados
- OpenAI
- Google Gemini
- Anthropic Claude
- Novita AI
- OpenRouter
- OpenAI Compatible
- Acesse OpenAI API Keys
- Crie uma nova chave para o Kodus
- Adicione informações de cobrança
Reasoning / Extended Thinking
Todos os seis modelos recomendados suportam reasoning. O formulário BYOK expõe um toggle Thinking (Off / Low / Medium / High / Custom) em Advanced settings, pré-preenchido como Medium para cada modelo recomendado.Níveis predefinidos
Quando você escolhe Low / Medium / High, o Kodus traduz o nível para o formato nativo de cada provedor automaticamente:| Provedor | Como “medium” mapeia |
|---|---|
| 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" |
| OpenRouter | reasoning: { effort: "medium" } |
| OpenAI-compatible (Kimi K2.6 / GLM 5.1) | thinking: { type: "enabled" } — on/off binário, nível ignorado |
Sobrescrita via JSON customizado
Escolher Custom no toggle Thinking revela uma textarea de JSON. Cole as opções do provedor diretamente — o Kodus faz o auto-wrap sob o namespace do provedor ativo. Você não precisa conhecer as regras de roteamento do Vercel AI SDK. Use isso quando:- Você precisa de um valor específico de
budgetTokenspara o Claude (em vez do mapeamento por effort predefinido) - Você quer habilitar/desabilitar thinking por modelo para provedores OpenAI-compatible
- Você quer campos além de reasoning — caching, service tier, safety settings, tagging via
user, etc. A sobrescrita é mesclada emproviderOptions, então qualquer campo do adapter passa direto - O provedor lança um novo campo que o Kodus ainda não envolveu
Exemplos (cole direto — sem namespace)
- Anthropic
- Google Gemini
- OpenAI
- OpenRouter
- OpenAI-compatible (Kimi, GLM, etc.)
Usando namespaces manualmente (usuários avançados)
Se seu JSON já contém uma chave de namespace conhecida no nível superior (anthropic, google, openai, openrouter, openaiCompatible), o Kodus deixa intocado. Útil quando você quer misturar múltiplos namespaces de provedor ou ser explícito:
| Provedor BYOK | Chave de namespace |
|---|---|
anthropic | anthropic |
google_gemini / google_vertex | google |
openai | openai |
open_router | openrouter |
openai_compatible / novita | openaiCompatible |
Pegadinhas
- Apenas JSON válido. Vírgulas faltando ou vírgulas finais quebram o parse e o Kodus ignora a sobrescrita.
- Precedência: a sobrescrita JSON substitui totalmente o bloco de namespace do effort predefinido — se você sobrescrever
anthropic.thinkingmas esqueceranthropic.outputConfig, esse campo não será enviado. O roteamento do OpenRouter (Pin providers / Allow fallbacks) é a única exceção: ele faz deep-merge com sua sobrescrita sobopenrouter. - Provedor desconhecido = sem wrap. Se seu provedor BYOK não está na tabela de namespace acima, o Kodus passa o JSON como está. Raro — só se aplica se você configurar um provedor que o Kodus não reconhece.
Fixando provedores do OpenRouter
O OpenRouter é um roteador — quando você solicita um modelo (ex.:moonshotai/kimi-k2.5), ele encaminha a chamada para um entre vários provedores upstream (Moonshot direto, Together, Groq, Fireworks, Novita…). Cada chamada pode cair em um backend diferente. Isso é conveniente, mas introduz variação silenciosa:
- Variação de qualidade — upstreams rodam em precisões diferentes (FP8, INT4, full) e entregam saídas sutilmente diferentes para prompts idênticos
- Inconsistência de tool-calling — alguns backends não suportam function calling da mesma forma, levando a uso de tool malformado
- Variação no formato de reasoning — um upstream respeita
reasoning_effort, outro sóthinking.enabled, outro ignora ambos - Oscilação de latência — o p50 pode saltar de 800ms para 4s entre chamadas conforme o roteamento muda
- Surpresas de rate-limit — você bate na cota de um backend que não escolheu explicitamente
Como fixar
Quando seu provedor BYOK é o OpenRouter, o painel Advanced settings exibe uma seção OpenRouter routing com dois campos:- Pin providers (in order) — lista separada por vírgulas com nomes dos upstreams (ex.:
moonshot, together). O OpenRouter os tenta em ordem e usa o primeiro disponível. - Allow fallbacks — quando desativado, as requisições falham diretamente se nenhum dos provedores fixados estiver disponível. Quando ativado (padrão), o OpenRouter pode recorrer a qualquer outro upstream que sirva o modelo.
Avançado: sobrescrita via JSON bruto
Se você precisa de campos além deorder e allow_fallbacks (ex.: ignore, data_collection, require_parameters), mude Thinking para Custom em Advanced settings e cole o payload de roteamento completo — ele é mesclado em providerOptions junto com qualquer configuração de reasoning:
Simultaneidade e limites de taxa
O campomaxConcurrentRequests (em Advanced settings) limita quantas requisições em voo o Kodus envia ao seu provedor em paralelo. Na maioria das vezes, o padrão é suficiente — mas planos de assinatura com limites estritos de simultaneidade precisam defini-lo explicitamente.
Padrões que o Kodus pré-preenche
| Provedor / plano | Valor pré-preenchido | Motivo |
|---|---|---|
| GLM Coding Plan (Lite/Pro) | 1 | A assinatura permite apenas uma requisição em voo. Ir além dispara 429. |
| GLM Coding Plan (Max) | 1 (aumente manualmente) | Max permite até 30, mas padronizamos pelo valor seguro. Aumente em Advanced settings. |
| Kimi Code Plan | 30 | Limite documentado da Moonshot no endpoint de coding. |
| GLM Developer API | (vazio) | Limites escalam por chave; não há padrão global sensato. |
| Kimi Developer API | (vazio) | Escala com seu tier de recarga (Tier 1 ≈ 50, Tier 5 ≈ 1000). |
| Anthropic / OpenAI / Google / OpenRouter | (vazio) | Provedores aplicam seus próprios TPM/RPM; o Kodus não limita. |
Quando ajustar
Aumentar
- Você tem uma recarga de tier alto na Moonshot/OpenRouter e quer mais throughput em PRs grandes
- Você fez upgrade do seu GLM Coding Plan para Max e quer usar o budget completo de 30 simultâneas
- As revisões parecem serializadas em PRs com muitos arquivos e você não vê 429s
Diminuir
- Você vê erros
429ouToo much concurrencynos logs de revisão - Seu provedor avisa sobre limites de taxa no painel
- Você quer preservar a janela do Coding Plan (5h/semanal) em mais PRs
maxConcurrentRequests do próprio Fallback se aplica. Definir um Fallback generoso em um provedor diferente é uma boa forma de absorver picos quando seu Main está em uma assinatura apertada.Boas Práticas
Segurança
Chaves Dedicadas
Rotação Regular
Monitorar Uso
Armazenamento Seguro
Estratégia de Fallback
- Use provedores diferentes para Main e Fallback (ex.: Anthropic como main, Google como fallback). Protege contra indisponibilidades específicas de um provedor.
- Assinaturas com limites de simultaneidade apertados (GLM Coding Plan Lite/Pro, Kimi Code Plan) fazem configurações solo ruins — combine-as com um Fallback pay-per-token para que PRs em picos não fiquem sem recursos.
Solução de Problemas
'Chave de API inválida' ao clicar em Test
'Chave de API inválida' ao clicar em Test
- Copie a chave sem espaços extras, aspas ou quebras de linha finais.
- Confirme que o faturamento está habilitado e que a conta tem créditos.
- Para chaves do GLM Coding Plan / Kimi Code Plan, certifique-se de ter escolhido o Plan correspondente no card — chaves de assinatura não funcionam no endpoint Developer API e vice-versa.
'Endpoint não encontrado' ao clicar em Test
'Endpoint não encontrado' ao clicar em Test
- Verifique se a URL base corresponde exatamente ao provedor (barra final importa para alguns).
- Para provedores OpenAI-compatible, o endpoint de modelos geralmente é
{baseURL}/models.
Modelo não encontrado no momento da revisão (teste da chave passou)
Modelo não encontrado no momento da revisão (teste da chave passou)
- O botão Test valida a chave/endpoint mas não verifica o Model ID específico. Se você digitou um modelo que não existe (typo), a primeira revisão real falha.
- Confira o Model ID contra o catálogo do provedor antes de salvar.
'Rate limited' ou 'Too much concurrency'
'Rate limited' ou 'Too much concurrency'
- Reduza Max concurrent requests em Advanced settings.
- No GLM Coding Plan Lite/Pro, mantenha em 1 concurrent. Faça upgrade para Max (30 concurrent) se precisar de mais throughput.
- No Kimi Code Plan, o limite documentado é 30 concurrent.
Variáveis de ambiente self-hosted não aparecem
Variáveis de ambiente self-hosted não aparecem
- Se o Kodus está configurado via
.env(Fixed Mode self-hosted), a tela de BYOK exibe um banner informativo azul com o provedor/modelo ativo — a chave nunca é exibida por segurança. - Salvar uma configuração BYOK por cima do
.envsolicita um diálogo de confirmação antes de sobrescrever.
Custos altos ou inesperados
Custos altos ou inesperados
- Reasoning adiciona tokens. Se o custo está disparando, reduza Thinking de Medium para Low, ou mude para um modelo mais barato como Main.
- Verifique o painel do seu provedor para o detalhamento por modelo.
- Defina um limite mensal no nível do provedor.
Perguntas Frequentes
Posso trocar de provedor a qualquer momento?
Posso trocar de provedor a qualquer momento?
O que acontece se minha chave de API ficar sem créditos?
O que acontece se minha chave de API ficar sem créditos?
Como funciona o sistema primário/fallback?
Como funciona o sistema primário/fallback?
Devo usar o mesmo provedor para Main e Fallback?
Devo usar o mesmo provedor para Main e Fallback?
Vocês armazenam nossas chaves de API com segurança?
Vocês armazenam nossas chaves de API com segurança?
Posso usar um LLM self-hosted (ex.: Ollama, vLLM)?
Posso usar um LLM self-hosted (ex.: Ollama, vLLM)?