Layer 8Ehrlicher Tech-Support

Der Chatbot vergisst mitten im Gespräch – das Kontextfenster

Nach vielen Nachrichten fällt der Anfang aus dem Gespräch. Das Modell hat kein Gedächtnis: Es sieht nur, was gerade in sein Kontextfenster passt.

Aufwand:
ca. 15 Min.
Voraussetzung:
Zugriff auf den bisherigen Chatverlauf, Ein Textprogramm für eine Kurzfassung, Die Bereitschaft, ein neues Gespräch zu beginnen
Gilt für:
Chat-Dienste mit Sprachmodell, Programmierassistenten mit Chatfenster, KI-Funktionen in Office-Anwendungen, Eigene Anwendungen an einer Chat-Schnittstelle

Das Symptom

Am Anfang lief es hervorragend. Du hast erklärt, worum es geht, welche Regeln gelten und in welchem Format du die Antworten haben willst. Zwanzig Nachrichten später ignoriert der Chatbot das Format, nennt einen Namen falsch, den du selbst geliefert hast, und fragt nach einer Angabe, die weiter oben im selben Gespräch steht. Nichts stürzt ab, nichts meldet einen Fehler. Es wirkt, als hätte jemand in der Mitte des Gesprächs still den Gesprächspartner ausgetauscht.

Die „Layer 8“-Wahrheit

Genau das ist passiert – nur dass es bei jeder einzelnen Nachricht passiert. Zwischen zwei Fragen erinnert sich das Modell an nichts. Microsoft schreibt es in der eigenen Entwicklerdokumentation ohne jede Verklausulierung: Jeder Aufruf ist zustandslos, und das Modell merkt sich keine vorherigen Unterhaltungen, es sei denn, man fügt sie in das Kontextfenster ein. Das Gedächtnis, das du zu erleben glaubst, ist eine Fleißarbeit der Anwendung: Sie schickt bei jeder Frage das gesamte bisherige Transkript noch einmal mit. Deshalb wirkt es wie ein Gespräch.

Nur passt in diesen Umschlag eine feste Menge Text – das Kontextfenster, gemessen in Token. Und dort hinein müssen laut Hersteller alle gleichzeitig: die Systemvorgabe, der Unterhaltungsverlauf, jeder eingefügte Kontext und die Antwort, die das Modell erst noch schreiben soll. Der Verlauf wächst mit jeder Runde, der Platz nicht. Irgendwann muss die Anwendung etwas wegwerfen, und weggeworfen wird das Älteste – also ausgerechnet die Regeln, die du am Anfang aufgestellt hast. Das Modell erfährt davon nichts; für es sah das Gespräch immer schon so aus. Deshalb kommt keine Warnung, sondern nur eine Antwort, die sich nicht mehr an etwas hält, von dem sie nichts weiß.

Der Reflex, auf ein Modell mit größerem Fenster zu warten, geht ins Leere: Die Hersteller schreiben selbst, dass das Fenster immer endlich ist und man weiterhin in Fälle läuft, in denen mehr Daten bereitgestellt werden, als das Modell verarbeiten kann. Die Konsequenz ist unspektakulär und wirkt sofort: Wichtiges wiederholen statt es im Verlauf zu vermuten, lange Gespräche zusammenfassen und neu beginnen, ein Thema pro Faden. Wer diese drei Handgriffe hat, braucht kein größeres Fenster – und wer sie nicht hat, wird auch mit einem größeren Fenster irgendwann dieselbe Nachricht schreiben: dass der Chatbot doch eben noch alles wusste.

Die echte, verifizierte Lösung

