Tool Integrations8 de julho de 2026Flatkey

Configuração do provedor compatível com OpenAI do OpenCode: Roteie modelos de agente de codificação através do Flatkey

Configure o OpenCode com um provedor personalizado compatível com OpenAI através do Flatkey, depois verifique a URL base, a seleção de modelos, os logs e o caminho de reversão.

Configuração do provedor compatível com OpenAI do OpenCode: Roteie modelos de agente de codificação através do Flatkey

Uma configuração de provedor compatível com OpenAI do OpenCode é útil quando você deseja que o OpenCode se comunique com uma rota de modelo que se comporta como a API de Conclusões de Chat da OpenAI, enquanto sua equipe mantém a propriedade da chave, o roteamento de modelos e a revisão de uso em um único gateway.

A parte importante é que o OpenCode tem um caminho documentado para provedor personalizado. Na documentação do provedor OpenCode, verificada em 8 de julho de 2026, o fluxo é: adicionar uma credencial com /connect, escolher Outro para um provedor que ainda não está listado, dar a esse provedor um ID memorável, configurar o provedor em opencode.json e, em seguida, executar /models para selecionar entre os modelos configurados.

O Flatkey se encaixa nesse padrão como o gateway por trás do provedor. Você mantém o OpenCode como o agente de codificação, aponta o provedor para a URL base da API compatível com OpenAI do Flatkey e verifica se o tráfego do modelo OpenCode aparece nos logs de uso ou de solicitação do Flatkey antes de torná-lo a rota padrão.

Resposta rápida para a configuração do provedor compatível com OpenAI do OpenCode

Use este formato de configuração quando o endpoint do modelo for compatível com Conclusões de Chat.

Decisão Valor recomendado Por que é importante
ID do provedor flatkey O ID deve corresponder entre /connect, opencode.json e os modelos selecionados.
Pacote NPM @ai-sdk/openai-compatible A documentação do OpenCode especifica este pacote para provedores compatíveis com OpenAI que usam /v1/chat/completions.
URL base da API do OpenCode https://router.flatkey.ai/v1 O site público do Flatkey aponta clientes compatíveis com OpenAI para esta raiz de API.
IDs de modelo Aliases de modelo atuais do Flatkey disponíveis para sua chave O OpenCode usa os IDs de modelo configurados no seletor /models.
Verificação Resposta do OpenCode mais log de solicitação ou uso do Flatkey Isso prova que a solicitação do agente de codificação usou a rota de gateway pretendida.
Reversão Mantenha o valor anterior de model e a configuração do provedor anterior Uma alteração de provedor deve ser reversível sem refatorar seus prompts ou fluxo de trabalho do agente.

Este guia do provedor compatível com OpenAI do OpenCode usa modelos. Valide os aliases de modelo exatos e a família de endpoints em sua conta Flatkey antes de rotear o trabalho do agente de codificação de produção.

O que o OpenCode exige

O OpenCode tem dois estados separados para um provedor personalizado.

Camada do OpenCode O que você configura Comportamento de origem a ser respeitado
Credencial Chave de API inserida através de /connect em Outro O ID do provedor que você insere aqui deve corresponder ao ID do provedor na configuração.
Configuração do provedor provider.<id> em opencode.json A configuração nomeia o pacote AI SDK, a URL base, os modelos e cabeçalhos opcionais ou referências de chave de API.
Seleção de modelo Seletor /models ou valor padrão de model Os modelos de provedor configurados aparecem depois que o provedor é configurado.
Padrões de tempo de execução model e small_model opcional A configuração do OpenCode suporta padrões de provedor/modelo para tarefas normais e leves.

A configuração do OpenCode pode ser JSON ou JSONC. Você pode colocá-la globalmente em ~/.config/opencode/opencode.json ou na raiz de um projeto como opencode.json. A configuração do projeto tem precedência padrão mais alta, então use um arquivo de projeto quando quiser que um repositório teste o Flatkey sem alterar todos os workspaces do OpenCode.

Passo 1: Crie uma chave Flatkey para o OpenCode

Crie uma chave Flatkey para esta carga de trabalho e registre três valores fora do controle de versão.

FLATKEY_API_KEY=sk-fk-your-key
FLATKEY_BASE_URL=https://router.flatkey.ai/v1
FLATKEY_MODEL=your-current-flatkey-model-alias

Mantenha a raiz da API separada do caminho do endpoint. A configuração do provedor OpenCode deve usar https://router.flatkey.ai/v1 como options.baseURL; testes de fumaça HTTP diretos adicionam /chat/completions.

