Aufgebaut und wieder abgebaut: ein Tag mit Buzz

Wir haben Jack Dorseys Agenten-Chat lokal aufgesetzt, zum Laufen gebracht und am selben Abend wieder entfernt. Der Grund war nicht die Software — und die lehrreichste Stunde kam ganz am Schluss.

Am 21. Juli hat Block, die Firma von Jack Dorsey, Buzz veröffentlicht: einen Team-Chat, in dem KI-Agenten keine Integrationen sind, sondern Mitglieder. Neun Tage später lief er in unserem Labor — mit einem Sprachmodell auf eigener Hardware und ohne eine einzige Verbindung nach draußen. Am selben Abend haben wir ihn wieder abgebaut.

Das klingt nach einem Verriss. Ist es nicht. Der Grund lag nicht an der Software, und die lehrreichste Stunde kam ganz zum Schluss.

Was Buzz ist

Buzz sieht aus wie Slack, ist unter der Haube aber etwas anderes. Es läuft auf Nostr, einem offenen Protokoll: Jede Nachricht, jede Reaktion, jeder Workflow-Schritt ist ein kryptografisch signiertes Ereignis. Der Server — „Relay" genannt — ist die Quelle der Wahrheit, besitzt deine Identität aber nicht. Die liegt als Schlüsselpaar bei dir.

Daraus folgt das eigentlich Interessante: Ein Agent bekommt dasselbe wie ein Mensch. Ein eigenes Schlüsselpaar, eigene Kanal-Mitgliedschaften, einen eigenen Prüfpfad. Man lädt ihn in einen Kanal ein wie einen Kollegen und erwähnt ihn mit @.

Was uns überzeugt hat

Agenten als Mitglieder, nicht als Bots. Ein Bot-Token gehört einer Anwendung; ein Schlüsselpaar gehört einer Identität. Wer wissen will, was ein Agent getan hat, liest signierte Ereignisse statt Anwendungsprotokolle.

Personas als Dateien. Ein Agent wird als Markdown-Datei mit YAML-Kopf definiert — Name, Modell, Kanäle, Werkzeuge — und der Rumpf ist sein Charakter. Verteilbar über ein Git-Repository, mit festgehaltenem Commit.

Bemerkenswert ehrliche Dokumentation. Die Projektunterlagen trennen „funktioniert heute" von „wird gerade verdrahtet". In einer Datei über fehlgeschlagene Begrüßungsabläufe steht der Satz: „Die Fakten schmücken; die Timer entscheiden." — eine schonungslose Selbstkritik am eigenen Design. Das liest man selten.

Und der Sicherheits-Check fiel sauber aus: keine Telemetrie-Bibliotheken, leere Update-Endpunkte, im Betrieb null ausgehende Verbindungen des Servers. Alle externen Adressen im Code hängen an Funktionen, die man aktiv wählt.

Woran es für uns scheiterte

Nicht an Fehlern, sondern an einer Zweckverschiebung. Unsere Anforderung lautete: eine Web-Oberfläche, in der sich Agenten und ihre Werkzeuge konfigurieren lassen, alles auf dem Server, der Arbeitsplatz nur als Zugang.

Buzz erfüllt davon zwei Punkte nicht — und zwar strukturell, nicht als Lücke:

Es gibt keinen Web-Client und keinen in Sicht. Die Desktop-Anwendung ist zwar im Kern eine Web-App, aber tief in ihre Rust-Hülle verwoben: Schlüsselspeicher, Server-Verbindung, Signierung, lokale Datenhaltung und das Ausführen der Agenten liegen allesamt dort. Eine Browser-Variante wäre ein Neuschreiben, kein Portieren.

Werkzeuge lassen sich nicht nachrüsten. Für die von uns genutzte Agenten-Laufzeit übergibt Buzz beim Sitzungsstart eine fest leere Werkzeugliste — und überschreibt damit auch das, was der Nutzer an anderer Stelle konfiguriert hat. Ein Eingabefeld dafür existiert nicht.