1000 % faktenbasiert. Jeder Befehl ist real, jeder Pfad existiert. Schritt für Schritt:

  1. 1.

    Erkennen, dass es ein Kontextproblem ist

    Typisch sind drei Anzeichen: Die Regeln vom Gesprächsanfang gelten plötzlich nicht mehr, früher genannte Namen und Zahlen kommen falsch zurück, und das Modell fragt nach etwas, das längst dastand. Alle drei treten auf, nachdem das Gespräch lang geworden ist – nicht nach einer bestimmten Frage. Wenn dagegen schon die zweite Nachricht falsch beantwortet wird, ist es kein Kontextproblem, sondern ein Verständnisproblem.

  2. 2.

    Wichtiges nicht im Verlauf liegen lassen, sondern erneut mitgeben

    Alles, worauf es ankommt – die Rolle, das Format, die Randbedingungen, der Bezugstext – gehört in die aktuelle Nachricht, nicht nur an den Anfang des Gesprächs. Der Verlauf ist der unzuverlässigste Ort für eine wichtige Angabe, weil er als Erstes weggekürzt wird. Zwei wiederholte Sätze kosten wenige Sekunden und ersetzen die Hoffnung, dass der Anfang noch da ist.

  3. 3.

    Lange Gespräche zusammenfassen und neu anfangen

    Statt ein Gespräch über hundert Nachrichten zu schleppen: den Stand in zehn Zeilen selbst festhalten – Ziel, Randbedingungen, Zwischenergebnisse, offene Punkte –, ein neues Gespräch öffnen und diese zehn Zeilen als erste Nachricht einsetzen. Das ist dieselbe Technik, die die Anwendungen intern anwenden, nur mit dem Unterschied, dass du entscheidest, was überlebt.

  4. 4.

    Ein Thema pro Gespräch

    Jede abgeschlossene Nebendiskussion verbraucht dauerhaft Platz im Fenster, ohne noch etwas beizutragen. Wer Steuererklärung, Urlaubsplanung und ein Programmierproblem im selben Faden behandelt, füllt das Fenster mit Ballast und wundert sich, dass am Ende die Antworten schlechter werden. Neues Thema, neues Gespräch.

  5. 5.

    Große Anhänge nicht in den Verlauf kippen

    Ein eingefügtes Handbuch bleibt für den Rest des Gesprächs im Fenster stehen und verdrängt alles andere. Besser den benötigten Abschnitt einfügen statt das ganze Dokument, und nach der Auswertung ein frisches Gespräch beginnen. Wo eine Anwendung Dateien anhängt statt sie einzufügen, gilt eine andere Mechanik – dort liest das Modell ohnehin nur Ausschnitte.

  6. 6.

    Bei eigenen Anwendungen die Token zählen, statt zu hoffen

    Wer selbst gegen eine Chat-Schnittstelle programmiert, muss den Verlauf messen und kürzen, bevor die Grenze erreicht ist – sonst schlägt die Anfrage schlicht fehl. Microsoft zeigt dafür ein Beispiel, das die Token des Verlaufs zählt und die ältesten Nachrichten entfernt. Wichtig ist die Reihenfolge: erst zählen, dann senden. Ein Fehler, der erst beim Nutzer auffällt, ist teurer als eine Zeile Arithmetik.

Häufige Fragen (FAQ)

?Warum vergisst der Chatbot etwas, das ich vor zehn Minuten geschrieben habe?

Weil er es nie gespeichert hat. Microsoft beschreibt die Bauweise in der Entwicklerdokumentation zum Agent Framework ohne Umschweife: „Jeder API-Aufruf ist zustandslos. Das Modell merkt sich keine vorherigen Unterhaltungen, es sei denn, Sie fügen sie in das Kontextfenster ein.“ Was du für ein Gedächtnis hältst, ist eine Fleißarbeit der Anwendung: Sie schickt bei jeder neuen Frage den bisherigen Gesprächsverlauf noch einmal mit. In der Azure-Anleitung zur Chat-Vervollständigung steht derselbe Sachverhalt aus Sicht des Programmierers: „Jedes Mal, wenn Sie eine neue Frage stellen, sendet die Anforderung das laufende Unterhaltungstranskript zusammen mit der neuesten Frage. Da das Modell keinen Arbeitsspeicher hat, senden Sie ein aktualisiertes Transkript mit jeder Frage, oder das Modell verliert den Kontext früherer Fragen und Antworten.“ Fällt ein Teil des Transkripts weg, ist er für das Modell nie da gewesen.

?Was ist dieses Kontextfenster genau?

