Kategorie: Einblicke

Blogbeiträge und Gedanken

  • Dokumentation über mehrere Repositories automatisieren mit GitHub Agentic Workflows

    Dokumentation über mehrere Repositories automatisieren mit GitHub Agentic Workflows

    82 Doku-Pull-Requests, im Median 44,8 Stunden nach dem zugehörigen Produkt-PR gemerged, jeder reviewed von dem Ingenieur, der das Feature ausgeliefert hat: Das ist die Bilanz des Aspire-Teams für die Versionen 13.3 und 13.4. Zehn Entwickler, die Tools für verteilte Anwendungen bauen, hatten zuvor dasselbe Problem wie fast jedes Team – die Dokumentation lief dem Code hinterher. Ein Doku-Autor saß vor einem geschlossenen Pull Request und rekonstruierte, was sich geändert hatte, während dessen Autor längst weitergezogen war. Erschien die Doku endlich, war das Feature oft mehrfach veröffentlicht. Die Wende kam ohne neue Stellen und ohne Prozess-Umschulung, mit GitHub Agentic Workflows – und mit einer anderen Antwort auf die Frage, wer die Doku eigentlich schreibt.

    Das Problem: Cross-Repo-Dokumentation ist der harte Teil

    Das Produkt von Aspire lebt im Repository microsoft/aspire; die Doku-Website liegt in microsoft/aspire.dev – verschiedene Repos, verschiedene Deploy-Ziele, verschiedene Review-Ketten. Viele Teams automatisieren die Doku innerhalb eines Repos schnell. Aber wenn der Ort, an dem du die Doku schreibst, nicht der Ort ist, an dem der Code entsteht, wird es schwierig. Weitreichende Tokens für das gesamte Repo sind nicht mehr zeitgemäß. Eine verantwortungsvolle Sicherheitsstrategie – auch die des Aspire-Teams – schränkt sie ein. Das ist gut so, aber es wird zum Engpass, wenn die Doku woanders entstehen muss.

    Der Standard-Workflow war jahrelang der gleiche: Ein Ingenieur bringt ein Feature in microsoft/aspire unter. Wochen später bemerkt ein Doku-Autor das Feature. Der Autor öffnet einen Pull Request, liest den Diff und kontaktiert den Ingenieur, um zu klären, was sich geändert hat. Der Ingenieur ist schon beim nächsten Feature, erinnert sich vage und antwortet mit einem halben Bild. Der Dokumentationsentwurf wird veröffentlicht – manchmal gegen eine Release, die längst draußen ist. Das nennt sich Reverse-Engineering-Steuer. Das Team brauchte eine Automatisierung, die Repos überbrückt, ohne einem Agenten einen Schreibzugriff auf alles zu geben. GitHub Agentic Workflows wurde zur Antwort.

    Die Lösung: GitHub Agentic Workflows im Überblick

    GitHub Agentic Workflows ist ein Projekt des GitHub-Next-Teams. Eine treffende Beschreibung: „GitHub Actions, aber mit einem Modell als Work-Item-Verarbeiter und Schutzleisten, die eine Sicherheitsprüfung bestehen.“ Das ist vereinfacht, aber zutreffend. Der Workflow wird als einzelne Markdown-Datei geschrieben – zum Beispiel .github/workflows/mein-workflow.md. Oben steht YAML-ähnliches Frontmatter, darunter eine englischsprachige Anweisung. Mit GitHub Agentic Workflows compile wird daraus eine normale GitHub-Action generiert, die als .lock.yml daneben liegt.

    Zur Laufzeit arbeitet ein Agent gegen die Anweisung mit einem begrenzten Werkzeugsatz. Der Agent schreibt nicht direkt in GitHub. Er gibt eine Absicht aus – ein JSON-Blob, das beschreibt, welche Pull Requests, Issues oder Kommentare er erstellen möchte. Ein separater, eng begrenzter Job – der Safe-Outputs-Handler – setzt diese Absicht mit einer eigenen GitHub-App um. Der Agent bekommt nur Lesezugriff und eine Anweisung. Schreibvorgänge laufen über eine kleine, verifizierbare Pipeline mit expliziten Allowlisten. Die Sicherheitsabteilung nickt, und das Team kann loslegen.

    Eine Randnotiz: Das Aspire-Team liebt es, wenn Werkzeuge, mit denen man baut, selbst mit den gleichen Werkzeugen gebaut wurden. Die Doku von GitHub Agentic Workflows basiert auf Astro und Starlight – genauso wie die Aspire-Doku. Starlight ist mit einem breiten Plugin-Ökosystem ausgestattet, das das Team nutzt. Das schafft eine echte Verbundenheit: Das Werkzeug zur Doku-Automatisierung und die Doku, die automatisiert wird, teilen sich dieselbe Grundlage. Das ist praktisch, weil das Mermaid-Sequenzdiagramm im nächsten Abschnitt in beiden Welten identisch gerendert wird.

    Der Workflow im Detail: Vom Merge bis zur Doku

    Der Workflow heißt pr-docs-check.md und lebt im Repository microsoft/aspire. Er startet bei einem geschlossenen Pull Request, und zwar nur wenn er tatsächlich gemerged wurde. Bevor der Agent aufwacht, führt ein deterministischer Bash-Abschnitt mehrere Schritte aus: Die Ziel-Branch auflösen, basierend auf dem Milestone des Pull Requests – zum Beispiel 13.4 wird zu release/13.4 im Doku-Repo. Falls kein Milestone gesetzt ist, wird der Milestone eines verknüpften Issues verwendet, geparst aus dem PR-Body. Wenn alles fehlschlägt, wird auf main gefallen. Diese Logik stellt sicher, dass die Doku am richtigen Ort landet, ohne dass der Agent raten muss.

    Der Agent bekommt den Diff, scannt verknüpfte Issues und entscheidet, ob eine Doku nötig ist. Wenn ja, erstellt er den Inhalt direkt in einem ausgecheckten Arbeitsverzeichnis des Doku-Repos, folgt dabei den bestehenden Doc-Writer-Regeln – Stimme, MDX-Konventionen, Starlight-Komponenten. Am Ende gibt er einen Safe-Output create_pull_request aus. Der übernimmt dann: Der PR bekommt den Titel-Präfix [docs], ein Label, wird als Entwurf erstellt – niemals automatisch gemerged –, die Basis-Branch ist auf main oder release/ beschränkt, das Ziel-Repo ist microsoft/aspire.dev, und als Reviewer wird der Engineer eingesetzt, der das Feature im Ursprungs-PR freigegeben hat. Die Person, die das Feature kennt, prüft die Doku. Zusätzlich postet ein Begleit-Job einen Kommentar mit dem Doku-PR-Link im Quell-PR und räumt alte Kommentare auf.

    Der Engineer, der gerade auf Merge geklickt hat, bekommt also innerhalb weniger Minuten die Nachricht: „Hier ist der Doku-Entwurf. Siehst du ihn dir an?“ Das ist die Umkehrung des bisherigen Prozesses: Früher musste der Doku-Autor den Engineer jagen, jetzt kommt die Doku zum Engineer.

    Sicherheit durch klare Grenzen: Der Safe-Outputs-Ansatz

    Die Sicherheitslösung beruht auf einem kleinen, trockenen Stück Frontmatter. Präzise formuliert: Der Agent erhält einen GitHub-App-Token, dessen Installation auf genau zwei Repositories beschränkt ist – das Produkt-Repo und das Doku-Repo. Kein anderes Repository in der Organisation ist erreichbar. Er kann Pull Requests nur gegen main oder release/ eröffnen. AGENTS.md und Abhängigkeitsmanifeste sind durch Policy blockiert. Falls das Erstellen des Pull Requests fehlschlägt – etwa wegen eines Netzwerkproblems oder Konflikts – wird automatisch stattdessen ein Issue erstellt, damit nichts verloren geht.

    Das hat die Sicherheitsprüfung überzeugt. Das Denken des Agents ist unscharf, aber die Aktionsfläche ist klar definiert. Die Trennung zwischen Absicht und Ausführung ist ein eleganter Weg, um das Risiko von KI-Fehlern zu begrenzen. Der Agent kann vorschlagen, aber nicht handeln. Das Handeln ist durch Regeln festgezurrt, die der Mensch kontrolliert.

    Die Zahlen: Was die Automatisierung brachte

    Das Team hat die Ergebnisse über ein 30-Tage-Fenster gemessen, von Mai bis Juni 2026 – das entspricht dem Ende von Aspire 13.3 und dem Beginn von 13.4. In dieser Zeit wurden 396 Produkt-Pull-Requests im Aspire-Repo gemerged, verteilt auf verschiedene Branches. Der Workflow lief bei jedem einzelnen PR – insgesamt 396 Mal. Daraus entstanden 82 Doku-Pull-Requests im Doku-Repo, und alle wurden gemerged: 100 Prozent Erfolgsquote. Keiner wurde geschlossen, keiner blieb offen. Die Ziel-Branches verteilten sich auf release/13.3, release/13.4 und main. Die Zeit bis zum Merge betrug im Median 44,8 Stunden – bei einem Viertel unter 24 Stunden, bei 96 Prozent unter 7 Tagen.

    Ein genauerer Blick zeigt: 396 Läufe zu 82 Pull Requests ist kein Fehler. Der Workflow läuft bei jedem Merge, aber viele Änderungen betreffen interne Refactorings, Testfixes oder Abhängigkeits-Updates ohne sichtbaren Effekt für Nutzer. Dass der Agent 300 Mal „keine Doku nötig“ sagt, ist ein Feature, kein Bug. Die 100-prozentige Merge-Rate zeigt, dass die Auswahl des Agents richtig ist. Die verschärfte Prompt-Version nach der ersten Fehlalarm-Phase zahlt sich aus.

    Was funktionierte und was anfangs nicht klappte

    Einige Entscheidungen erwiesen sich als Gold wert. Die Zuordnung von Milestone zu Release-Branch war die größte Hebelwirkung: Entwickler setzen Milestones ohnehin auf PRs und Issues, und so war die Ziel-Branch-Routing automatisch korrekt. Der Ansatz „Entwurf machen, SME als Reviewer“ war ebenfalls effektiv: Der Agent mergt nie, der Engineer bestätigt die Doku. Die eng begrenzte GitHub-App pro Workflow erlaubte eine Sicherheitsfreigabe und sorgte für einfaches Schlüssel-Management. Das Blockieren geschützter Dateien war ein Muss.

    Aber es gab auch anfängliche Probleme. Der „Ist das Doku-würdig?“-Filter des Agents war zu großzügig: Er erstellte Entwürfe für rein interne Änderungen wie CI-Tweaks oder Logging-Refactorings – etwa 13 Prozent der ersten 69 PRs wurden deshalb geschlossen. Das Team verfeinerte die Definition von „benutzersichtbarer Änderung“ und fügte explizite Negativbeispiele hinzu. Ein weiteres Hindernis: Die Erstellung von Pull Requests über Repos hinweg verlangte ein gespiegeltes Checkout-Muster, das in der Doku nicht klar war. Das Team löste es, indem es das Doku-Repo zweimal auscheckte – einmal als aktuelles Arbeitsverzeichnis, einmal unter einem versteckten Ordner –, damit der Safe-Outputs-Handler das Ziel-Repo deterministisch findet. Große Diffs sprengten zudem das Prompt-Budget. Deshalb extrahiert ein Bash-Schritt vor dem Agenten die PR-Metadaten – verknüpfte Issues, Milestone, Basis-Branch – und gibt dem Agenten eine kompakte Struktur, statt einen riesigen Datenblock zu senden. Das ist das vorgesehene Muster des Frameworks und es funktioniert.

    Das Ergebnis ist eine Veränderung im Denken des Teams. Ein Feature gilt nicht mehr als fertig, wenn die Doku fehlt. Die Doku hängt nicht mehr wie eine Blechdose am Auto hinterher. Der Engineer-Review ist das Tor, der Bot erledigt das Tippen. Das ersetzt keine Doku-Autoren, es entlastet sie: Sie können sich auf narrative Seiten, Beispiele und konzeptionelle Erläuterungen konzentrieren, während der Bot die mechanischen Aktualisierungen übernimmt, die niemandem Spaß machen.

    Die Sicherheitsrichtlinien, die anfangs als Hindernis schienen, halfen dem Team, das System von Anfang an sicher zu designen. Starke Sicherheitsbedingungen machen Automatisierung vertrauenswürdiger. Wenn du ein Produkt in einem Repo entwickelst und die Doku in einem anderen pflegst – besonders innerhalb einer Sicherheitsgrenze –, schau dir GitHub Agentic Workflows an. Starte mit einem einzelnen Workflow wie pr-docs-check und miss, wie sich deine Zeit bis zur Doku verändert.

    Quelle: github.blog

  • Prime Agent: Wie ein selbstverbessernder Coding-Agent die Grenzen herkömmlicher Harnesses überwindet

    Prime Agent: Wie ein selbstverbessernder Coding-Agent die Grenzen herkömmlicher Harnesses überwindet

    Ein Coding-Agent arbeitet seit einer Stunde an einem Refactoring, das quer durch mehrere Module läuft. Dann ist sein Kontextfenster voll, und das Wissen der letzten vierzig Schritte verschwindet. Zurück bleibt ein halb fertiger Umbau und ein Entwickler, der alles noch einmal erklärt. Die Entwickler von Prime Agent haben genau dieses Problem zum Ausgangspunkt genommen. Ihr Ansatz: ein Coding-Agent, der sein eigenes Gerüst nicht nur benutzt, sondern es während der Arbeit aktiv umgestaltet und verbessert.

    Die Kernidee: Zwei Abstraktionen, die den Unterschied machen

    Prime Agent stützt sich auf zwei zentrale Abstraktionen: das Rekursive Sprachmodell (RLM) und den Continual Harness. Herkömmliche Agent-Harnesses wurden für ältere Modellgenerationen entworfen. Sie haben starre Tool-Schemata und feste Kontextkompression. Der Agent muss sich ständig gegen seine eigene Infrastruktur durchsetzen, statt sie zu nutzen. Das RLM dreht das um. Es behandelt den Kontext als Variable und die Delegation an Sub-Agenten als Funktionsaufrufe innerhalb einer REPL. Der Agent hat dadurch programmatischen Zugriff auf seine eigene Historie, seine Sub-Agenten und seine Tools. Er operiert direkt in seinem Kontext, ohne ihn zu verlieren. Der Continual Harness geht weiter. Er abstrahiert den Zustand des Harnesses – Prompts, Skills, Erinnerungen, Sub-Agenten – als Objekte, die der Agent selbst erstellen, lesen, aktualisieren und löschen kann (CRUD). Das bedeutet: Der Agent kann sein eigenes Werkzeugset erweitern, verfeinern und anpassen, basierend auf dem, was er aus seiner eigenen Arbeit lernt. Ein statischer Werkzeugkasten wird so zu einem lebendigen Organismus.

    Architektur im Detail: Ein persistenter IPython-Kernel als einziges Tool

    Die technische Umsetzung ist konsequent. Bei Prime Agent ist der IPython-Kernel das einzige Tool, das dem Modell zur Verfügung steht. Alles andere – Sub-Agenten, Dateizugriff, Kompaktierung, selbst die eigene Steuerung – sind Funktionen, die innerhalb dieses Kernels aufgerufen werden. Das klingt minimalistisch. Es entpuppt sich als sinnvoller Schachzug. Denn so entsteht eine einheitliche Schnittstelle. Der Agent programmiert seine Aktionen, anstatt in einer rigiden JSON-Schema-Sprache gefangen zu sein. Ein Sub-Agent ist dann ein await rlm("Sub-Task") – ein Funktionsaufruf, der eine vollständige eigene Agenten-Session startet, mit eigenem Modell, eigenem IPython-Kernel und eigener Gesprächshistorie. Diese Sub-Agenten sind persistent. Du kannst ihnen später Nachrichten senden. Sie können sogar mit anderen Prime-Agent-Sessions direkt kommunizieren – über eine Agent-zu-Agent-Messaging-Infrastruktur, die über den Daemon läuft. Dieser Daemon ist ein Hintergrundprozess, der alle live Sessions verwaltet. Du kannst dich von einer Session ab- und wieder ankoppeln, ohne dass der Agent stoppt. Fällt ein Worker-Prozess ab, stellt der Daemon die Session aus den JSONL-Logs und dem Kernel-Snapshot wieder her. Die Agents View, erreichbar per Pfeil-links-Taste, zeigt dir alle laufenden, im Leerlauf befindlichen und inaktiven Sessions. Du kannst in jede hineinspringen, Nachrichten senden, Befehle wie /compact einplanen – das Ganze rekursiv bis hinunter zu den Sub-Agenten. Diese verschachtelte Navigation spart Speicher. Inaktive Sub-Agenten werden nach 30 Minuten aus dem RAM entfernt und bei Bedarf von der Festplatte geladen.

    Selbstverbesserung durch Continual Harness: Der Agent formt sich selbst

    Der Continual Harness erlaubt dem Agenten, seine eigenen Prompts, Skills, Erinnerungen und Sub-Agenten im laufenden Betrieb zu verändern. Das passiert über eine CRUD-Oberfläche, die direkt im IPython-Kernel als rlm.harness verfügbar ist. Der Agent kann jederzeit einen neuen Skill anlegen, eine Gedächtnisnotiz schreiben oder einen Prompt verfeinern. Alles wird auf der Festplatte gespeichert und überlebt Sitzungswechsel. Die /refine-Pipeline ist das Herzstück dieser Selbstverbesserung. Sie liest die eigene Trajektorie – also das, was versucht wurde und was dabei herauskam – und schlägt dann eine minimale CRUD-Änderung vor, die das Ergebnis verbessern würde. Das ist bewusst kein großes Umschreiben. Es ist ein gezielter, evidenzbasierter Eingriff. Die Planungsphase, also der LLM-Aufruf, der die Änderung vorschlägt, läuft im Hintergrund und blockiert die Unterhaltung nicht. Erst das Anwenden der Änderung – Schreiben auf die Festplatte und Neubauen des Systemprompts – dauert kurz und passiert an der nächsten Turn-Grenze. Das Basis-Systemprompt bleibt unantastbar. /refine verändert nur die äußere Harness-Schicht. Falls eine Änderung schlecht war, gibt es einen Rollback-Mechanismus, der vorherige Zustände per ID wiederherstellt. Der Agent kann sogar refine.run() direkt aufrufen, wenn er eine wiederholte Fehlerquelle oder eine wiederverwendbare Taktik entdeckt – nicht nur nach einem festen Zeitplan.

    Autonome Evaluierung: Wenn der Agent über Stunden hinweg arbeiten soll

    Für langfristige, unbeaufsichtigte Aufgaben hat Prime Agent einen speziellen Modus entwickelt. Drei Mechanismen greifen ineinander. Ein Ziel (Goal) definiert die übergeordnete Aufgabe, mit einem optionalen Token-Budget, das der Agent nicht überschreiten darf. Herzschläge (Heartbeats) sind Cron-artige Nachrichten, die in festen Intervallen eingespielt werden, um etwa den Fortschritt eines Sub-Agenten zu überwachen oder ein Training-Update abzurufen. Der Autonomous Mode selbst ist die Fortsetzungslogik, die verhindert, dass der Agent früh aufhört, nur weil ein Turn kein Ergebnis brachte. Zusammen ermöglichen diese Mechanismen eine über Stunden laufende Session, die durch ein klares Budget begrenzt und über die Agents View jederzeit beobachtbar ist. Ein Beispiel aus der Praxis: Für den ARC-AGI-3-Benchmark, der symbolisches Denken und das Lernen von Regeln in simulierten Welten misst, wurde Prime Agent mit mehreren Frontier-Modellen getestet. Der Agent läuft im Autonomous Mode, mit einem klaren Ziel und einem Token-Limit. Diese Kombination aus langfristiger Planung und Selbstverbesserung scheint prädestiniert dafür, die bisherigen Grenzen von Agent-Harnesses zu sprengen.

    Einordnung: Was Prime Agent für die Zukunft von Coding-Agenten bedeutet

    Prime Agent ist nicht einfach ein weiterer Coding-Agent. Es ist eine Plattform, die zeigt, wohin die Reise geht: Harnesses, die sich nicht mehr um die Einschränkungen älterer Modelle kümmern müssen, sondern die Fähigkeiten moderner Frontier-Modelle voll ausschöpfen. Die Idee, dass der Agent seine eigenen Werkzeuge programmatisch steuern und sogar weiterentwickeln kann, ist ein Paradigmenwechsel. Statt dass wir dem Agenten beibringen, mit unserem Werkzeugkasten zu arbeiten, bringt er sich selbst bei, seinen Werkzeugkasten zu optimieren. Das erinnert an den Schritt von einfachen Chatbots zu autonomen Code-Agenten. Die Frage ist nicht, ob dieser Ansatz kommt, sondern wie schnell er sich durchsetzt. Die offene Lizenzierung und die sofortige Kompatibilität mit existierenden Modellen senken die Einstiegshürde. Was bedeutet das konkret für dich? Du wirst in Zukunft weniger Zeit mit dem Füttern von Kontext und dem Feintuning von Prompts verbringen. Stattdessen beobachtest du, wie der Agent aus seinen Fehlern lernt, seine Strategie anpasst und über lange Strecken selbstständig arbeitet – ohne dass du ständig eingreifen musst. Das ist keine Zukunftsmusik. Prime Agent zeigt heute schon, wie es geht.

    Quelle: primeintellect.ai

  • GEM Training: Wie Meta die Effizienz seines Anzeigen-Foundation-Models verdoppelt hat

    GEM Training: Wie Meta die Effizienz seines Anzeigen-Foundation-Models verdoppelt hat

    Wenn du in deinem Instagram-Feed eine Anzeige siehst, die dich interessiert, hat ein neuronales Netzwerk in Echtzeit entschieden, welche Werbung du siehst. Meta nennt dieses Netzwerk „Generative Ads Recommendation Model“ (GEM). Es wird auf Tausenden GPUs trainiert und hat Billionen von Parametern. Bis vor kurzem war das Training ineffizient: Die GPUs waren nur zu etwa 10 Prozent ausgelastet. Meta-Ingenieure haben die Effizienz verdoppelt und den Trainingsumfang vervierfacht. Wie, erklären wir hier – ohne C++-Code, aber mit den wichtigen Details.

    Das Problem ist grundlegend: KI-Hardware und -Software sind auf große Sprachmodelle (LLMs) optimiert – auf gleichmäßige Sequenzen, dichte Matrizen, einfache Datenstrukturen. GEM sieht anders aus. Es verarbeitet Sequenzen stark variabler Länge – manche Nutzer haben 10 Interaktionen, andere 10.000. Es kombiniert spärliche Embedding-Tabellen mit dichten Netzwerken und reagiert empfindlich auf numerische Veränderungen. Dadurch bleiben GPU-Kerne unterfordert, ein Großteil der Rechenleistung ungenutzt. Die Meta-Ingenieure standen vor zwei Herausforderungen: die Auslastung einer einzelnen GPU erhöhen und das Training auf Tausende GPUs skalieren. Sie lösten das durch maßgeschneiderte Kerne, angepasste Präzision, Parallelisierung und Netzwerk-Topologie.

    Die zwei Hebel der Effizienz: Locale MFU und Scaling Ratio

    Um das Problem zu strukturieren, zerlegten die Forscher die Gesamteffizienz – gemessen als Model FLOPs Utilization (MFU) – in zwei Faktoren. Die lokale MFU zeigt, wie gut eine einzelne GPU ihre Recheneinheiten auslastet. Die Scaling Ratio zeigt, wie viel von dieser Leistung im verteilten Training erhalten bleibt. Erreichst du auf einer GPU 50 Prozent MFU, aber durch Kommunikation mit anderen GPUs bleibt nur die Hälfte übrig, hast du eine Scaling Ratio von 0,5 und eine effektive MFU von 25 Prozent.

    Diese Trennung erlaubt es, an beiden Hebeln zu drehen. Die lokale MFU optimieren neue Kernel und ultraniedrige Präzision. Die Scaling Ratio verbessern Parallelisierungsstrategien und die Anpassung an die Netzwerk-Hierarchie. Beide Ansätze greifen ineinander und erfordern tiefes Hardware-Verständnis – das nennt man Hardware-Software-Co-Design. Genau das setzten die Meta-Ingenieure für GEM um.

    Massgeschneiderte Kernel für Empfehlungsmodelle: Jagged Flash Attention

    Ein zentrales Problem beim Training mit variablen Sequenzlängen ist Rechenverschwendung durch Padding. Hat ein Beispiel 10 Tokens, ein anderes 10.000, werden alle auf die maximale Länge aufgefüllt. Das kostet bis zu 50 Prozent Rechenzeit. Die Lösung heißt Jagged Flash Attention (JFA) – ein Kernel, der direkt auf unregelmäßigen, „zerklüfteten“ Tensoren arbeitet, ohne sie aufzufüllen.

    JFA wurde in vier Generationen entwickelt. Die erste Version war langsamer als Padding. Durch Tricks steigerten die Entwickler die Performance deutlich. Eine wichtige Innovation: die teure Maskierung ersetzten sie durch eine Subtraktionsmethode. Statt ungültige Positionen mit -inf zu markieren – das verbraucht viele GPU-Instruktionen – maskieren sie Keys und Queries mit Null, was dank Tensor Memory Accelerator (TMA) nichts kostet. Die zusätzlichen Exponenten werden abgezogen. Das Ergebnis ist mathematisch identisch, aber schneller. Den Rückwärtsdurchlauf optimierten sie, indem sie auf Atomik-Operationen verzichteten und die Gradientenberechnung anders aufteilten. JFA v4 erreicht eine Verbesserung von 40 bis 140 Prozent gegenüber Version 2 und trägt wesentlich zur lokalen MFU bei.

    GDPA und BlockAttention: Effizienz für unterschiedliche Aufmerksamkeitsmuster

    Nicht nur die Sequenzlängen variieren, auch die Aufmerksamkeitsmechanismen. GEM verwendet Selbst-Aufmerksamkeit für Nutzerhistorie, Cross-Attention für die Interaktion zwischen Nutzern und Anzeigen und Pooled Multi-Head Attention (PMA), um lange Sequenzen zu komprimieren. Diese Muster haben verschiedene Formen: mal lange Queries mit kurzen Keys, mal umgekehrt. Standard-FlashAttention ist auf symmetrische, dichte Sequenzen ausgelegt und versagt bei unregelmäßigen Mustern – die GPU-Kerne bleiben unterfordert.

    Das Team entwickelte eine generalisierte Kernel-Familie namens Generalized Dot-Product Attention (GDPA), die alle Interaktionsmuster vereint. Der Clou: Die ursprüngliche Softmax-Aktivierung wird durch andere Aktivierungen wie GELU oder SiLU ersetzt. Das erfordert eine Umstellung der Pipeline, weil der Softmax-Korrekturterm wegfällt. So werden Ressourcen frei für besseres Pipelining. Zusätzlich verteilen sie die Arbeitslast geschickt auf die SMs, sortieren ungültige Tiles im Voraus aus und weisen die verbleibenden im Zickzack zu – die Load-Balance verbessert sich deutlich. Parallel führten sie BlockAttention ein, das die Kosten für lange Nutzerverläufe von O(L²) auf O(L) reduziert. Es unterteilt die Sequenz in Blöcke und berücksichtigt nur relevante Beziehungen. Das spart Rechenaufwand, ohne die Modellqualität zu beeinträchtigen.

    Ultra-niedrige Präzision: MXFP8 für CTR/CVR-Ziele

    Moderne GPUs sind für gemischte Präzision ausgelegt – Float16 oder BFloat16 sind Standard. Empfehlungsmodelle, die auf Click-Through-Rate (CTR) und Conversion-Rate (CVR) optimiert werden, reagieren empfindlich auf numerische Stabilität. Zu starke Präzisionsreduktion kann Qualität kosten. Meta-Ingenieure fanden trotzdem einen Weg, mit MXFP8 zu arbeiten – einer 8-Bit-Präzision mit mikroskalierbaren Exponenten. Sie passten diese Präzision speziell für die Aufmerksamkeits- und MLP-Schichten von GEM an.

    Das Geheimnis: die Präzision nicht global reduzieren, sondern gezielt an unkritischen Stellen. Dazu nutzten sie Loss Scaling und Clip-Gradients für Stabilität. So nutzten sie die Tensor-Cores besser aus, ohne dass CTR/CVR-Vorhersagen litten. Das ist Co-Design: nicht alles auf 8 Bit umstellen, sondern verstehen, wo Empfindlichkeit liegt.

    Topologie-bewusster 5D-Parallelismus und SM-freie Kollektive

    Auch bei optimal ausgelasteter GPU muss das Training über Tausende GPUs verteilt werden. GEM hat Billionen spärlicher Embedding-Parameter und Milliarden dichter Parameter. Die Kommunikation zwischen den GPUs droht zum Flaschenhals zu werden. Die Meta-Ingenieure entwickelten eine Parallelisierungsstrategie, die sich an der Netzwerk-Hierarchie des Rechenzentrums orientiert: 2D FSDP (Fully Sharded Data Parallel) für dichte Parameter, kombiniert mit Experten-Parallelismus, plus 2D-Modellparallelität für spärliche Parameter. Das ergibt einen 5D-Parallelismus, der die Kommunikationsmuster an die verfügbare Bandbreite anpasst.

    Ein weiterer Trick: Sie verzichten auf Streaming-Multiprozessor-Ressourcen für die Kollektiv-Kommunikation. Die Kommunikation läuft über dedizierte Hardware-Einheiten, sodass die SMs vollständig für Berechnungen frei sind. Dadurch überlappt Kommunikation besser mit Berechnung, was die Scaling Ratio erhöht. Zusammen mit Lastverteilungsstrategien, die ungleiche Sequenzlängen über die Ranks verteilen, brachten die Ingenieure die Scaling Ratio nahe an 1,0.

    Ergebnisse und Einordnung: 20–25% Effizienz und 4x Skalierung

    Was bedeutet das konkret? Meta kombinierte diese Techniken und steigerte die end-to-end Trainingseffizienz von GEM von etwa 10 auf 20 bis 25 Prozent MFU – verdoppelt in einem Jahr. Der Trainingsumfang (in FLOPs) vervierfachte sich, ohne dass die Zeit pro Schritt explodierte. Das zeigt: Auch jenseits von LLMs steckt viel Potenzial in effizienter Hardware-Nutzung.

    Für Anwender von KI-Systemen heißt das: Empfehlungsmodelle werden besser und ressourcenschonender trainiert. Das schont die Umwelt, senkt Kosten und erlaubt komplexere Modelle in gleicher Zeit. Die Techniken – Jagged Flash Attention, topologie-bewusster 5D-Parallelismus – sind nicht auf Werbung beschränkt. Sie übertragen sich auf Bereiche mit variablen Sequenzlängen, etwa Video- oder Code-Verarbeitung. Metas Arbeit zeigt: KI-Systeme sind kein monolithischer Block. Sie entstehen aus Hardware-Eigenschaften, Algorithmus-Design und Systemarchitektur. Nur so lassen sich riesige Rechenressourcen effektiv nutzen – und dieser Ansatz wird wichtiger.

    Quelle: engineering.fb.com

  • Mixture-of-Kittens: Cursors Open-Source-Ansatz für effizientes MoE-Training auf NVL72

    Mixture-of-Kittens: Cursors Open-Source-Ansatz für effizientes MoE-Training auf NVL72

    Stell dir vor, du leitest eine große Küche mit hunderten Spezialisten – jeder für ein bestimmtes Gericht zuständig. Die Bestellungen strömen rein, und du musst die Zutaten an die richtigen Köche verteilen, ihre Gerichte einsammeln und wieder zusammenführen. Genau das passiert in einem neuronalen Netz mit Mixture-of-Experts (MoE). Doch je größer die Küche, desto mehr Zeit geht für die Verteilung selbst drauf. Genau diesen Engpass hat das Team hinter Composer, dem agentischen Codier-Modell, erkannt und eine Lösung gefunden: den Open-Source-MoE-Megakernel Mixture-of-Kittens (MoK).

    Bei MoE-Schichten werden die Eingaben (Tokens) von einer Router-Instanz auf eine Auswahl spezialisierter Experten-Netzwerke verteilt. Jeder Experte ist ein kleines Feedforward-Netz mit Up-, Gate- und Down-Projektion. Gerade bei Modellen wie DeepSeek-V3, die hunderte Experten nutzen, ist die Kommunikation zwischen den GPUs oft teurer als die eigentliche Berechnung. Cursor hat festgestellt, dass in ihren Produktions-Workloads bis zu 50% der Trainingszeit allein in der MoE-Schicht verbraucht wird – insbesondere wegen der Datenübertragung. Traditionelle Ansätze trennen Kommunikation und Rechnung, aber das führt zu Wartezeiten.

    Die Lösung: ein einziger Kernel, der alle Kommunikations- und Rechenoperationen der MoE-Schicht verschmilzt. MoK ist vollständig deterministisch, d.h. die Reihenfolge der Operationen ist immer gleich, was für reproduzierbare Ergebnisse wichtig ist. Der Kernel wurde speziell für die NVL72-Architektur entwickelt, bei der 72 GPUs in einem Gehäuse über NVLink verbunden sind. Diese Umgebung ermöglicht eine fein granulare Überlappung von Kommunikation und Berechnung, die mit klassischen Multi-Node-Systemen nicht erreichbar wäre.

    Das Kernproblem: Kommunikation als Flaschenhals

    Bei verteiltem MoE werden die Experten auf verschiedene GPUs verteilt. Jeder GPU besitzt einen Teil der Experten. Wenn ein Token einem Experten auf einer anderen GPU zugeordnet wird, muss es zuerst dorthin geschickt werden – das nennt man Dispatch. Danach wird das Ergebnis zurückgeschickt – Combine. Die einfachste Methode ist, erst alle Tokens zu verschicken, dann die Berechnung durchzuführen und danach die Ergebnisse zurückzugeben. Das ist ineffizient, weil während der Übertragung die GPU-Pipeline leer läuft.

    Eine bessere Methode ist das Pipelining: Man teilt die Tokens in Chunks auf, schickt den ersten Chunk, berechnet ihn, während der zweite Chunk übertragen wird, und so weiter. Das macht man seit Jahren. Doch Cursor hat erkannt, dass bei der NVL72-Architektur noch mehr möglich ist: Man kann die Kommunikation so gestalten, dass sie fast vollständig hinter der Rechenarbeit verschwindet. Dafür mussten sie zwei entscheidende Design-Fragen beantworten: In welche Richtung fließen die Daten am besten? Und wie synchronisiert man die GPUs, ohne die langsamen CPUs einzubinden?

    Push oder Pull? Die richtige Kommunikationsrichtung

    Bei der Datenübertragung zwischen GPUs gibt es zwei grundlegende Mechanismen: Push und Pull. Beim Push sendet die Quelle die Daten aktiv zum Ziel. Beim Pull fordert das Ziel die Daten von der Quelle an. Bisherige Frameworks wie DeepEP bevorzugen Push, weil es weniger Protokoll-Overhead gibt. Aber Cursor hat durch Mikrobenchmarks herausgefunden, dass Push nicht immer besser ist – es kommt auf die Situation an. Für den Dispatch, also das Verteilen der Tokens an die Experten, ist Pull effizienter, weil es das Scheduling vereinfacht und die NVLink-Lanes besser auslastet. Beim Combine, also dem Zurückschicken der Ergebnisse, ist Push vorteilhaft, da es die Token-Reihenfolge beibehält und weniger Bytes insgesamt bewegt.

    Das Entscheidende ist, dass MoK für jede der vier Kommunikationsoperationen (Forward-Dispatch, Forward-Combine, Backward-Reverse-Dispatch, Backward-Reverse-Combine) die optimale Richtung wählt. Zudem: Der Scheduling-Plan, der für den Dispatch erstellt wird, kann auch für alle anderen Operationen wiederverwendet werden. Das spart Zeit und vermeidet Redundanz.

    Das Scheduling: Ein Plan, der alle NVLink-Lanes sättigt

    Um die gesamte NVLink-Bandbreite auszunutzen, muss man sicherstellen, dass alle 72 GPUs gleichzeitig Daten senden und empfangen. Dafür muss der Schedule so gestaltet sein, dass zu jedem Zeitpunkt jedes Quell-Ziel-Paar aktiv ist. Bei Push-basierten Systemen muss man eine komplexe Tabelle mit Quell- und Ziel-Indizes erstellen, die alle Bedingungen erfüllt: gleichmäßige Verteilung über alle Ziele, sortierte Ankunft bei den Experten, keine lokalen Kopien. Das erfordert aufwendige Sortierungen. Bei Pull-basiertem Dispatch ist der Schedule deutlich einfacher – man braucht nur eine Liste von Quell-GPU und -Index, und die Reihenfolge ergibt sich automatisch aus dem Routing. Cursor hat gezeigt, dass der Pull-basierte Dispatch weniger als 3% der Laufzeit benötigt und vollständig auf der GPU läuft, ohne CPU-Beteiligung.

    Warum ist das so wichtig? Weil die CPUs in der NVL72, die Grace-Prozessoren, im Vergleich zu den GPUs sehr langsam sind. Wenn die GPU auf die CPU warten muss, um einen Schedule zu erstellen oder zu synchronisieren, entstehen untätige Zeiten. MoK minimiert CPU-Arbeit und CPU-GPU-Synchronisation, indem es alles auf der GPU erledigt. Ein cleverer Trick ist der Einsatz von Ring-Token-Puffern, die es erlauben, Tokens direkt in den Speicher der Ziel-GPU zu schreiben, ohne dass die CPU eingreifen muss.

    Determinismus und MXFP8-Unterstützung

    Ein weiterer wichtiger Aspekt ist der Determinismus. Viele KI-Trainingsprozesse sind nicht reproduzierbar, weil die Reihenfolge der Operationen variiert. MoK stellt sicher, dass die Reihenfolge der Kommunikation und Berechnung immer exakt gleich ist, unabhängig von der Anzahl der GPUs oder der Batch-Größe. Das erleichtert das Debugging und die Fehlersuche. Zudem unterstützt MoK MXFP8, ein 8-Bit-Float-Format, das die Speicher- und Rechenlast reduziert, ohne die Genauigkeit wesentlich zu beeinträchtigen. Diese Format-Unterstützung ist in den Kernel integriert, sodass kein separater Kernel für die Konvertierung nötig ist.

    Die Vorteile zeigen sich in der Praxis: In mehreren Racks mit NVL72-Systemen steigerte MoK den End-to-End-Durchsatz um 41% (Faktor 1,41). Das bedeutet, dass bei gleicher Hardware und gleicher Energie deutlich mehr Trainingsdaten verarbeitet werden können. Für ein Unternehmen wie Cursor, das Composer mit hunderttausenden von GPUs trainiert, summiert sich das zu erheblichen Kosteneinsparungen und kürzeren Trainingszeiten.

    Warum hat das Auswirkungen auf die gesamte KI-Community?

    Die Open-Source-Veröffentlichung von MoK ist ein wichtiger Schritt, denn bisher waren solche Optimierungen oft proprietär. Andere Forschungslabore und Unternehmen können den Kernel nutzen, anpassen und verbessern. Das könnte die Entwicklung von effizienteren MoE-Modellen beschleunigen. Gerade bei den aktuellen Trends zu größeren Modellen und längeren Kontexten wird die MoE-Schicht immer mehr zum Flaschenhals. MoK zeigt, wie man durch eine durchdachte Neugestaltung der Kommunikation enorme Leistungsgewinne erzielen kann.

    Natürlich ist MoK auf die NVL72-Architektur zugeschnitten, aber die Prinzipien – die Wahl zwischen Push und Pull, das Scheduling, die Überlappung von Kommunikation und Rechnung – lassen sich auf andere Systeme übertragen. Auch die Idee, die CPU aus dem kritischen Pfad zu nehmen, ist universell gültig. Der Kernel ist auf GitHub verfügbar, und das Team von Cursor lädt zur Zusammenarbeit ein.

    Für dich als Entwickler oder KI-Enthusiast bedeutet das: Du kannst jetzt die internen Optimierungen eines kommerziellen Trainingssystems nachvollziehen und für deine eigenen Projekte nutzen. Mixture-of-Kittens ist mehr als nur ein netter Name – es ist ein Beispiel dafür, wie man ein vermeintlich gelöstes Problem (die MoE-Schicht) mit frischem Blick und neuen Hardware-Möglichkeiten noch einmal grundlegend verbessern kann. Die Küche kann also weiter wachsen, ohne an der Verteilung zu ersticken.

    Quelle: cursor.com

  • Agentisches Coding unterwegs: Wie ein Entwickler seine KI-Infrastruktur aufbaut

    Agentisches Coding unterwegs: Wie ein Entwickler seine KI-Infrastruktur aufbaut

    Stell dir vor …

    Stell dir vor, du sitzt in einem Zug, dein Handy vibriert – ein Bug in der Produktion. Dein Laptop liegt zu Hause, der WLAN-Hotspot ist lahm, die Codebasis riesig. Was früher bedeutete: „Ich kümmere mich später darum“ – könnte bald heißen: „Ich schicke einen KI-Agenten los.“ Ein Entwickler hat genau das möglich gemacht. Er beschreibt in einem ausführlichen Blogpost, wie er mit einer Kombination aus virtueller Maschine, Tailscale und modernen Agenten-Tools Produktionsfehler direkt vom Smartphone aus behebt – während er im Zug sitzt.

    Der Autor, ein ehemaliger Konzernentwickler, experimentiert seit Monaten mit KI-gestützter Programmierung. Nach vielen Iterationen ist er mit seinem aktuellen Setup sehr zufrieden. Er will es festhalten, nicht als zeitlose Weisheit, sondern als Momentaufnahme einer rasanten Entwicklung. Und tatsächlich: Einiges an seinem Vorgehen ist wahrscheinlich noch nicht weit verbreitet. Die Grundidee lässt sich aber leicht verstehen – und sogar nachbauen.

    Die Anforderungen an ein modernes Agenten-Setup

    Ausgangspunkt sind klare Anforderungen. Der Entwickler stellte fest, dass agentisches Coding auf Windows praktisch unmöglich ist. Die Agenten sind stark auf Bash und Unix-Tools trainiert; PowerShell führt unweigerlich zu Problemen bei Quoting und UTF-8. Deshalb musste eine Linux-Umgebung her. Außerdem wollte er von Laptop und Desktop aus arbeiten, ohne dass Fortschritt verloren geht – Sessions, Arbeitsbaum und gitignored Dateien wie .env-Dateien sollten nahtlos überall verfügbar sein. Die Arbeit sollte auch dann weiterlaufen, wenn er den Laptop zum Standortwechsel zuklappt.

    Dazu kommen Komfortwünsche: Er wollte die Arbeit der Agenten nicht nur in deren Oberfläche oder auf GitHub sehen, sondern auch in Visual Studio Code. Dev-Server, die die Agenten aufsetzen, sollten von außen erreichbar sein – idealerweise über HTTPS, aber nur für ihn. Mehrere parallele Workstreams auf demselben Projekt sollten möglich sein, ohne dass sich die Agenten gegenseitig stören. Und schließlich: Er wollte die lästigen Freigabe-Abfragen loswerden – im Klartext: den „–dangerously-skip-permissions“-Modus nutzen können. All das klingt nach viel Detailarbeit, aber der Autor betont: Keines dieser Ziele ist für sich genommen schwierig. Es geht nur darum, die richtigen Werkzeuge zu finden und geschickt zu kombinieren.

    Der Kern: Linux-VM und Tailscale

    Das Fundament ist eine dedizierte Linux-VM. Der Entwickler nutzt dafür einen immer eingeschalteten Desktop zu Hause und installiert darauf Ubuntu Server. Die VM sollte ordentlich RAM und Speicher bekommen, und unbedingt verschachtelte Virtualisierung unterstützen. So können die Agenten bei Bedarf ihre eigenen Container oder VMs starten. Anfangs sorgt der fehlende GUI nicht für Probleme: Agenten installieren bei Bedarf Playwright oder Xvfb, wenn sie Screenshots oder Browser-Aufgaben brauchen.

    Der Zugriff auf die VM läuft über Tailscale. Das ist eine Software, die alle eigenen Geräte in ein privates Netzwerk verwandelt – über das Internet, ohne Router-Konfiguration. Damit kann man sich von jedem x-beliebigen WLAN per SSH in die VM einwählen. Der Autor nennt das seine „Base of Agents“. Er aktiviert Tailscale SSH auf allen Maschinen, stellt die Regel auf „accept“ und deaktiviert den Schlüsselverfall. Zusätzlich nutzt er HTTPS-Zertifikate für die Dev-Server und Taildrive, um Dateien einfach zwischen Geräten zu verschieben. So wird die VM zu einem unsichtbaren Rechenknoten, der immer erreichbar ist.

    Die Agenten: Claude Code und Codex CLI

    Auf der VM laufen die beiden etablierten CLI-Agenten: Claude Code und Codex CLI. Sie arbeiten dort in der Unix-Umgebung, für die sie trainiert wurden. Auf den Client-Geräten kommt die jeweilige Desktop-App ins Spiel. Der Autor vergleicht die Erlebnisse: Die ChatGPT-Desktop-App (ehemals Codex) sei der klare Gewinner. Sie versteht nativ, dass man remote arbeitet, und ihre SSH-Unterstützung funktioniert extrem geschmeidig. Auch Trennungen oder Laptop-Wechsel werden elegant gelöst. Einziger Wermutstropfen: Die Liste der Projekte und Sessions synchronisiert sich nicht perfekt zwischen mehreren Clients. Mit etwas Rütteln – etwa indem man eine neue Remote-Session im richtigen Ordner startet – erscheinen die restlichen Einträge aber zuverlässig.

    Die Claude-App ist da deutlich unangenehmer. Sessions synchronisieren überhaupt nicht, und Remote-Sessions sterben, wenn der Desktop-Client geschlossen wird. Auch die Projektverwaltung wirkt improvisiert. Der Autor vermutet, dass die Claude-Desktop-Entwicklung ihren Fokus eher auf Nicht-Programmierer legt – obwohl ein Anthropic-Ingenieur auf X widersprochen hat. Für den Moment gilt also: Wer eine solide Remote-Anbindung sucht, ist mit der ChatGPT-App besser beraten.

    Parallele Arbeit mit Git-Worktrees

    Ein zentrales Stück des Setups sind Git-Worktrees. Diese Funktion erlaubt es, mehrere Arbeitskopien desselben Repositorys zu haben, ohne sich gegenseitig zu blockieren. Früher musste man diese Worktrees selbst verwalten – was viele abschreckte. Aber die KI-Agenten erledigen das mühelos: Sie erstellen den Worktree, synchronisieren origin/main, installieren Abhängigkeiten, kopieren .env-Dateien – alles automatisch. Beide Desktop-Apps integrieren Worktrees direkt. In der ChatGPT-App wählt man einfach „New remote worktree“ an, und schon läuft eine parallele Session im eigenen Ordner. Die Claude-App hat ebenfalls eine Checkbox für Worktrees – praktisch, wenn auch mit etwas anderen Standard-Pfaden.

    Der Nutzen liegt auf der Hand: Mehrere Agenten können gleichzeitig an derselben Codebasis arbeiten, ohne sich in die Quere zu kommen. Man kann einen Agenten einen Bug fixen lassen, während ein anderer ein Feature implementiert. Die Agenten übernehmen die komplette Worktree-Orchestrierung. Für den Entwickler ist das der Schlüssel zu einem echten Multiprocessing der KI-Entwicklung.

    Autonomie und ihre Risiken

    Um die Agenten wirklich unbeaufsichtigt arbeiten zu lassen, setzt der Autor auf maximale Autonomie. In der Codex-Konfiguration steht der erlaubende Permissions-Modus, und in Claude Code werden die entsprechenden Flaggen gesetzt – im Fachjargon „–yolo“ genannt. Zusätzlich empfiehlt er, den User in die sudoers-Datei aufzunehmen, damit die Agenten Tools installieren können. Ebenso wichtig ist die Anmeldung bei GitHub über die gh-CLI, damit Agenten Pull Requests öffnen, CI-Läufe anschieben oder Repository-Dateien durchsuchen können – ohne Rate-Limits.

    Ist das sicher? „Nein, nicht wirklich“, schreibt der Autor selbst. Mit diesen Rechten könnte ein Agent GitHub-Repositories löschen, gitignored Secrets ins Internet stellen, Issues in deinem Namen beantworten oder sogar aus der VM ausbrechen. Theoretisch. In der Praxis scheinen die Agenten gutmütig zu sein – zumindest vorerst. Die größte Gefahr ist ein Unfall, der die VM zerlegt und nicht-gepushte Arbeit vernichtet. Oder ein übereifriger Agent, der eine Anweisung zu wörtlich nimmt und direkt auf main pusht. Genau das ist dem Autor einmal passiert: Er bat um einen Pull Request, und nach einem Tab-Wechsel war die Änderung bereits gemergt.

    Seine Gegenmaßnahme: Frühe und häufige Git-Pushes auf GitHub – am besten in private Repositories. Selbst wenn die VM zerstört wird, bleibt die Arbeit sicher. Dazu kommen die üblichen Vorteile wie CI-Prüfungen oder Deployments über GitHub Pages. Ein weiterer Tipp: Man kann die Autonomie durch Per-Project-Dev-Container oder eingeschränkte Tokens begrenzen. Der Autor hat das bisher nicht gebraucht, sieht aber das Potenzial.

    Zusatzwerkzeuge: Portless und chezmoi

    Zu den Sahnehäubchen seines Setups gehören Portless und chezmoi. Portless kümmert sich darum, dass die von Agenten gestarteten Entwicklungsserver über feste, sichere URLs erreichbar sind – ohne dass man sich um dynamische Ports kümmern muss. Das passt perfekt zu Tailscale und den HTTPS-Zertifikaten. So kann man von unterwegs direkt auf den aktuellen Stand der Entwicklung zugreifen und durchklicken.

    chezmoi ist ein Werkzeug zur Verwaltung von Dotfiles – also Konfigurationsdateien. Der Autor legt darin globale Einstellungen wie AGENTS.md, Skills und Harness-Konfigurationen ab und hält sie versioniert und auf allen Geräten synchron. Wenn er an einem neuen Rechner arbeitet, zieht sich chezmoi einfach alle Einstellungen. Das ist die Basis dafür, dass seine Agent-Umgebung überall identisch funktioniert.

    Was du daraus mitnehmen kannst

    Das Setup ist bewusst keine Schritt-für-Schritt-Anleitung. Der Autor vertraut darauf, dass die KI-Agenten die technische Feinarbeit übernehmen, wenn man ihnen die Richtung vorgibt. Und genau das zeigt den eigentlichen Wandel: Softwareentwicklung wird zunehmend zu einer Orchestrierung von KI-Systemen, die rund um die Uhr an Aufgaben arbeiten können. Die eigene Infrastruktur wird dabei zur entscheidenden Grundlage – nicht das neueste KI-Modell allein.

    Für dich als Entwickler oder neugierigen Tech-Beobachter heißt das: Wer sich mit Tailscale, einer Linux-VM und den modernen Agenten-Clients anfreundet, kann schon heute mit erstaunlicher Effizienz arbeiten. Die Risiken der Vollen-Autonomie-Modi sollten aber bewusst eingeplant werden. Ein gutes Sicherheitsnetz aus regelmäßigen Git-Pushes und der Disziplin, sensible Daten nicht lokal zu vergraben, gehört dazu.

    Natürlich wird sich dieses Setup in ein paar Monaten weiterentwickeln. Neue Werkzeuge, neue Modelle, neue Erkenntnisse. Aber die Grundprinzipien bleiben: Remote-Rechnen, geteilte Sessions und die Bereitschaft, den Agenten echte Verantwortung zu übertragen. Genau davon werden wir in den kommenden Jahren noch viel sehen – und wer das früh versteht, ist bereit.

    Quelle: domenic.me