KI & Kontext

„Persistiere das“: eine Information aus ChatGPT in einen dauerhaften Speicher herausholen

Fünf Tage später findest du den einen Absatz, auf den es ankam, in einem langen ChatGPT-Gespräch kaum wieder. Dieser Bericht zeigt, wie sich ein genauer Ausschnitt auf Zuruf aus dem Fluss herausholen lässt — mit einer schlichten eigenen Direktive und einem Google Sheet als Postausgang. Mit blockierter API, misslungenem Umweg, einer Lösung, die von 50 Sekunden auf zwei kommt, und einer Prüfung nach jedem Schreibvorgang.

Info

Ursprünglich auf Französisch verfasst. Von KI übersetzt — der Sinn wurde bewahrt, nicht der Stil.

Ich arbeite oft mehrere Tage lang im selben ChatGPT-Gespräch.

Wir diskutieren, wir formulieren um, wir verwerfen Spuren, und mitten in zig Nachrichten taucht endlich ein interessanter Absatz auf.

In diesem Moment möchte ich einfach nur sagen können:

Persistiere das.

Und dann weiterarbeiten.

Und fünf Tage später:

Hol mir alles wieder heraus, was ich persistiert habe.

Das klingt selbstverständlich.

Aber so funktioniert ChatGPT nicht wirklich.

Der Chat ist nicht das Gedächtnis von ChatGPT

Das ist wohl der Punkt, der am wenigsten verstanden wird.

Das in der Oberfläche angezeigte Gespräch kann vollständig sein. Ich kann die Nachrichten durchscrollen und wiederfinden, was wir uns drei Tage zuvor gesagt haben.

Aber das heißt nicht, dass ChatGPT beim Antworten ebenfalls über all diese Nachrichten Wort für Wort verfügt.

Man muss unterscheiden:

  • das Transkript, das in der Oberfläche aufbewahrt und angezeigt wird;
  • das, was das Modell für seine Antwort tatsächlich nutzen kann;
  • das Gedächtnis von ChatGPT, das nicht jedes Gespräch Wort für Wort behält.

OpenAI erklärt, dass das Gedächtnis bestimmte nützliche Elemente behält und nicht als lückenloser Speicher für alles Gesagte gelten darf.

Offizielle FAQ zum Gedächtnis von ChatGPT

Für mich ist das Transkript also vollständig.

ChatGPT dagegen hat die Stellen, die mich interessieren, nicht unbedingt Wort für Wort behalten.

Genau das aber brauche ich.

Wenn ich heute drei wichtige Absätze auswähle, will ich fünf Tage später zurückkommen und genau diese drei Absätze zurückbekommen.

„Bookmark das“ reicht nicht

Ich könnte schreiben:

Bookmark diesen Absatz.

Aber damit entsteht kein echtes, dauerhaftes Bookmark.

Ein paar Tage später findet ChatGPT vielleicht wieder, was ich ausgewählt hatte — vielleicht kann es mir das aber auch nicht Wort für Wort ausgeben. Für meinen Bedarf ist das nicht zuverlässig genug.

Ich will genau die Stellen wiederfinden, von denen ich entschieden habe, sie zu behalten.

Dieser Bedarf ist es, der eine externe Persistenz rechtfertigt.

Ich will nicht das ganze Gespräch sichern

Das Ziel ist gerade nicht, jede Nachricht automatisch zu kopieren.

Ein langes Gespräch enthält viel Zwischenmaterial:

  • Fragen;
  • Versuche;
  • Umformulierungen;
  • verworfene Spuren;
  • Antworten, die zehn Minuten später ersetzt wurden.

Ich will nur die wenigen Stücke aus dem Fluss herausholen, die etwas wert sind.

Zum Beispiel:

Persistiere unsere letzte Definition.

oder:

Persistiere das.

Die Entscheidung, etwas zu behalten, bleibt beim Menschen.

Erste Idee: eine API

Mein erster Reflex war klassisch.

Einen kleinen PHP-Dienst bauen, der Text entgegennimmt und ihn an eine Markdown-Datei anhängt.

Etwa so:

ChatGPT
   ↓
API
   ↓
Markdown

Ich habe also einen kleinen Remote Persistence Store entwickelt — genauer gesagt hat ihn Claude Code entwickelt.

