DocumentaçãoCria o teu assistente
Os teus assistentes
Cria o teu assistente
Um assistente reúne instruções, um modelo e uma memória de conversa. Crias-o através da API e depois falas com ele em threads.
Acesso
As rotas dos assistentes agem em nome de uma pessoa. Exigem o seu token de acesso Learnya, obtido através de OAuth para a audiência https://api.learnya.ai. As chaves de API só dão acesso aos modelos.
Criar um assistente
POST /v1/assistant Cria o assistente e devolve o seu identificador.
curl https://api.learnya.ai/v1/assistant \
-H "Authorization: Bearer $LEARNYA_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Billing desk",
"model": "learnya-flash",
"instructions": "Answer billing questions plainly.",
"visibility": "private",
"contextWindow": { "mode": "last_n", "historyLimit": 20 }
}'import os
import requests
API = "https://api.learnya.ai/v1"
TOKEN = os.environ["LEARNYA_TOKEN"]
HEADERS = {"Authorization": f"Bearer {TOKEN}"}
assistant = requests.post(
f"{API}/assistant",
headers=HEADERS,
json={
"name": "Billing desk",
"model": "learnya-flash",
"instructions": "Answer billing questions plainly.",
"visibility": "private",
"contextWindow": {"mode": "last_n", "historyLimit": 20},
},
).json()
print(assistant["id"])const API = "https://api.learnya.ai/v1"
const headers = {
Authorization: `Bearer ${process.env.LEARNYA_TOKEN}`,
"Content-Type": "application/json",
}
const response = await fetch(`${API}/assistant`, {
method: "POST",
headers,
body: JSON.stringify({
name: "Billing desk",
model: "learnya-flash",
instructions: "Answer billing questions plainly.",
visibility: "private",
contextWindow: { mode: "last_n", historyLimit: 20 },
}),
})
const assistant = await response.json()
console.log(assistant.id)interface Assistant {
id: string
name: string
model: string
instructions?: string | null
visibility: "private" | "org" | "instance"
createdAt: string
}
const API = "https://api.learnya.ai/v1"
const headers = {
Authorization: `Bearer ${process.env.LEARNYA_TOKEN}`,
"Content-Type": "application/json",
}
const response = await fetch(`${API}/assistant`, {
method: "POST",
headers,
body: JSON.stringify({
name: "Billing desk",
model: "learnya-flash",
instructions: "Answer billing questions plainly.",
visibility: "private",
contextWindow: { mode: "last_n", historyLimit: 20 },
}),
})
const assistant = (await response.json()) as Assistant
console.log(assistant.id)Resposta
{
"id": "6f1c2b0e-3a4d-4c8e-9b7a-2d5e8f1a0c34",
"name": "Billing desk",
"instructions": "Answer billing questions plainly.",
"model": "learnya-flash",
"tools": [],
"responseFormat": { "type": "text" },
"contextWindow": { "mode": "last_n", "historyLimit": 20 },
"visibility": "private",
"ownerUserId": "0b9d4e2a-7c1f-4a6b-8e3d-5f2a9c7b1e08",
"createdAt": "2026-10-09T09:41:12.000Z"
}Os campos
nametextoobrigatório- O seu nome, tal como as pessoas o veem no Learnya.
modeltextoobrigatório- O modelo que o faz funcionar: learnya-flash ou learnya-max.
instructionstexto- As suas instruções, até 500 000 caracteres.
visibilitytexto- private reserva-o à pessoa que o cria. org e instance partilham-no com a organização ou com todo o espaço de trabalho, e exigem direitos de administração.
contextWindowobjeto- O que relê de uma thread: full, none, ou as últimas mensagens com last_n e historyLimit, de 1 a 500.
responseFormatobjeto- text, ou json com um esquema para ler a resposta no teu código.
Ler, alterar, eliminar
GET /v1/assistants Os assistentes que a pessoa pode usar.
GET /v1/assistant/{id} Um único assistente.
PUT /v1/assistant/{id} Altera os campos enviados, e apenas esses.
DELETE /v1/assistant/{id} Elimina o assistente.
Só a pessoa que o criou e os administradores do espaço de trabalho podem alterar ou eliminar um assistente.