Zum Hauptinhalt springen
2026-09-10EntwicklungslogKI-AgentArchitektur

Einen lauffähigen Agenten zerlegen: Ein Monat, in dem PureLab das Fundament wechselte

Im Juli haben wir im Produktprozess die erste Generation des Assistenten fertiggestellt. Im August ließen wir die alte Engine zum Vergleich der Ergebnisse bestehen; nachdem der Entwurf mehr als dreißig harte Entscheidungen enthielt, wurde das gesamte Dokument verworfen. Im folgenden Monat bauten wir keine Kompatibilität für den alten Pfad und migrierten keine Historie, sondern lösten die Unterhaltung aus dem Produktprozess heraus.

Einen lauffähigen Agenten zerlegen: Ein Monat, in dem PureLab das Fundament wechselte

Im August-Monatsbericht stand ein Satz: Diese Version des Assistenten wird zunächst nicht freigeschaltet.

Das war keine Nachlässigkeit. Die erste Generation des Agenten konnte damals auf der Organisieren-Seite bereits Gespräche führen, Titel suchen und Vorschauen erzeugen; festgefahren war das Fundament. Weitere Funktionen darauf zu stapeln, hätte Orchestrierung, Sitzungen, Schlüssel und das Zurückschreiben von Musik dauerhaft in demselben Prozess festgeschweißt. Das zweite Produkt hätte dieselbe Arbeit erneut gebraucht. Wir entschieden uns, die lauffähige Version abzubauen und durch eine Laufzeit zu ersetzen, die eingebettet, geprüft und gegen Abstürze isoliert werden kann.

Dieser Wechsel war schwieriger, als ein Chatfeld von Grund auf zu schreiben.

🛠 Die erste Generation lief bereits – und genau damit begannen die Schwierigkeiten

Die Version aus dem Juli war kein Prototyp. Sie war ein vollständiger, in den PureLab-Prozess eingebetteter Assistent: Streaming über mehrere Runden, Sitzungen auf der Platte, Abbrechen und eine serielle Sperre, ein vom Nutzer bereitgestellter Modellschlüssel sowie Bibliothekssuche und Tag-Vorschauen; das Zurückschreiben lief weiterhin durch das produktspezifische Bestätigungstor. Die Domänensicherheit war eine Stärke – das Modell konnte Dateien nicht direkt ändern, Pfade wurden anonymisiert, und die Tarif-Gates konnten nicht umgangen werden, nur weil der Weg über die Unterhaltung führte.

Das Problem war nicht, ob es sprechen konnte, sondern seine Form.

Orchestrierung, Ereigniskanal, Sitzungstabelle, Schlüsselentsiegelung und Werkzeugaufrufe lagen vollständig im Produktprozess. Die Oberfläche kannte nur diesen einen Ereignisstrom. Sobald die Bibliothek wechselte, die Leiste umgeschaltet wurde oder zwei Generierungen kollidierten, musste die Zustandsmaschine sowohl im Frontend als auch im Backend jeweils einmal implementiert werden. Noch problematischer: Wenn das nächste Desktop-Produkt ebenfalls einen Assistenten bräuchte, würde das bedeuten, einen weiteren Host zu kopieren. Das wäre keine Einbettung, sondern jede App würde ihren eigenen Agenten unterhalten.

Wir hatten durchaus versucht, den alten zu behalten und einen neuen anzuschließen.

🚧 Der schwierigere Umweg: Zwei Engines für den Ergebnisvergleich behalten, den Entwurf auf viertausend Zeilen anwachsen lassen – und dann alles verwerfen

Anfang August gab es einen Weg, der zunächst stabiler aussah: In der rechten Seitenleiste sollten „Klassische KI“ und „Intelligenter Assistent“ gleichzeitig erscheinen. Den alten Kern behielten wir zunächst ausschließlich als Referenz, um beim Anschluss an die neue Basis einen Maßstab für den Ergebnisvergleich zu haben. Während der neue isolierte Prozess schrittweise Windows-Kompatibilität, Paketierung und den Schlüsselkanal ergänzte, wollten wir die Qualität der Modellausgaben über die alte Engine überprüfen.