Der Server konnte:

  • verschiedene Kontexte anlegen;
  • Inhalte hinzufügen;
  • das Markdown zurückgeben;
  • ein paar Informationen zum Zustand des Kontexts liefern.

Technisch funktionierte alles.

Das Problem lag woanders.

Mit ChatGPT Plus kann ich meine API nicht einfach aufrufen

Mit meinem ChatGPT-Plus-Abo für 20 $ im Monat kann ich ChatGPT nicht einfach bitten, irgendeine externe API aufzurufen.

ChatGPT kann eine API-URL selbst bauen und Parameter anhängen. Aber in bestimmten Fällen weigert sich das Web-Tool anschließend, sie aufzurufen, sobald die URL von ChatGPT verändert oder gebaut wurde. Das Problem ist also nicht, die URL zu bauen, sondern sie ausführen zu dürfen.

Ich wollte ChatGPT weiterhin ganz normal nutzen, unter anderem vom Telefon aus.

Also musste ein anderer Weg her.

Zweiter Versuch: tricksen

ChatGPT kann Webseiten besuchen.

Ich habe deshalb versucht, einen Schreibvorgang hinter etwas zu verstecken, das wie ein schlichter Seitenbesuch aussah.

Statt zu senden:

POST /persist

habe ich eine URL dieser Art gebaut:

https://mein-server.example/persist
?context=mein-kontext
&content=mein-text

Für ChatGPT sah die Anfrage schlicht so aus:

Besuche diese Webseite.

Für meinen Server so:

Nimm die Parameter und schreib sie auf die Festplatte.

Ich verwandelte also bewusst einen Schreibvorgang in ein vorgetäuschtes Lesen.

Besonders elegant war das nicht.

Für einen persönlichen Prototyp hätte es aber vollauf genügt.

Und auf der Serverseite funktionierte es.

  • Aus einem Browser heraus: kein Problem.
  • Mit curl: kein Problem.

Aber sobald ChatGPT den Inhalt unseres Gesprächs nehmen, daraus dynamisch diese neue URL bauen und dann die zugehörige Seite besuchen sollte, blockierten seine Navigationsschutzmechanismen den Vorgang.

Was letztlich ziemlich logisch ist.

Ich versuchte ja genau das: Inhalte automatisch aus dem Gespräch auf meinen eigenen Server herauszuholen, indem ich den Schreibvorgang als Besuch einer Webseite tarnte.

Schauen, was ChatGPT längst kann

Da habe ich die Frage gewechselt.

Statt zu fragen:

Wie bringe ich ChatGPT dazu, meinen Server aufzurufen?

habe ich gefragt:

Wo kann ChatGPT bereits schreiben?

In meinem Fall: Google Sheets.

Ich habe ein extrem einfaches Sheet angelegt:

created_at | context | content

Dann habe ich getestet:

Persistiere "AZERTY"

Und eine neue Zeile erschien:

2026-09-12T15:20:44+02:00 | Remote Persistence Store | AZERTY

Diesmal hatte der Text das Gespräch wirklich verlassen.

Er existierte unabhängig von ChatGPT.

Google Sheets als Postausgang

Meine ideale Architektur war das nicht.

Ursprünglich wollte ich:

ChatGPT → API → Markdown

Jetzt hatte ich:

ChatGPT → Google Sheets

Aber Google Sheets muss nicht mein endgültiger Speicher sein.

Es kann einfach die Rolle einer Outbox übernehmen.

Ein Postausgang, in den ChatGPT die Informationen legt, von denen ich entschieden habe, sie zu behalten.

Später kann ich daraus machen:

ChatGPT
   ↓
Google Sheets
   ↓
Skript
   ↓
Markdown
   ↓
Obsidian / Git / andere KI

Das wichtige Problem war gelöst: eine bestimmte Information aus dem Gespräch herausholen.

Erste Version: fast 50 Sekunden

Es funktionierte, aber es war grauenhaft langsam.

Ein schlichter Befehl:

Persistiere "test"

konnte fast 50 Sekunden brauchen, um drei Zellen zu schreiben.

