Kalli's way north

Unter Aufsicht bauen, unbeaufsichtigt laufen lassen

Im September hat eine KI-Sicherheitsschicht verhindert, dass ein Agent meine Serverarbeit erledigt, während ich weg war. Sie hatte recht, wie ein Job zeigte, der am selben Tag unbeaufsichtigt lief.

Gegen eins, am 16. September, musste ich den Laptop mitten in einem Umbau zuklappen: ein Spiegel auf Yavin*, meinem Heimserver, damit Handy und Tablet die PDFs hinter meinen Notizen öffnen können. Die letzten Schritte brauchten Administratorrechte; ich bat Claude, sie an einen Hintergrund-Agenten zu übergeben.

Die Sicherheitsschicht in Claudes Werkzeugen (ein Klassifikator, der prüft, was ein Agent gleich tun will) lehnte ab. Claude nahm sudo (Administratorrechte) aus der Anfrage heraus und wurde erneut abgewiesen. Meine Notizen halten beide fest – und keinen Versuch, sie zu umgehen.

Worum es bei der Ablehnung ging

Die Schicht weist privilegierte Arbeit ab, bei der niemand zusehen oder eingreifen kann. Am Abend, mit mir dabei, liefen dieselben Befehle in vierzig Minuten einzeln durch, und aus dem Job wurde ein systemd-Timer (der Linux-Planer), der stündlich ganz ohne Agent läuft. Am selben Tag kam die Regel ins Regelwerk, mit einem eigenen Zusatz: erst das Muster erkennen und mit dem Plan beginnen, statt viermal zu scheitern.

Der Job, der wirklich unbeaufsichtigt lief

Am selben Tag durchsuchte ein Skript, das eine andere Claude-Sitzung zurückgelassen hatte, mein kDrive – aus einem temporären Ordner, ohne Zeitlimit, mit zwölf parallelen Threads. Jede Anfrage kam mit „too many requests“ zurück. In 3 Std. 10 Min. protokollierte es 67.251 dieser Fehler, erzeugte eine Datei von zwei Bytes und hielt das Laufwerk für jeden anderen Job gedrosselt, auch für den neuen Spiegel.

Zweimal schob Claude die Drosselung auf den ersten Download des Spiegels. Auf meine Nachfrage prüfte es gründlich und fand den Crawler. Nach dem Stopp erholte sich das Laufwerk binnen etwa einer Minute.

Was ich geändert habe

Zwei Tage später kam eine Regel in die kurze Liste, mit der jede Claude-Sitzung startet: Ein Job, der seine Sitzung überdauern soll, läuft aus einem versionierten Ordner, mit Zeitlimit und registriert bei meinem Long-Runner-Wächter – oder im Vordergrund. Der Wächter fragt ein lokales Modell, ob jeder Job noch vorankommt. Ein Hook blockiert heute die Form des Jobs vom 16. September; ein Suchlauf findet lange laufende Skripte, die niemand registriert hat.

Gebaut wird, wenn ich dabei bin; betrieben wird ein Programm mit Timer. Die Übergabe dazwischen ist eine Installation.
Gebaut wird, wenn ich dabei bin; betrieben wird ein Programm mit Timer. Die Übergabe dazwischen ist eine Installation.

Das Recht, das ich selbst vergeben hatte

Am 31. August, nach einem Tag, an dem ich jeden Root-Schritt selbst einfügen musste, hatte ich jeder Agenten-Sitzung auf Yavin* erlaubt, sudo ohne Nachfrage zu nutzen, auch den unbeaufsichtigten. Drei engere Varianten lehnte ich ab und setzte mich schriftlich über die Warnung des Werkzeugs hinweg. Die Plattform, nicht meine Konfiguration, hielt die Privilegien aus der unbeaufsichtigten Spur heraus.

Am selben Tag hatte ich gesagt, was ich eigentlich wollte: „a setup where most, if not all, can be done with user credentials and not with admin rights“. Am 2. Oktober kam eine kurze Liste benannter Befehle neben die alte Freigabe; am 9. Oktober, mit mir dabei, fiel die Pauschalfreigabe weg.

Was nachts läuft

Am Freitag, dem 2. Oktober, arbeitete Claude in einer Live-Sitzung in weniger als einer halben Stunde alle 51 Aufgaben ab, die überfällig oder an dem Tag fällig waren; in derselben Nacht wurde daraus ein Job. Um 23:00 schließt ein Headless-Lauf von Claude die Aufgaben des Tages ab, bereitet sie vor oder verschiebt sie und schickt mir für den Morgen eine Zusammenfassung über Telegram. Er darf Notizen bearbeiten und lesende Prüfungen ausführen, aber weder sudo nutzen noch löschen, committen oder pushen; nach 45 Minuten ist Schluss.

Eine Werktagsnacht auf dem Heimserver: vor allem Programme und ein paar Modellaufrufe, von denen keiner sudo nutzen kann. Stand 12. Oktober 2026.
Eine Werktagsnacht auf dem Heimserver: vor allem Programme und ein paar Modellaufrufe, von denen keiner sudo nutzen kann. Stand 12. Oktober 2026.

Das Muster

Bauen und Betreiben trennen; ein Programm mit Timer ist kein unbeaufsichtigter Agent. Bauen verlangt Urteil und Privilegien, also bin ich dabei; Betreiben heißt: ein Programm mit Timer oder ein Agent ohne Privilegien, mit Zeitlimit und einem Bericht, den ein Mensch liest. Die Grenze, auf die es mir ankommt, sind Privilegien, bei denen niemand zusieht.

Gelöst ist nicht alles: Hook und Suchlauf erreichen keine Cloud-Sitzungen, der wöchentliche Sonntagslauf hat ein Zeitlimit, aber noch keine Sperrliste, und der Job mit 3 Std. 10 Min. wurde durch eine Frage gefunden, nicht durch ein System.

Teil 9 von zwölf in der Serie darüber, wie ich mein AI OS gebaut habe. Der Anfang: das Vorwort.

Als Nächstes: Obsidian hat mir lange gute Dienste geleistet, bis mir eine Grenze nach der anderen gezeigt hat, dass ich mit ihnen nicht mehr leben muss.

* Rechnernamen sind geändert (hier: Yavin, mein Heimserver). Die echten stammen aus einer anderen Saga.


Anhang – für alle, die selbst bauen