Auf dem Papier hieß das ein stabiler Übergang, aber sobald es im Design stand, wurde es zur Katastrophe.

Um diesen „Vergleich“ aufrechtzuerhalten, durften die beiden Sätze von Unterhaltungsbefehlen nicht vermischt werden, die beiden Sitzungsbücher konnten nicht miteinander abgeglichen werden, und derselbe Schlüssel musste zugleich der Orchestrierung im Prozess und dem isolierten Prozess zugeführt werden. Noch kritischer: Der Schlüssel durfte weder in Umgebungsvariablen noch in Konfigurationsdateien geschrieben werden. Vorschau, Bestätigung, Zurückschreiben und Rollback mussten weiterhin über die produktspezifische Sicherheitskette laufen, während der neue Kern keine beliebigen Dateirechte besitzen durfte. Unter Windows war der isolierte Prozess damals ausdrücklich gesperrt; der Einstieg musste dennoch bestehen bleiben, die Texte verständlich sein und die Oberfläche durfte weder leer bleiben noch abstürzen.

Der für den Ergebnisvergleich entworfene Doppel-Einstieg häufte über dreißig harte Entscheidungen an; der Haupttext überschritt viertausend Zeilen. Bevor wir überhaupt mit der Umsetzung begannen, wussten wir: Das war kein Vergleich, sondern die gleichzeitige Pflege zweier Assistenten, zweier Bücher und zweier Fehlerdomänen. Jeder Gedanke daran, „die alten Sitzungen kompatibel zu halten“, würde beide Seiten dauerhaft verriegeln.

Am 13. August wurde das gesamte Dokument verworfen.

Der neue Vertrag bestand nur aus wenigen Sätzen, doch jeder war teuer: Das Kit setzt vollständig auf neuen Code, neue Befehle und einen neuen Ereigniskanal. Keine Kompatibilität für den alten Pfad, kein Abgleich, keine Migration der Historie, keine gemeinsamen Tabellen. Die „Vergleichsmission“ des alten Agenten war damit unmittelbar beendet. Beim Löschen entfernten wir nur den alten Produkteinstieg, nicht den neuen Vertrag.

Das bedeutet, dass Nutzer keinen Einstieg „frühere Chatverläufe übernehmen“ sehen. Das fehlt nicht; es ist Absicht. Alte Sitzungen in die neue Laufzeit zu migrieren, wirkt auf den ersten Blick rücksichtsvoll, bindet in Wirklichkeit jedoch zwei Lebenszyklen für immer aneinander. Diesen Zins können wir uns nicht leisten.

⛰️ Die Berge, die beim Wechsel der Basis gleichzeitig bewegt werden mussten

