DokumentationThreads und Runs

Ihre Assistenten

Threads und Runs

Ein Thread hält eine Konversation mit einem Assistenten fest. Jede Frage startet darin einen Run, den Sie bis zur Antwort verfolgen.

Auf dieser Seite
  1. Eine Konversationsrunde
  2. Den Run verfolgen
  3. Ebenfalls verfügbar
  4. Einen Run einstellen
  5. Limits

Eine Konversationsrunde

  1. Einen Thread eröffnen

    POST /v1/thread Mit der ID des Assistenten.

  2. Die Frage stellen

    POST /v1/thread/{id}/messages Die Nachricht der Person.

  3. Den Run starten

    POST /v1/thread/{id}/runs Der Assistent bearbeitet diese Nachricht. Die Antwort enthält die ID des Runs.

# 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"}'

Den Run verfolgen

Fragen Sie den Run ab, bis er endet. Ist er abgeschlossen, steht die Antwort in output.

StatusBedeutung
queuedWartet auf einen freien Worker
in_progressDer Assistent arbeitet
completedAbgeschlossen, die Antwort ist bereit
failedDurch einen Fehler abgebrochen, beschrieben in error
canceledVor dem Ende gestoppt
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"))
Antwort
{
  "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
}

Ebenfalls verfügbar

GET /v1/thread/{id}/messages Die Nachrichten des Threads, bis zu 400 pro Seite.

GET /v1/run/{id}/stream Die Antwort als Server-Sent Events, während sie geschrieben wird.

POST /v1/runs/{id}/stop Stoppt einen Run.

GET /v1/threads Die Threads der Person, filterbar nach Assistent.

Einen Run einstellen

modelOverrideText
Das Modell nur für diesen Run: flash oder max.
reasoning_effortText
Der Aufwand fürs Schlussfolgern: none, low, medium oder high.
maxStepsGanzzahl
Die maximale Anzahl Schritte des Runs, von 1 bis 500.

Limits

  • 20 Runs pro Minute und Person
  • 600 Anfragen pro Minute für die übrigen Routen
  • Die Anzahl Runs pro Tag richtet sich nach dem Plan des Arbeitsbereichs