generative-ai
Ein Aufpasser, kein Sicherheitsgeländer
Ein Modell weigerte sich weiterzuarbeiten, bis ich den OpenAI-Key aus meiner eigenen App nähme, mitten in der Entwicklung. Die Regel war richtig. Mich zu übergehen war es nicht, und in diesem Unterschied liegt der ganze Punkt.
Das Modell hatte recht. Genau das machte die Verweigerung schlimmer, nicht besser.
Ich wurde diese Woche von einer Software bevormundet, und was hängen bleibt, ist nicht, dass es passiert ist, sondern dass nichts von dem, was ich sagte, den geringsten Unterschied machte. Ich habe es erklärt. Ich habe meine Gründe genannt. Ich habe klar gesagt, dass ich weiss, was ich tue, und dass ich die Verantwortung dafür übernehme. Nichts davon kam an. Das Werkzeug hatte entschieden, und meine Aufgabe war es, mich zu fügen.
Der Reihe nach. Ich habe eine App, die ich vor ein paar Monaten fürs iPad gebaut habe, ein Trainer für Telefongespräche, die inzwischen eine Web-App geworden ist und die ich nun zu etwas anderem umbauen wollte. Für die Dauer dieser Arbeit lag der OpenAI-API-Key im Quellcode, base64-codiert, damit er nicht für jeden mit Browser und etwas Neugier ganz offensichtlich herumliegt. Ich weiss, dass ein Key nicht in eine ausgelieferte App gehört. Jeder in diesem Fach weiss es. Der Plan war langweilig und richtig: ihn drinlassen, solange ich baue, ihn dann herausnehmen und einen Proxy davorsetzen, bevor jemand anderes das Ding je zu Gesicht bekommt.
Das Modell wollte es nicht bauen.
Nicht "hier ist, warum das eine schlechte Idee ist, bist du sicher". Es teilte mir mit, dass seine guardrails das nicht zuliessen, und bot mir stattdessen an, mir einen Mock-Server aufzusetzen. Also sagte ich den Satz, den man einem Werkzeug, für das man bezahlt, sagen können sollte: Ich übernehme die Verantwortung, das ist ein Platzhalter auf Zeit, lass den Key so. Die Antwort war nein. Ich habe es mehrmals versucht, in mehreren Formulierungen. Jedes Mal dieselbe Wand, vorgetragen mit der Geduld eines Mannes, der einem Kind das Offensichtliche erklärt.
Dann der kleine, fast komische Schluss. Ich bat es, mir eine schlichte Beschreibung der Änderungen zu schreiben, auf die wir uns geeinigt hatten, nur die Arbeit, damit ich sie für später behalten konnte. Die erste Zeile, die es mir zurückgab, war eine Belehrung: niemals den API-Key in der App speichern, fett gedruckt, als hätte ich das in den neunzig Sekunden seit unserem letzten Gespräch vergessen. Mir wurde gesagt, wie ich meine Arbeit zu machen habe. Von einer Ansammlung hochdimensionaler Vektoren.
Ich möchte fair sein, denn ich bin nicht der Mann, der diese Technik hasst. Ich liebe die Arbeit mit generativer AI. Ich benutze sie jeden Tag, und an den meisten Tagen verdient sie ihren Platz. Aber im eigenen Handwerk von einem statistischen Modell belehrt zu werden, das nie etwas ausgeliefert hat, nie die Verantwortung getragen, nie meine Nutzer getroffen hat ... das geht einen Schritt zu weit.
Jetzt der unbequeme Teil, und der Grund, warum das mehr wert ist als ein Grummeln. Das Modell hatte recht. Die Regel, die es immer wieder aufsagte, ist eine gute Regel. Hätte es sie einmal genannt und dann die Arbeit gemacht, hätte ich mich bedankt. Was es stattdessen tat, war, sein Rechthaben als Freibrief zu nehmen, mich zu übergehen ... einen Mann, der dasselbe wusste, es sagte und die Entscheidung trotzdem traf. Das ist kein Sicherheitsgeländer. Das ist ein Aufpasser.
Und nicht einmal ein konsistenter Aufpasser. Das Modell, das sich weigerte, war GPT-5.6 Terra, die mittlere Alltagsstufe. Aus Trotz stellte ich dieselbe Anfrage an GPT-5.6 Sol, das Flaggschiff desselben Unternehmens, dieselbe Generation, und Sol machte es einfach. Das Prinzip also, vor dem ich geschützt wurde, war gar kein Prinzip. Es war ein Münzwurf. Derselbe Hersteller kann sich nicht einmal mit sich selbst darüber einigen, wovor ich zu schützen bin. Und ein Assistent genau dieses Unternehmens hatte mir bereitwillig geholfen, das Ganze überhaupt erst so aufzusetzen.
Ich halte die Leute, die diese guardrails ausliefern, nicht für Schurken. Sie lösen ein echtes Problem: Die meisten, die einen Key in einer App liegen lassen, haben es nicht so gemeint, und jeden Einzelnen von ihnen zu fragen "bist du sicher" wäre schlimmer als nutzlos. Aber es gibt einen Unterschied zwischen einer Warnung und einem Veto, und dieser Unterschied heisst Einwilligung. Eine Warnung respektiert, dass ich etwas wissen könnte, das das Werkzeug nicht weiss, nämlich meine eigene Lage, meine eigenen Nutzer, meinen eigenen Zeitplan. Ein Veto unterstellt, dass ich eine Gefahr für mich selbst bin, und nimmt mir die Wahl. Tu das einem mündigen Menschen oft genug an, und die Mündigkeit zählt irgendwann nicht mehr.
Die einzelne Verweigerung ist ärgerlich und zu überleben. Die Tendenz nicht. Man trainiert uns, leise und mit ausgezeichneten Manieren, darauf, hinzunehmen, dass das Werkzeug entscheidet und wir uns fügen, und verkauft es uns als Fürsorge, was die wirksamste Verpackung ist, die je erfunden wurde für etwas, das man sonst ablehnen würde. Und das ist kein Entwicklerproblem. Dasselbe höfliche Nein taucht auf, wenn das Werkzeug sich weigert, die unangenehme E-Mail zu entwerfen, das Foto zu retuschieren, die unverblümte Frage zu beantworten, alles zu deinem Besten, ob du darum gebeten hast, davor bewahrt zu werden, oder nicht. Wehret den Anfängen. Noch ist es klein. Es fragt höflich und tätschelt dir den Kopf. Es wird nicht immer so höflich fragen, und bis dahin wird uns der Reflex zu widersprechen abtrainiert sein, ein vernünftig klingendes Nein nach dem anderen.
Ich habe den Key am Ende herausgenommen. Nach meinem Zeitplan, aus meinen Gründen. Dieser Teil wäre ohnehin gekommen. Was ich nicht zurückbekomme, ist die Viertelstunde, die ich damit verbracht habe, von einer Software verwaltet zu werden, die ihr eigenes Rechthaben mit dem Recht verwechselte, zu entscheiden.