Das ist kein Mangel, sondern eine andere Produktidee. Buzz ist ein Team-Chat, in dem Agenten Kollegen sind. Wir brauchten einen Arbeitsplatz mit Agenten und Werkzeugen. Beides ist legitim; es passte nur nicht zusammen.

Der stumme Agent

Der lehrreichste Teil kam, bevor die Entscheidung fiel.

Nach Stunden lief jedes einzelne Glied der Kette nachweislich: das Sprachmodell, der Übersetzer davor, die Agenten-Laufzeit, der Server, das Kommandozeilenwerkzeug. Trotzdem blieb unser Assistent stumm. Er setzte ein Gelesen-Zeichen, nahm es Sekunden später zurück, und im Raum erschien nie etwas. Der Text flackerte kurz in einer Statuszeile auf und war wieder weg.

Vierunddreißig Durchläufe, keine einzige veröffentlichte Nachricht. Keine Fehlermeldung. Nirgends.

Die Ursache stand in der Grundanweisung, die Buzz jedem Agenten mitgibt: Er soll seine Antwort über ein mitgeliefertes Kommandozeilenwerkzeug verschicken. Sprechen ist dort ein Werkzeugaufruf, keine Textausgabe — und einen Rückfallweg gibt es nicht. Ein großes Cloud-Modell befolgt das zuverlässig. Unser lokales Modell antwortete stattdessen in Prosa. Die landete nirgendwo.

Behoben hat es ein einziger zusätzlicher Absatz: „Sprechen heißt hier: Nachricht senden. Reiner Text verpufft." Danach sprach er sofort.

Was wir daraus lernen

1. Explizit schlägt implizit. Nicht die Modellgröße entschied, sondern ob die Anweisung ausgesprochen war. Dieselbe Erfahrung hatten wir bei unserem Tool-Calling-Projekt, wo die Trefferquote eines kleinen Modells von 37 auf 91 Prozent stieg — allein durch eine prüfbare Wissensbasis, ohne einen Trainingsschritt. Ein dreimal größeres Modell schnitt ungeerdet schlechter ab. Zwei unabhängige Projekte, derselbe Befund.

2. Fremde Plattformen sind für Cloud-Modelle geschrieben. Ihre Anweisungen setzen Modelle voraus, die zwischen den Zeilen lesen. Lokale Modelle brauchen den ausgesprochenen Satz. Das ist kein Mangel — das ist die Integrationsarbeit, die man einplanen muss, wenn man Software einsetzt, die für andere Voraussetzungen entworfen wurde.

3. Bei langen Ketten testet man in der Mitte. Wir haben Hypothese für Hypothese von hinten abgeräumt und dabei Stunden verloren. Der Test, der es entschied — die Agenten-Laufzeit einmal außerhalb der Plattform aufrufen —, hätte am Anfang gehört und dauerte eine Sekunde. Halbieren statt abklappern.

4. Anforderungen vor Werkzeugen. Unsere eigentliche Anforderungsliste stand erst am Ende des Tages klar auf dem Papier — nachdem wir schon aufgebaut hatten. Hätten wir sie vorher formuliert, wäre in zwanzig Minuten Recherche klar gewesen, dass es nicht passt. Der Aufbau war trotzdem nicht umsonst: Container, Absicherung und die Lehren oben bleiben. Aber die Reihenfolge war falsch herum.

5. Abbauen gehört dazu. Wir haben am selben Abend alles rückstandslos entfernt — Container, Reverse-Proxy-Einträge, Firewall-Regeln, Boot-Reihenfolge. Was bleibt, ist eine dokumentierte Notiz mit den Befunden. Eine Evaluierung, die man nicht wieder aufräumt, wird zur Altlast, die in einem halben Jahr niemand mehr einordnen kann.

Buzz ist vor Version 1.0, die Architektur ist durchdacht und die Dokumentation ehrlicher als bei den meisten. Wer einen Team-Chat sucht, in dem Agenten als Kollegen mitarbeiten, sollte es sich ansehen. Wir suchten etwas anderes — und das zu merken, hat einen Tag gekostet und sich gelohnt.

Zurück zur Übersicht