Eine harte Obergrenze für die Textmenge, die in einen einzelnen Aufruf hineinpasst – gemessen nicht in Wörtern, sondern in Token. Microsofts Grundlagentext dazu formuliert es so: „LLMs verfügen über eine maximale Anzahl von Token für Eingabe und Ausgabe. Dieser Grenzwert wird häufig als kombiniertes maximales Kontextfenster ausgedrückt, das sowohl Eingabe- als auch Ausgabetoken zusammen abdeckt.“ Entscheidend ist das Wort kombiniert. In dieselbe Grenze müssen laut Agent-Framework-Dokumentation nämlich alle Beteiligten passen: „Alles muss passen: Ihre Eingabeaufforderung, der Unterhaltungsverlauf, jeder eingefügte Kontext und die Token, die das Modell als Antwort generiert.“ Der Verlauf konkurriert also mit deiner Frage und mit der Antwort um denselben Platz. Je länger das Gespräch, desto weniger Raum bleibt für beides.

?Löst ein Modell mit größerem Kontextfenster das Problem?

Es verschiebt die Grenze, es hebt sie nicht auf. Dieselbe Dokumentation sagt beides in einem Satz: „Moderne Modelle bieten Kontextfenster von 4K bis über 1M-Token, aber das Kontextfenster ist immer endlich.“ Und in Microsofts Leitfaden zum Prompt Engineering steht die praktische Version davon: „Während die Eingabegröße bei jeder neuen Generation von GPT-Modellen zunimmt, können Sie weiterhin Szenarien treffen, die mehr Daten bereitstellen, als das Modell verarbeiten kann.“ Wer wartet, bis das Fenster groß genug ist, wartet auf etwas, das es der Bauart nach nicht gibt – und in der Zwischenzeit wächst der eigene Gesprächsverlauf schneller als jede Modellgeneration.

?Warum sagt der Chat nicht einfach Bescheid, dass er etwas weggelassen hat?

Weil das Kürzen nicht im Modell passiert, sondern davor. Die Azure-Anleitung schiebt die Aufgabe ausdrücklich dem Aufrufer zu: „Es liegt in Ihrer Verantwortung sicherzustellen, dass die Eingabeaufforderung und die Vervollständigung innerhalb des Token-Limits liegen.“ Das Codebeispiel dort tut genau das – es zählt die Token des Verlaufs und wirft die ältesten Nachrichten weg, bevor überhaupt jemand fragt. Für das Modell sieht ein gekürztes Gespräch aus wie ein kurzes Gespräch; es hat keine Möglichkeit zu bemerken, dass etwas fehlte, und deshalb auch keine, es zu melden. Ob eine bestimmte Anwendung dich darauf hinweist, ist eine Entscheidung ihres Herstellers und keine Eigenschaft der Technik.

Belege

Diese Seite ist gegen die folgenden Primärquellen geprüft – Hersteller, Standard oder Gesetzestext. Wer es nicht glaubt, muss es nicht: Da steht, wo es nachzulesen ist.

  1. [1]
    LLM-Grundlagen (Microsoft Agent Framework)

    learn.microsoft.com · abgerufen am

  2. [2]
    Grundlegendes zu Token (Microsoft, .NET-KI-Dokumentation)

    learn.microsoft.com · abgerufen am

  3. [3]
    Arbeiten mit Modellen zur Chat-Vervollständigung (Microsoft Foundry)

    learn.microsoft.com · abgerufen am

  4. [4]
    Techniken des Prompt Engineerings (Microsoft Foundry)

    learn.microsoft.com · abgerufen am

Zuletzt geprüft am . Dokumentation altert – ein Datum daneben ist der einzige ehrliche Umgang damit.

Auch zu finden unter

Verwandte Fehler

SWLästig429

KI-Dienst meldet 429: zu viele Anfragen

Zu viele Anfragen, Kapazität erschöpft, 429: Der KI-Dienst ist nicht ausgefallen, sondern gedeckelt. Wiederholen hilft nur bei einer der Ursachen.

SWLästig

Aus dem Gratis-Test wurde ein Abo

§ 312k BGB schreibt eine Kündigungsschaltfläche vor. Fehlt sie, ist der Vertrag jederzeit ohne Kündigungsfrist kündbar – das ist der schärfste Hebel.