Das Verwerfen war nur die Erlaubnis. Die eigentliche Arbeit bestand darin, die „Chatfunktion im Produkt“ in drei Schichten zu zerlegen und sie innerhalb eines Monats an PureLab anzuschließen.

  • 📦 Der erste Berg ist der Prozess: Die Modellschleife darf sich die Absturzdomäne nicht länger mit der Organisieren-Seite, dem Zurückschreiben und der Analyse teilen. Die Unterhaltung läuft in einem isolierten Prozess; das Produkt startet ihn nur, überwacht ihn und beendet ihn im Fehlerfall. Wenn der isolierte Prozess abstürzt, müssen Bibliothek und Tag-Pipeline weiterlaufen. Umgekehrt darf das Produkt dem Modell niemals ein allgemeines Terminal, ein beliebiges Dateisystem oder externe Werkzeuge übergeben; die Schreibrechte für die Musikbibliothek gehören nicht dem Assistenten.
  • 🔌 Der zweite Berg ist das Protokoll: Die Oberfläche darf nicht mit dem Sitzungsprotokoll auf niedriger Ebene sprechen; das Produkt darf in seiner Hülle nicht selbst eine Runde „Prompt senden, Ereignisse abhören, Historie zusammensetzen“ schreiben. Dazwischen muss ein stabiles Produktprotokoll stehen: senden, stoppen, Sitzungen auflisten, wiederherstellen, Kanal konfigurieren. Der Transport kann über Desktop-Befehle erfolgen; das Protokoll selbst gehört nicht zu einer einzelnen App. Das zweite Produkt muss ein Panel einhängen, die Identität der aktuellen Bibliothek übergeben und Domänenfähigkeiten registrieren, statt den Host noch einmal zu implementieren.
  • 🔑 Der dritte Berg ist der Schlüssel: Der Modellschlüssel des Nutzers bleibt im Produkt versiegelt. Im Datenträgerbereich und in den Umgebungsvariablen des isolierten Prozesses darf dieser Schlüssel nicht auftauchen. Die Anfrage kehrt aus dem isolierten Prozess über den lokalen Loopback zurück; der Produktprozess entsiegelt den Schlüssel kurzzeitig, leitet die Anfrage an den vom Nutzer eingetragenen Endpunkt weiter und verwirft ihn anschließend. Eine Kopie der Datenbankdatei kann den Chiffretext möglicherweise weiterhin wiederherstellen – das ist ein bekanntes Risiko. Wir haben nicht so getan, als wäre es bereits durch einen System-Schlüsselbund gelöst.
  • 🛠 Der vierte Berg sind die Domänenwerkzeuge: Der Assistent kann die aktuell autorisierte Bibliothek durchsuchen, Titel lesen sowie Umbenennungen und Tag-Patches in der Vorschau anzeigen; er kann auch Entwürfe erzeugen. Er darf jedoch kein Zurückschreiben, keine Umbenennung, keine Pipeline und keine Analyse starten. Der Geschäftsablauf muss so aussehen: zunächst 1 bis 5 Titel in der Vorschau prüfen, bei passender Stichprobe höchstens 50 Entwürfe erzeugen, woraufhin der Arbeitsbereich den Dialog zum Zurückschreiben öffnet; erst wenn Sie auf Apply klicken, werden Dateien verändert. Das Modell darf keine Pfade erfinden, nicht verlangen, dass Sie die interne Kennung der Bibliothek angeben, und erst recht nicht behaupten, „es bereits geändert zu haben“.
  • 🚀 Der fünfte Berg ist die plattformübergreifende Paketierung: Derselbe Vertrag; macOS muss die Sandbox-Signierung bestehen, während der isolierte Prozess unter Windows zeitweise vollständig nicht verfügbar war und nur „Auf diesem System derzeit nicht verfügbar“ angezeigt werden konnte. Erst im September brachte Windows das Home-Verzeichnis des isolierten Prozesses, den Fähigkeits-Schalter und die Debug / Release-Verzeichnisse in Einklang. Bei einem Agenten in Desktop-Software liegt die Hälfte der Arbeit nicht in der Unterhaltung, sondern darin, dass er sich installieren lässt, startet und das Hauptprogramm nicht zum Absturz bringt.

Diese fünf Berge mussten gemeinsam bewegt werden. Erst Gesprächsfähigkeit und später Sicherheit zu bauen – oder erst Sicherheit und später Windows – hätte den alten Einstieg während der Vergleichsphase zurückgebracht. Das Recht, ihn zurückzubringen, haben wir ebenfalls gelöscht.

⚙️ Wofür dieser Monat tatsächlich draufging