Das Problem kam daher, dass ChatGPT jedes Mal fast alles neu entdeckte.

  • Es suchte die Datei.
  • Es holte ihre Metadaten.
  • Es prüfte den Reiter.
  • Es sah sich die Spalten an.
  • Es suchte, wohin es schreiben sollte.

Und erst danach fügte es die Daten hinzu.

Dabei änderte sich nichts davon zwischen zwei Aufrufen.

Nicht mehr suchen, was man schon kennt

Ich habe deshalb alle festen Informationen direkt in die Direktive geschrieben:

  • die Kennung des Spreadsheets;
  • die Kennung des Sheets;
  • den Namen des Reiters;
  • die drei Spalten;
  • ihre Bedeutung.

Und vor allem:

Such die Datei nicht. Lies ihre Metadaten nicht. Lies ihre Kopfzeilen nicht noch einmal.

Blieb noch zu bestimmen, wohin geschrieben wird.

Meine erste Lösung bestand darin, den neuen Eintrag immer in Zeile 2 einzufügen.

Das ging schnell, aber die Daten standen dann in umgekehrter Reihenfolge: die neuesten oben.

Google Sheets hat zum Glück einen Append-Mechanismus.

Die letzte Zeile muss man nicht mehr suchen.

Der Ablauf wird schlicht:

Persistieren
   ↓
Append
   ↓
Prüfung
   ↓
Antwort

In meinen Tests brauchen die Google-Aufrufe für den Schreibvorgang und das Nachlesen jetzt zusammen ein bis zwei Sekunden.

Die gesamte Antwortzeit von ChatGPT bleibt schwankend, aber von den fast 50 Sekunden der ersten Version sind wir sehr weit entfernt.

Das Problem war also gar nicht wirklich Google Sheets.

Das Problem war, dass die KI jedes Mal einen bereits bekannten Kontext neu entdeckte.

Prüfen, nachdem geschrieben wurde

Ich wollte auch nicht, dass ChatGPT mir einfach anzeigt:

Ist persistiert.

ohne zu wissen, was tatsächlich geschrieben wurde.

Ich habe deshalb eine Regel ergänzt.

Nach jedem Schreibvorgang muss ChatGPT den Eintrag nachlesen, den es gerade hinzugefügt hat.

Bei einem kurzen Text zeigt es an, was es wirklich nachgelesen hat:

Persistiert ✓

Kontext: Remote Persistence Store
Status: OK

Inhalt:
AZERTY

Bei einem sehr viel längeren Inhalt zeigt es nur eine getreue Zusammenfassung des nachgelesenen Inhalts.

Wichtig ist, dass die Bestätigung nach der Prüfung kommt.

Absicht
→ Schreibvorgang
→ Nachlesen
→ Prüfung
→ Bestätigung

„Persistiere“ in allen meinen Chats verfügbar machen

Diese ganze Bedienungsanleitung wollte ich natürlich nicht an den Anfang jedes neuen Gesprächs kleben.

Ich habe sie deshalb in die benutzerdefinierten Anweisungen von ChatGPT eingetragen.

Im Web:

Einstellungen
→ Personalisierung
→ Benutzerdefinierte Anweisungen

Außerdem muss man Google Drive mit ChatGPT verbinden, damit es auf das Sheet zugreifen kann.

Sind beide Elemente eingerichtet, kann ich ein neues Gespräch beginnen und direkt schreiben:

Persistiere unsere letzte Definition.

Die Direktive sagt ChatGPT dann, was das Verb Persistiere bedeutet und wohin der Inhalt geschickt wird.

Meine Direktive „PERSISTIERE“

Hier eine anonymisierte Fassung.

Die drei Werte zwischen <...> musst du durch die deines eigenen Google Sheets ersetzen. Du kannst ChatGPT bitten, sie zu finden — oder sogar das Google Sheet anzulegen.

DIREKTIVE „PERSISTIERE“

Wenn ich eine Anfrage mit „Persistiere“ beginne oder ausdrücklich darum bitte, eine Information zu persistieren, füge diese Information in das Google Sheet ein, das als Persistenz-Store eingerichtet ist.

GOOGLE SHEET

Spreadsheet ID: <SPREADSHEET_ID>

Sheet: <SHEET_NAME>

Sheet ID: <SHEET_ID>

Feste Struktur:

