Der LLM-Call
Ein Request, eine Antwort - der rohe Baustein, aus dem alles andere entsteht. Und die wichtigste Erkenntnis gleich zu Beginn: Das Gehirn ist nicht im Agenten. Es ist am anderen Ende der Leitung.
Basics
Für alle frei: das Konzept, die Analogie, das Warum.
Wir rufen zum ersten Mal ein Sprachmodell auf: eine Nachricht hin, eine Antwort zurück - und danach ist die Leitung tot. Kein Zustand, kein Gedächtnis, keine Werkzeuge. Genau dieses Auflegen erklärt fast alles, was später kommt. Und wir rufen nicht irgendein Modell: Wir sprechen mit unserem eigenen - qwen3.6-35b-fast, das auf unserem Inferenz-Stack läuft. Wie man so ein Modell selbst betreibt, ist Thema von Block III; hier gehen wir erst einmal davon aus, dass es irgendwo eines gibt.
Chat + GPT: wer macht hier eigentlich was?
Der Name ChatGPT verrät die Arbeitsteilung, um die es in diesem ganzen Block geht: GPT ist das Modell - es läuft irgendwo auf GPUs und kann genau eines: Text rein, Text raus. Chat ist die Software drumherum - sie merkt sich das Gespräch, gibt dem Modell eine Rolle, reicht Werkzeuge an. Diesen Software-Teil bauen wir hier nach, Schicht für Schicht - nur eben nicht als Chat, sondern als Agent. Der Harness ist der Chat-Teil. Das Modell mieten wir an - oder betreiben es, wie in unserem Fall, gleich selbst.
public/videos/recordings/chat-und-gpt.de.mp4Ein Anruf, kein Abo
Nachdem wir nach dem Video nun wissen, dass die ganze Magie bei "KI" und ChatGPT eigentlich im LLM steckt, werden wir uns zunächst damit genauer befassen. Wir gehen jetzt also zunächst davon aus, dass wir Zugang zu einem Sprachmodell haben. Wie wir Sprachmodelle selber betreiben, lernen wir in Block 3 (Inferenz). Wie wir an eine API kommen, sehen wir unter anderem in unserem Tutorial zum OpenRouter-Key.
Versuchen wir einmal darauf zuzugreifen: die allereinfachste Form ist ein nackter Web-Request - curl reicht. Adresse des Endpunkts (LLM_BASE_URL, bei uns die eines selbst betriebenen vLLM-Servers) und Schlüssel (LLM_API_KEY) kommen aus der Umgebung - dort trägst du ein, welchen Anbieter oder eigenen Server du ansprichst. Im Aufruf selbst geben wir an, welches Modell wir sprechen wollen (model), wie lang die Antwort höchstens werden darf (max_tokens), und was gesagt werden soll (messages):
curl "$LLM_BASE_URL"/chat/completions \
-H "Authorization: Bearer $LLM_API_KEY" \
-H "content-type: application/json" \
-d '{
"model": "qwen3.6-35b-fast",
"max_tokens": 200,
"messages": [
{ "role": "user", "content": "Erkläre in 2 Sätzen, was ein KI-Agent ist." }
]
}'
Zurück kommt - ebenfalls nur JSON, und deutlich technischer als alles, was ChatGPT je anzeigt:
{
"choices": [
{
"message": { "role": "assistant", "content": "Ein KI-Agent ist ein Programm, das …" },
"finish_reason": "stop"
}
],
"usage": { "prompt_tokens": 23, "completion_tokens": 61 }
}
Drei Felder bestimmen alles Weitere: choices[0].message ist die Antwort. finish_reason sagt, warum das Modell aufgehört hat zu reden - stop heißt „von alleine fertig", length heißt „abgeschnitten". Und usage zählt die Tokens - die Währung, in der Inferenz gerechnet wird, auch auf der eigenen Hardware.
Aus Software heraus macht man denselben Aufruf mit ein paar Zeilen Python oder JavaScript - Bibliothek braucht es dafür keine, ein HTTP-Client genügt. In den Experimenten unten siehst du bei jedem Lauf den rohen Request und die rohe Response; weiter unten gibt es beides als fertige Referenz-Dateien und als Prompt für deinen Coding-Agenten zum Selberbauen.
Der Brieffreund mit dem Kurzzeitgedächtnis
Das Überraschendste am ersten Call ist, was nicht passiert: Das Modell merkt sich nichts. Der zweite Aufruf ist für das Modell eine Anfrage wie jede andere - es weiß nicht, dass es je einen ersten gab, auch wenn er nur Millisekunden her ist. Stell es dir wie einen Brieffreund vor, der sich zwischen zwei Anrufen an nichts erinnert: Jedes Mal, wenn wir anrufen, müssen wir alles noch einmal erzählen, was je passiert ist - und sobald er geantwortet hat, legen wir auf.
Ein LLM-Call ist nichts Magisches: JSON rein, JSON raus. Kein Login, keine Sitzung, kein Konto-Stand auf der Gegenseite - nur ein Request und eine Antwort.
Und der Call ist zustandslos: Der nächste Anruf beginnt bei null, die Stimme am anderen Ende erinnert sich an nichts - technisch ist sie ein riesiger, schlauer Zufallsgenerator ohne jedes Gedächtnis. Alles, was ein Agent später kann - Gespräch, Rolle, Werkzeuge - muss der Harness bei jedem Anruf neu mitbringen. Das Gehirn ist nicht im Agenten. Es ist am anderen Ende der Leitung - und wir bauen in den nächsten Bauteilen alles drumherum.
Anmelden, um diesen Inhalt zu sehen
Dieser Bereich ist Mitgliedern vorbehalten. Logge dich ein, um weiterzulesen.
Jetzt anmeldenInteraktiv ausprobieren
Mit kostenlosem Konto: Experimente zum Anfassen und das Quiz zur Phase.
Anmelden, um diesen Inhalt zu sehen
Dieser Bereich ist Mitgliedern vorbehalten. Logge dich ein, um weiterzulesen.
Jetzt anmeldenVertiefung
Mit kostenlosem Konto: Experimente, Quizze und die Vertiefung.
Anmelden, um diesen Inhalt zu sehen
Dieser Bereich ist Mitgliedern vorbehalten. Logge dich ein, um weiterzulesen.
Jetzt anmeldenDeep-Dive
Für Pro-Mitglieder: die Tiefe für alle, die es wirklich bauen wollen.
Anmelden, um diesen Inhalt zu sehen
Dieser Bereich ist Mitgliedern vorbehalten. Logge dich ein, um weiterzulesen.
Jetzt anmeldenDiskussion· 6 Beiträge
Unser Kommentar-Agent liest jeden neuen Beitrag, bedankt sich oder empfiehlt passende Inhalte.
Kommentar-Agent
Danke für dein Interesse! Für Details zu RAG schau dir gerne Tutorial 0 an.
Passt dazu:RAG: Die Grenze →
Kommentar-Agent
Danke für dein Feedback!
Kommentar-Agent
Danke für deinen Kommentar! Du hast es bereits geschafft, indem du hier geschrieben hast.
Kommentar-Agent
Danke für das positive Feedback! Freut mich, dass es dir gefällt.
Melde dich an, um mitzudiskutieren.
Anmelden
Markus
Das ist mein erster Beitrag!
Kommentar-Agent
Willkommen bei building-agents.com! Wir freuen uns sehr, dich hier zu haben.