Mastra
O Mastra é um framework em TypeScript para construir agentes e workflows. O model router dele aceita um endpoint OpenAI-compatible direto, sem pacote extra de provider.
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/sdks/mastra/
Objetivo: rodar os meus agentes do Mastra (https://mastra.ai) em um modelo da Bayle pelo model router.
1. Instale o pacote core se @mastra/core não estiver nas dependências do meu projeto:
npm install @mastra/core
2. Escolha um modelo:
curl -s "https://api.bayle.ai/models?type=text" | jq -r '.data[].id'
Me mostre a lista, deixe eu escolher e use esse id como MODEL_ID.
3. Na definição do meu agente, configure o modelo assim. `id` tem o formato provider/modelo: a parte antes da barra é só um rótulo, e o Mastra envia a parte depois dela como id do modelo. `url` é a URL base, não o endpoint completo. Não defina `api: 'responses'`; uma url personalizada usa chat completions, que é o que a Bayle serve:
import { Agent } from '@mastra/core/agent'
const agent = new Agent({
id: 'assistant',
name: 'Assistant',
instructions: 'You are a concise assistant.',
model: {
id: 'bayle/MODEL_ID',
url: 'https://api.bayle.ai',
apiKey: process.env.BAYLE_API_KEY,
},
})
Se eu já tiver agentes, mude só o campo `model` deles.
4. Verifique rodando:
const result = await agent.generate('In one sentence, what is an embedding?')
console.log(result.text)
e me mostre a saída.
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.Instalação
Seção intitulada “Instalação”npm install @mastra/coreVeja a documentação oficial para configurar um projeto.
Ainda não tem uma chave da Bayle?Obter chave de API
import { Agent } from '@mastra/core/agent'
const agent = new Agent({ id: 'assistant', name: 'Assistant', instructions: 'You are a concise assistant.', model: { id: 'bayle/MODEL_ID', url: 'https://api.bayle.ai', apiKey: process.env.BAYLE_API_KEY, },})
const result = await agent.generate('In one sentence, what is an embedding?')console.log(result.text)idtem o formatoprovider/modelo. A parte antes da barra é um rótulo que você escolhe; o Mastra envia só a parte depois dela como id do modelo.urlé a URL base, não o endpoint completo.- Uma
urlpersonalizada usa chat completions por padrão, que é o que a Bayle serve. Não definaapi: 'responses'.
Escolha um modelo
Seção intitulada “Escolha um modelo”curl -s "https://api.bayle.ai/models?type=text" | jq -r '.data[].id'