A = created_at
B = context
C = content

AUSLEGUNG

- „Persistiere xxx“ = xxx persistieren.
- „Persistiere unseren letzten Austausch“ = den relevanten Inhalt des letzten Austauschs persistieren.
- „Persistiere deine letzte Antwort“ = die letzte Antwort persistieren.
- „Persistiere diesen Text“ = den ausdrücklich gemeinten Text persistieren.
- „Persistiere in {Kontext} xxx“ = {Kontext} als context verwenden.
- Ist kein Kontext angegeben, einen kurzen, passenden Namen aus dem laufenden Thema ableiten.
- Keine Bestätigung erfragen, wenn die Anfrage klar ist.

SCHREIBVORGANG

1. created_at mit dem aktuellen Datum und der aktuellen Uhrzeit bestimmen.
2. Die bekannte Spreadsheet ID und das bekannte Sheet direkt verwenden.
3. Ein natives Append von Google Sheets verwenden.
4. Genau dies hinzufügen:

   created_at | context | content

OPTIMIERUNG

Bei einem Befehl „Persistiere“:

- die Datei nicht suchen;
- ihre Metadaten nicht lesen;
- ihre Kopfzeilen nicht noch einmal lesen;
- die letzte Zeile nicht suchen;
- ihre Struktur vor dem Schreibvorgang nicht analysieren;
- die bekannten Kennungen und die bekannte Struktur direkt verwenden.

Erst nach dem Schreibvorgang lesen.

PRÜFUNG

Nach dem Append:

1. Nur den hinzugefügten Eintrag nachlesen.
2. Kontext und Inhalt prüfen.
3. Die Persistenz erst nach dieser Prüfung bestätigen.

INHALT

- Den angeforderten Inhalt selbst persistieren.
- Ihn vor der Speicherung nicht zusammenfassen.
- Ihn nicht umformulieren oder korrigieren, außer auf ausdrückliche Bitte.
- Seine ursprüngliche Struktur so weit wie möglich erhalten.

ANTWORT

Bei kurzem Inhalt:

Persistiert ✓

Kontext: {context}
Status: OK

Inhalt:
{tatsächlich nachgelesener Inhalt}

Bei langem Inhalt:

Persistiert ✓

Kontext: {context}
Status: OK

Zusammenfassung des nachgelesenen Inhalts:
{getreue Zusammenfassung in wenigen Zeilen}

Die Zusammenfassung betrifft nur die Bestätigung.
Der gespeicherte Inhalt bleibt vollständig.

Bei einem Fehlschlag:

Persistenz fehlgeschlagen ✗

Kontext: {context}
Status: FEHLER

Problem:
{kurze Beschreibung des Fehlers}

PRIORITÄT

direktes Append → gezielte Prüfung → Antwort

Jeden nicht zwingend nötigen Vorgang in Google Drive oder Google Sheets vermeiden.

Das ist kein Gedächtnis für ChatGPT

Ich betrachte dieses Google Sheet nicht als „das Gedächtnis von ChatGPT“.

Es ist viel einfacher.

Es ist ein Ort außerhalb des Gesprächs, an dem ich entscheiden kann, dass ein Stück Gespräch es wert ist, behalten zu werden.

Während einer Diskussion:

wir suchen
→ wir testen
→ wir formulieren um
→ etwas wird interessant

In diesem Moment:

Persistiere das.

Das Stück verlässt den Fluss.

Es wird abrufbar, unabhängig davon, was ChatGPT in fünf Tagen noch im Kontext hat.

Vom Fluss zum Kapital

Technisch schreibt das alles am Ende drei Zellen in eine Tabelle.

Das ist nicht der interessante Teil.

Mich interessiert die Geste.

Ein Gespräch mit einer KI erzeugt enorm viel vorübergehende Information.

Nicht alles muss überleben.

Aber manches verdient es, vom Fluss in etwas Dauerhaftes überzugehen.

Ich will ChatGPT nicht bitten, sich alles zu merken.

Ich will ihm sagen können:

Das hier zählt.

Und dann:

Persistiere das.

Das Gespräch bleibt der Raum, in dem ich arbeite.

Was ich daraus herausziehe, kann anfangen, informationelles Kapital zu werden.