DocumentaciónHilos y ejecuciones

Tus asistentes

Hilos y ejecuciones

Un hilo guarda una conversación con un asistente. Cada pregunta lanza en él una ejecución, que sigues hasta la respuesta.

En esta página
  1. Un turno de conversación
  2. Seguir la ejecución
  3. También disponible
  4. Ajustar una ejecución
  5. Límites

Un turno de conversación

  1. Abrir un hilo

    POST /v1/thread Con el identificador del asistente.

  2. Hacer la pregunta

    POST /v1/thread/{id}/messages El mensaje de la persona.

  3. Lanzar la ejecución

    POST /v1/thread/{id}/runs El asistente trabaja en este mensaje. La respuesta incluye el identificador de la ejecución.

# Open a thread with the assistant.
curl https://api.learnya.ai/v1/thread \
  -H "Authorization: Bearer $LEARNYA_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"assistantId": "ASSISTANT_ID", "title": "Ticket 42"}'

# Post the question.
curl https://api.learnya.ai/v1/thread/THREAD_ID/messages \
  -H "Authorization: Bearer $LEARNYA_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"content": "Where is my invoice?"}'

# Start the run on it. The answer carries the run id.
curl https://api.learnya.ai/v1/thread/THREAD_ID/runs \
  -H "Authorization: Bearer $LEARNYA_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"triggerMessageId": "MESSAGE_ID"}'

Seguir la ejecución

Consulta la ejecución hasta que termine. Cuando ha terminado, la respuesta está en output.

EstadoQué significa
queuedA la espera de un worker libre
in_progressEl asistente está trabajando
completedTerminada, la respuesta está lista
failedInterrumpida por un error, descrito en error
canceledDetenida antes de terminar
import time

while True:
    reply = requests.get(f"{API}/run/{run_id}", headers=HEADERS)
    run = reply.json()
    if run["status"] in ("completed", "failed", "canceled"):
        break
    time.sleep(1)

if run["status"] == "completed":
    print(run["output"][0]["text"])
else:
    print(run["status"], run.get("error"))
Respuesta
{
  "id": "c2a7e9d4-1b3f-4e6a-8c5d-9f0b2e4a6d18",
  "threadId": "8e4b1d6f-2c9a-4f7e-b3d5-0a6c8e2f4b91",
  "assistantId": "6f1c2b0e-3a4d-4c8e-9b7a-2d5e8f1a0c34",
  "status": "completed",
  "output": [
    { "type": "text", "text": "Your invoice 2026-114 was sent on 2 October." }
  ],
  "modelUsed": "learnya-flash",
  "error": null
}

También disponible

GET /v1/thread/{id}/messages Los mensajes del hilo, hasta 400 por página.

GET /v1/run/{id}/stream La respuesta como eventos del servidor, mientras se escribe.

POST /v1/runs/{id}/stop Detiene una ejecución.

GET /v1/threads Los hilos de la persona, filtrables por asistente.

Ajustar una ejecución

modelOverridetexto
El modelo solo para esta ejecución: flash o max.
reasoning_efforttexto
El esfuerzo de razonamiento: none, low, medium o high.
maxStepsentero
El número máximo de pasos de la ejecución, de 1 a 500.

Límites

  • 20 ejecuciones por minuto y por persona
  • 600 solicitudes por minuto para las demás rutas
  • El número de ejecuciones por día depende del plan del espacio de trabajo