Von Mitte August bis zum 10. September stand im Kalender „Anbindung“. In den Tagen steckte jedoch eine Kette von Grenzfällen, die niemandem Ruhe ließ:

  • Die Verflechtung von Kanal und Zustandsmaschine: In den Einstellungen musste es einen für Menschen auffindbaren Einstieg „KI-Assistent“ geben. Ohne Konfiguration darf das Panel nicht den Eindruck erwecken, es sei bereits bereit; die Gesprächsspalte zeigt standardmäßig einen englischen Leerzustand, worauf das Produkt „Zu den Einstellungen“ einfügt und die Person zur Einstellungsseite führt; auch interne Fehlercodes dürfen nicht beliebig auf der Oberfläche landen. Beim Ändern der Endpunktadresse musste der Schlüssel zeitweise erneut übermittelt werden. Später erlaubten wir den Fall, den echte Menschen erwarten: Der Schlüssel ist noch vorhanden, nur Adresse oder Modell werden geändert. Das sind keine Textprobleme, sondern die Bindung der Kanal-Zustandsmaschine an die Schlüsselentsiegelung.
  • Sitzungsverwaltung, schwieriger als ein Chatfeld: Eine neu angelegte Sitzung darf nicht von „die letzte nicht leere Sitzung wiederherstellen“ überschrieben werden. Beim Wechsel in eine andere Bibliothek muss die Sitzungsliste mitwechseln, ohne Vermischung; schließt man die rechte Seitenleiste und öffnet sie wieder, sollte sie innerhalb desselben Laufs die Anzeige ergänzen, statt die Unterhaltung wie eine Schreibmaschine erneut abzuspielen; erst nach dem Schließen und Neustarten der Software wird eine kalte Wiederherstellung durchgeführt. Beim Weg- und Zurückschalten ging sogar einmal Historie verloren; später änderten wir das so, dass je Sitzung gemerkt wird, welche bereits projizierten Ereignisse angezeigt wurden. Das Löschen einer Sitzung muss zugleich die Sitzung auf der unteren Ebene schließen und das Verzeichnis auf dem Datenträger entfernen; außerdem darf niemand während einer laufenden Generierung versehentlich darauf klicken.
  • Der äußerst zermürbende Zurückschreibemechanismus: Das Bestätigungstor des alten Agenten war richtig; die neue Basis darf nicht weicher werden, nur weil sich der Transport geändert hat. Im Chat wird nicht mehr gefragt „Dieses Werkzeug zulassen“ – bereits genehmigte Abfragen lässt der Host passieren. Erst Anfang September fassten wir „Parameter ausfüllen → Vorschau mit kleiner Stichprobe → Entwürfe erzeugen → Sie klicken auf Apply“ als Produkt-Event zusammen; die Bestätigung für Dateiänderungen bleibt im Dialog zum Zurückschreiben und nicht in einem Chat-Popup. Für Umbenennungen gibt es keinen Patch; zunächst wird nur ein Pfadvergleich erzeugt, den Sie im Operationsbereich prüfen und anschließend anwenden. Jeder Satz „Der Assistent hat die Dateien bereits für Sie geändert“ ist unter diesem Vertrag ein Bug.
  • Die Eigenständigkeit des Panels und der Kompromiss bei der Einbettung: Das Panel muss selbst wie ein Arbeitsbereich wirken, nicht wie eine Demo. Markdown unterstützt nur Überschriften und Listen, keine Syntaxhervorhebung; Streaming-Ausgabe, Fehler und Abbruch werden über denselben Renderer dargestellt. Im Panel sind die Texte fest auf Englisch codiert; das Produkt kann nur diesen einen Satz für den Einstellungs-Einstieg ändern – einer der Preise für die Einbettung über drei Repositories. Es ist rechts auf der Organisieren-Seite eingebettet und wurde erst kürzlich an den unteren Rand verschoben, damit es nicht mit Extrahieren, Ersetzen und Pipeline um dieselbe Blickachse konkurriert.

Keines dieser Dinge konnte einzeln ausgeliefert werden. Eine Protokolländerung erforderte Änderungen an Host, Panel und Produktadapter auf allen drei Seiten. Eine ausgelassene Seite, und das Ergebnis lautet: „Manchmal funktioniert die Unterhaltung, manchmal geht Historie verloren, manchmal wird der Schlüssel an den falschen Ort gesendet.“

👀 Was Sie jetzt im Arbeitsbereich sehen