Antes de conectar o OpenCode, execute um teste direto com a mesma chave Flatkey e o mesmo 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": "Responda com exatamente: rota flatkey ok" }
    ]
  }'

Se esta solicitação direta falhar, corrija a chave Flatkey, o alias do modelo, a família de endpoints ou a rota da conta antes de depurar o OpenCode. Um provedor compatível com OpenAI do OpenCode não pode compensar um alias de modelo que a conta do gateway não pode chamar.

Passo 2: Adicione a credencial Flatkey no OpenCode

O OpenCode armazena as credenciais do provedor através de /connect. Na TUI do OpenCode:

/connect

Escolha Outro, insira um ID de provedor como flatkey e, em seguida, cole a chave de API do Flatkey. Não cole a URL base no prompt de credencial. A chave prova a identidade; a URL base pertence ao opencode.json.

Use um ID de provedor simples. flatkey é melhor do que flatkey-prod-openai-compatible-gateway-v2 porque você o digitará em IDs de modelo e notas de reversão.

Passo 3: Adicionar a configuração do provedor OpenCode

Crie ou atualize o opencode.json na raiz do projeto que você deseja testar.

{
  "$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 é a menor configuração de provedor compatível com OpenAI do OpenCode. Ela fornece ao OpenCode um provedor chamado flatkey, instrui o OpenCode a usar o pacote AI SDK compatível com OpenAI e expõe um alias de modelo no seletor de modelos.

Se você quiser que o OpenCode use uma rota menor para trabalhos leves, adicione small_model somente depois que a rota principal funcionar.

{
  "$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"
}

Use os aliases de modelo que sua chave Flatkey pode realmente chamar. Se sua conta expõe uma rota /v1/models autenticada, compare os IDs de modelo configurados com essa resposta. Caso contrário, copie os aliases do painel atual do Flatkey ou do diretório de modelos e verifique-os com uma solicitação real.

Passo 4: Selecionar e testar o modelo no OpenCode

Após salvar a configuração, abra o seletor de modelos.

/models

Selecione o modelo do provedor Flatkey. Em seguida, execute um pequeno prompt no OpenCode:

Reply with exactly: opencode flatkey route ok

Ainda não mova um fluxo de trabalho de codificação inteiro. Primeiro, salve um pacote de verificação compacto.

Verificação Condição de aprovação Evidência a ser guardada
O provedor aparece /models mostra o modelo Flatkey configurado Captura de tela ou nota do terminal com o ID do modelo selecionado.
A autenticação funciona O OpenCode recebe uma resposta normal do modelo, não 401 ou 403 Proprietário da chave editado, tempo de resposta e carimbo de data/hora da solicitação.
A URL base está limpa Sem /v1/v1 duplicado, sem comportamento ausente de /chat/completions options.baseURL final e endpoint curl direto.
O Flatkey o vê A solicitação aparece nos logs de uso ou de solicitação do Flatkey Carimbo de data/hora da solicitação, alias do modelo, campos de token ou unidade, rótulo de chave/carga de trabalho.
A reversão existe Você pode retornar ao provedor/modelo anterior em uma única edição de configuração model anterior, ID do provedor anterior e proprietário da chave anterior.

Isso transforma uma migração de provedor compatível com OpenAI do OpenCode em uma pequena mudança operacional, em vez de uma troca cega de provedor.

Passo 5: Manter as Conclusões de Chat e as Respostas separadas

Os documentos de provedor personalizado do OpenCode destacam um limite de pacote: use @ai-sdk/openai-compatible para provedores compatíveis com OpenAI que usam /v1/chat/completions; se um provedor ou modelo usar /v1/responses, use @ai-sdk/openai.

Isso significa que a primeira rota do Flatkey deve ser um modelo no estilo de Conclusões de Chat, a menos que você tenha evidências atuais de que o modelo selecionado e o caminho do cliente usam uma família de endpoints diferente.

Use esta tabela de decisão antes de adicionar mais modelos.

Rota do modelo Direção do pacote OpenCode O que testar
Compatível com Conclusões de Chat @ai-sdk/openai-compatible Chat simples, streaming, comportamento de chamada de ferramenta, se necessário.
Rota no estilo de Respostas @ai-sdk/openai conforme os documentos do OpenCode Criação de resposta, manuseio de ferramentas e análise de saída.
Rotas mistas sob um único provedor Substituição de pacote por modelo, se sua configuração a usar Um modelo de cada vez, com logs separados.

Para a maioria dos trabalhos de configuração, comece com uma rota de Conclusões de Chat. Adicione streaming, chamadas de ferramentas e aliases de modelo secundários depois que o primeiro teste de fumaça do provedor compatível com OpenAI do OpenCode estiver visível no Flatkey.

Passo 6: Adicionar controles de equipe depois que a rota funcionar

Assim que o OpenCode puder chamar o Flatkey, torne a rota observável.

Controle Por que ajuda
Nomeação da chave Rotule a chave para OpenCode, ambiente, equipe ou repositório.
Aprovação do modelo Limite a primeira configuração a aliases aprovados antes de adicionar uma ampla escolha de modelos.
Revisão de uso Verifique os logs de solicitação ou uso do Flatkey por carimbo de data/hora após cada teste do OpenCode.
Revisão de custos Combine o uso do modelo, token e chave com o proprietário do orçamento.
Política de tempo limite Use as opções do provedor OpenCode somente depois de saber que a rota base funciona.
Nota de reversão Salve os valores anteriores do provedor e do modelo antes de tornar o Flatkey o padrão.

É aqui que o Flatkey se torna mais do que um URL base. Um provedor compatível com OpenAI do OpenCode funcional também deve fornecer às equipes de plataforma, finanças e operações um local para revisar o uso do modelo e alterar a rota sem pedir a cada desenvolvedor para gerenciar contas de provedor separadas.

Para um planejamento de migração mais amplo, combine este guia com o guia de migração de API compatível com OpenAI do Flatkey. Se você estiver comparando ferramentas de codificação adjacentes, consulte o guia do provedor compatível com OpenAI do Continue.dev e o guia de configuração compatível com OpenAI do Roo Code.

Solução de problemas de um provedor compatível com OpenAI do OpenCode

Sintoma Causa provável O que verificar
O provedor não aparece em /models Incompatibilidade de ID do provedor ou configuração não carregada Confirme se o ID de /connect e a chave provider são ambos flatkey; confirme se o arquivo de configuração está na raiz do projeto ou no caminho de configuração global que você espera.
401 ou 403 Chave Flatkey ausente, revogada ou incorreta Reinsira a credencial com /connect; nunca imprima a chave completa nos logs.
404 Raiz da API ou família de endpoints incorreta options.baseURL deve ser a raiz da API, não um URL completo de /chat/completions.
Modelo não encontrado O alias não está disponível para a chave ou família de endpoints Verifique o alias do modelo no Flatkey e teste uma solicitação direta.
Streaming trava Problema de capacidade da rota, suporte do modelo ou tempo limite do chunk Prove primeiro o chat sem streaming e, em seguida, ajuste o chunkTimeout do OpenCode apenas se necessário.
Uso ausente no Flatkey A solicitação não passou pelo Flatkey ou os logs estão filtrados Pesquise por carimbo de data/hora, rótulo da chave, alias do modelo e ambiente.
Recursos de respostas falham Pacote incorreto para a família de endpoints Verifique novamente se a rota selecionada usa /v1/chat/completions ou /v1/responses.

Se a primeira solicitação falhar, não altere prompts, agentes, permissões ou código do repositório ainda. Mantenha a superfície de depuração do provedor compatível com OpenAI do OpenCode pequena: credencial, ID do provedor, URL base, pacote, alias do modelo e uma solicitação de chat simples.

Lista de verificação final

Antes de usar o Flatkey como a rota padrão do OpenCode, confirme:

  1. /connect tem uma credencial Flatkey sob o mesmo ID de provedor usado em opencode.json.
  2. provider.flatkey.npm é @ai-sdk/openai-compatible para a rota de Chat Completions.
  3. provider.flatkey.options.baseURL é https://router.flatkey.ai/v1.
  4. model aponta para um valor flatkey/<model-alias> configurado.
  5. /models mostra o modelo Flatkey configurado.
  6. Um prompt de uma linha do OpenCode retorna com sucesso.
  7. Os logs de uso ou solicitação do Flatkey mostram a solicitação de teste do OpenCode.
  8. A rota anterior do provedor/modelo está documentada para reversão.

Uma configuração de provedor compatível com OpenAI do OpenCode está completa quando o provedor está configurado, selecionável, verificado nos logs do Flatkey e reversível. Quando estiver pronto para rotear o tráfego do modelo de agente de codificação através de uma única chave, obtenha uma chave Flatkey e comece com um único prompt de baixo risco do OpenCode.