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:
/connecttem uma credencial Flatkey sob o mesmo ID de provedor usado emopencode.json.provider.flatkey.npmé@ai-sdk/openai-compatiblepara a rota de Chat Completions.provider.flatkey.options.baseURLéhttps://router.flatkey.ai/v1.modelaponta para um valorflatkey/<model-alias>configurado./modelsmostra o modelo Flatkey configurado.- Um prompt de uma linha do OpenCode retorna com sucesso.
- Os logs de uso ou solicitação do Flatkey mostram a solicitação de teste do OpenCode.
- 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.



