Pular para o conteúdo
Testar o chatObter chave de API

OpenCode

O OpenCode é um agente de código open source para o terminal. Ele aceita provedores próprios no arquivo de configuração, pelo pacote compatível com a OpenAI do AI SDK.

Copia as instruções de configuração desta página, para colar no seu agente de código.
Ver o prompt
Me ajude a configurar isto para usar a Bayle AI, uma API compatível com a OpenAI. Guia completo: https://docs.bayle.ai/pt-br/guides/coding-tools/opencode/

Objetivo: usar modelos da Bayle no agente de código OpenCode, no terminal (https://opencode.ai).

1. Instale o OpenCode se `opencode --version` falhar:
   npm install -g opencode-ai
   (ou `brew install anomalyco/tap/opencode`; outros métodos: https://opencode.ai/docs)
2. Escolha um modelo. Um agente de código precisa de chamadas de ferramenta, então liste os modelos que as suportam e os otimizados para código:
   curl -s "https://api.bayle.ai/models?type=text" \
     | jq -r '.data[] | select(.model_spec.capabilities.supportsFunctionCalling) | .id'
   curl -s "https://api.bayle.ai/models?type=text" \
     | jq -r '.data[] | select(.model_spec.capabilities.optimizedForCode) | .id'
   Me mostre as duas listas, deixe eu escolher e use esse id como MODEL_ID.
3. Adicione o provedor ao opencode.json, neste projeto ou em ~/.config/opencode/opencode.json (me pergunte qual), mesclando com o que já existe. Use @ai-sdk/openai-compatible, nunca @ai-sdk/openai, que chama uma Responses API que a Bayle não serve. A key continua sendo uma referência ao ambiente:
   {
     "provider": {
       "bayle": {
         "npm": "@ai-sdk/openai-compatible",
         "name": "Bayle",
         "options": {
           "baseURL": "https://api.bayle.ai",
           "apiKey": "{env:BAYLE_API_KEY}"
         },
         "models": {
           "MODEL_ID": { "name": "MODEL_ID" }
         }
       }
     }
   }
4. Verifique com uma execução real:
   opencode run -m bayle/MODEL_ID "Responda apenas a palavra pronto e não altere nada."

Regras:
1. A base URL é https://api.bayle.ai exatamente como está escrita. Não acrescente nenhum caminho a ela.
2. Leia a key da variável de ambiente BAYLE_API_KEY. Nunca escreva a key em um arquivo que você criar, em um comando, em um commit nem no chat. Onde a ferramenta guarda a key na própria tela de configurações, me diga onde colar. Se BAYLE_API_KEY não estiver definida, pare e peça que eu crie uma key em https://chat.bayle.ai/developers e a exporte.
3. Pegue os ids de modelo só de GET https://api.bayle.ai/models (sem key). Nunca chute um.
4. Termine com uma requisição de teste de verdade, me mostre o resultado e liste os arquivos que você alterou.
Janela do terminal
npm install -g opencode-ai

No macOS e no Linux, o Homebrew também serve: brew install anomalyco/tap/opencode. A documentação oficial lista os outros métodos.

Ainda não tem uma chave da Bayle?Obter chave de API

Defina a key:

Janela do terminal
export BAYLE_API_KEY="your-key"

Adicione a Bayle como provedor no opencode.json, no seu projeto ou em ~/.config/opencode/opencode.json:

{
"provider": {
"bayle": {
"npm": "@ai-sdk/openai-compatible",
"name": "Bayle",
"options": {
"baseURL": "https://api.bayle.ai",
"apiKey": "{env:BAYLE_API_KEY}"
},
"models": {
"MODEL_ID": { "name": "MODEL_ID" }
}
}
}
}

Depois escolha o modelo com /models dentro do OpenCode, ou rode um prompt direto:

Janela do terminal
opencode run -m bayle/MODEL_ID "Explain this repository's layout"
  • O pacote acrescenta /chat/completions ao baseURL.
  • Use @ai-sdk/openai-compatible, não @ai-sdk/openai. O segundo chama a Responses API da OpenAI, que a Bayle não serve.
  • {env:BAYLE_API_KEY} lê a key do ambiente, então o arquivo não guarda nenhum segredo.

Um agente de código precisa de chamadas de ferramenta. Liste os modelos que têm suporte a elas e os otimizados para código:

Janela do terminal
curl -s "https://api.bayle.ai/models?type=text" \
| jq -r '.data[] | select(.model_spec.capabilities.supportsFunctionCalling) | .id'
curl -s "https://api.bayle.ai/models?type=text" \
| jq -r '.data[] | select(.model_spec.capabilities.optimizedForCode) | .id'

Adicione em models cada um que você quiser usar.