Das Produkt ist inzwischen auf 6.0 aktualisiert. Ganz rechts auf der Organisieren-Seite ist der KI-Einstieg am unteren Ende der Aktivitätsleiste verankert. Nach dem Öffnen erscheint ein vollständiger Gesprächsarbeitsbereich: mehrere Sitzungen, wiederherstellbar und jederzeit abbrechbar. Im Vergleich zum August-Monatsbericht für 5.0 ist der Einstieg nun dauerhaft vorhanden; dieser Artikel stellt nicht dar, dass diese Version bereits im Store veröffentlicht wurde.

  • Flexible Konfiguration: Gehen Sie zunächst zu den Einstellungen und tragen Sie Ihren eigenen Endpunkt, Ihr Modell und Ihren Schlüssel ein. Wir binden die Unterhaltung nicht fest an einen einzelnen Cloud-Anbieter und fallen bei fehlender Konfiguration auch nicht still auf ein eingebautes Modell zurück.
  • Bewusst begrenzte Domänenfähigkeiten: Nach der Konfiguration können Sie mit der aktuell geöffneten Bibliothek sprechen. Beispielsweise lässt sich eine Umbenennung nach Interpret und Album vorschauen oder zunächst ein kleiner Stapel Tag-Entwürfe prüfen. Der Assistent kann suchen, Vorschauen anzeigen und Entwürfe erzeugen; ob Dateien geändert werden, entscheiden weiterhin Sie im Dialog zum Zurückschreiben oder in der Umbenennungszuordnung. Die im August veröffentlichte Tag-Pipeline ist weiterhin vorhanden; der Assistent drückt nicht für Sie auf „Start“.
  • Konsequent eingehaltene Grenzen: Analysen, Cover, Liedtexte und die netzwerkgestützte Vervollständigung von Metadaten bleiben ihm in dieser Runde weiterhin verwehrt. Nicht, weil wir noch nicht daran gedacht hätten, sondern weil die Grenzen zuerst feststehen müssen, bevor wir über größere Fähigkeiten sprechen.

💡 Die Kosten, die wir zu tragen bereit sind, und die noch offene Rechnung

Der teuerste Teil des Basiswechsels bestand nicht darin, neuen Code zu schreiben, sondern anzuerkennen, dass die erste Generation bereits lief und dass die für den Ergebnisvergleich beibehaltene Doppel-Engine zwar stabil wirkte – und den gesamten Entwurf trotzdem entschlossen zu verwerfen. Keine Historie zu migrieren, war gegenüber den alten Unterhaltungen unverantwortlich; sie zu migrieren, wäre gegenüber dem neuen Vertrag unverantwortlich gewesen. Wir entschieden uns für Letzteres und entfernten den alten Einstieg vollständig aus dem Produkt, damit zwei Assistenten nicht für immer im Vergleich bleiben.

Die offene Rechnung muss ebenfalls klar benannt werden. Den Kanal auf einen eigenen Relay-Dienst umzustellen, den Datenbank-Chiffretext durch einen System-Schlüsselbund zu ersetzen und die Windows-Auslieferungsform so unkompliziert wie unter macOS zu machen – all das liegt noch vor uns. Der Assistent ist derzeit ein Pilot im Arbeitsbereich und keineswegs der Werbesatz „Intelligenter Assistent offiziell gestartet“.

Im August haben wir die Tag-Aufbereitung zu einer Pipeline gebündelt, weil wiederholte Arbeit nicht davon abhängen sollte, dass Menschen die Seitenleiste manuell wechseln. In diesem Monat haben wir den Assistenten aus dem Produktprozess herausgelöst, weil Unterhaltung, Schlüssel und Zurückschreiben nicht dieselbe Fehlerdomäne teilen sollten. Beide Linien tun dasselbe: einer lokalen Musikbibliotheks-Workstation zu erlauben, Automatisierung zu wagen und vor dem Ändern von Dateien dennoch anzuhalten.

Erst wenn die neue Basis steht, können wir davon sprechen, dass der Assistent Ihnen beim Organisieren wirklich hilft.