Ich habe jeden Coding-Agenten gehasst, also habe ich meinen eigenen gebaut — Mario Zechner (Pi)

MMastra
컴퓨터/소프트웨어창업/스타트업AI/미래기술

Transcript

00:00:00[MUSIK]
00:00:02Hallo, mein Name ist Mario.
00:00:04Ich stamme aus dem Land von Arnold Schwarzenegger,
00:00:06was Sie wahrscheinlich noch nicht bemerkt haben,
00:00:09basierend auf meinem sehr guten Englisch.
00:00:12Ich möchte vorausschicken, dass wir
00:00:13den ganzen Tag mit unserem Vierjährigen
00:00:16durch London gelaufen sind.
00:00:17Wir waren bei Dinosauriern, Mumien, natürlich bei Nandos
00:00:24und bei Dingen, die ich schon wieder vergessen habe.
00:00:26Ich bin sehr, sehr müde.
00:00:28Und wenn Sie nichts verstehen, was ich sage,
00:00:31heben Sie einfach die Hand und sagen: Opa, wach auf.
00:00:36Der Grund, warum ich hier bin, ist eigentlich eine andere Person,
00:00:39die heute hier in Cockneyville ist.
00:00:40Nennen wir ihn mal Shteter Pineburger.
00:00:44Damals im Jahr 2025, ich glaube etwa im April,
00:00:53erzählte er mir und Armin Ronacher, den Sie vielleicht
00:00:58von Flask und Sentry kennen: Leute, diese Coding-Agents,
00:01:02die funktionieren jetzt wirklich.
00:01:04Und ich dachte mir nur: Ach, halt doch die Fresse.
00:01:06Sorry, ich benutze auch Schimpfwörter.
00:01:09Ganz sicher nicht.
00:01:10Einen Monat später taten wir uns in dieser Wohnung für 24 Stunden
00:01:13über Nacht zusammen und ließen uns von den "Clankern",
00:01:19vom Wipe-Code und vom Wipe-Slop mitreißen.
00:01:21Und seitdem hat keiner von uns wirklich –
00:01:23wir schlafen im Grunde nicht mehr.
00:01:27Wir haben also Sachen gebaut, jede Menge Zeug, von dem
00:01:32wir das meiste nie benutzt haben, denn das ist das Neue in 2025,
00:01:36'26.
00:01:37Wir bauen viel, aber wir bauen nicht viel von dem,
00:01:39was wir tatsächlich benutzen.
00:01:40Wir haben eine Menge geschrieben.
00:01:42Und schließlich gipfelte das darin, dass ich dachte:
00:01:46Hey, ich hasse all die existierenden Coding-Agents oder Frameworks.
00:01:50Wie schwer kann es sein, selbst einen zu schreiben?
00:01:53Und Peter meinte: Oh, ich will da nur so eine Sache machen.
00:01:56Wahrscheinlich wird niemand davon hören.
00:01:58Und es wird ein persönlicher Assistent,
00:02:01denn das ist das, was ich schon immer haben wollte.
00:02:03Die meisten von Ihnen wissen wohl, wie seine Geschichte weiterging.
00:02:05Heute werde ich Ihnen meine viel weniger beeindruckende Geschichte erzählen.
00:02:08Aber ich hoffe, ich kann ein paar Erkenntnisse vermitteln,
00:02:11wie wir in der Branche sagen, die ich in den letzten
00:02:16paar Monaten sammeln konnte.
00:02:17Also Pi.
00:02:19Am Anfang war Cloud Code.
00:02:21Eigentlich war da Copy-and-Paste von ChatGPT.
00:02:25Das haben wir am Anfang alle gemacht, 2023.
00:02:27Dann gab es – wer erinnert sich an den ursprünglichen GitHub Copilot?
00:02:32Ja, eigentlich, wie viele von Ihnen sind Ingenieure?
00:02:35Wie viele von Ihnen nutzen Coding-Agents,
00:02:37wie Cursor oder Cloud Code?
00:02:39Okay.
00:02:40Beliebtheitswettbewerb: Cloud Code?
00:02:43Codex CLI?
00:02:45Cursor?
00:02:48Open–
00:02:48[UNVERSTÄNDLICH]
00:02:49Ja.
00:02:50Open Code?
00:02:50Anti-gravity.
00:02:51Oh, das sind nicht viele.
00:02:52Benutzt das jemand?
00:02:55Ich mag Sie.
00:02:56Wir trinken später ein Bier zusammen.
00:02:58Wie auch immer, das war im Grunde das, was 2025
00:03:03und davor passierte.
00:03:04Es begann mit Copy-and-Paste von ChatGPT.
00:03:06Es war meistens alles kaputt.
00:03:07Meistens nur einzelne Funktionen, Zeug, das man nicht schreiben will.
00:03:10Dann bekam man GitHub Copilot direkt in
00:03:13Visual Studio Code, wo man sich zum Glück durchklicken konnte,
00:03:15was manchmal funktionierte, meistens aber nicht.
00:03:17Manchmal hat es auch einfach GPL-Code zitiert,
00:03:22wie John Carmacks inverse Quadratwurzel
00:03:25und solche Sachen, was sehr lustig war.
00:03:29Und dann gab es Aider.
00:03:30Erinnert sich jemand an Aider?
00:03:31Ja.
00:03:32Die alten Leute.
00:03:33Hallo.
00:03:33Ja.
00:03:37Sie haben graue Haare.
00:03:37Sie kennen Aider offensichtlich.
00:03:41Es gab auch AutoGPT.
00:03:43Wahrscheinlich nicht viele.
00:03:44Ja, okay.
00:03:45Er kennt all diese Dinge.
00:03:48Und dann gab es schließlich Cloud Code.
00:03:51Ich glaube, sie haben es im November veröffentlicht,
00:03:52eigentlich als Beta im Jahr 2024.
00:03:55Aber es wurde erst mehr genutzt – wie bitte?
00:03:59Erst im Februar.
00:04:01Ja, Februar, März, so um den Dreh, 2025.
00:04:03Und ich dachte nur: Ich liebe es.
00:04:05Es ist fantastisch.
00:04:06Das Cloud-Team ist auch klasse.
00:04:07Sie sind auf Social Media präsent.
00:04:08Und sie sind alle sehr gute und talentierte Leute.
00:04:13Und sie haben im Grunde das gesamte Genre erschaffen.
00:04:15Ich weiß, es gab Vorläufer wie Aider und AutoGPT,
00:04:18aber nichts hat das so gemacht.
00:04:20Und das war im Grunde diese ganze agentische Suche.
00:04:22Anstatt dass wie bei Cursor die Codebasis durchforstet wird,
00:04:25Dinge indiziert, ASTs erstellt und auch das indiziert wird –
00:04:29was irgendwie nicht so richtig funktioniert.
00:04:31Sie sagten einfach: Ach was.
00:04:33Wir haben unsere Modelle mit Reinforcement Learning trainiert,
00:04:35um einfach Datei-Tools und Bash-Tools zu nutzen,
00:04:37um Ihre Codebasis ad hoc zu erkunden und die Stellen zu finden,
00:04:41die sie brauchen, um den Code zu verstehen und zu ändern.
00:04:44Und das funktionierte so gut, dass wir ja
00:04:46aufhörten zu schlafen, weil wir plötzlich
00:04:48so viel mehr Code produzieren konnten als vorher von Hand.
00:04:52Damals war es einfach und vorhersehbar
00:04:54und passte eigentlich perfekt in meinen Workflow.
00:04:57Schön.
00:04:58Aber dann tappten sie in die Falle, in die die meisten von uns
00:05:05wahrscheinlich tappen.
00:05:06Die "Clanker" können so viel Code schreiben.
00:05:08Warum lässt man sie nicht einfach alle Features schreiben,
00:05:11die man sich nur vorstellen kann, oder?
00:05:11Ist das nicht toll?
00:05:12Fügen wir einfach dieses Feature hinzu, und jenes,
00:05:14und dieses hier, und das da auch noch.
00:05:15Und am Ende landet man bei Homer Simpsons –
00:05:18ich weiß nicht mal, wie es heißt.
00:05:20Ich nenne es ein Raumschiff.
00:05:21Und Cloud Code ist jetzt ein Raumschiff.
00:05:23Es kann so viele Dinge, dass man wahrscheinlich
00:05:26nur etwa 5 % dessen nutzt, was es bietet.
00:05:28Man kennt insgesamt vielleicht 10 %.
00:05:30Und der Rest, die verbleibenden 90 %,
00:05:33das ist so etwas wie die dunkle Materie von KI und Agents.
00:05:36Niemand weiß, was es eigentlich macht.
00:05:37Und ich persönlich finde das nicht besonders hilfreich,
00:05:40weil ich immer noch glaube, dass man irgendwie
00:05:43wissen muss, was der Agent gerade tut.
00:05:45Dieser Herr hier mag bis zu einem gewissen Grad widersprechen.
00:05:49Und wir sind hier bei TESOL, und sie mögen auch
00:05:51Kontext-Management oder Kontext-Engineering,
00:05:54wie wir es genannt haben.
00:05:55Und ich fand schließlich, dass Cloud Code kein
00:05:58gutes Tool war, wenn es um Beobachtbarkeit
00:06:01und die eigentliche Verwaltung des Kontexts ging.
00:06:04Dann war da auch noch das hier.
00:06:06Wem gefällt das an Cloud Code, wie dieses immense Ausmaß
00:06:09an unerklärlichem Flackern?
00:06:10Nun, eigentlich weiß ich, wie man es erklärt und warum es passiert,
00:06:13aber sie haben es immer noch nicht behoben.
00:06:15Hier ist Tarik.
00:06:16Er ist wirklich großartig.
00:06:16Ich mag ihn sehr.
00:06:17Er ist ihr DevRel-Typ, meistens auf Twitter, und er ist spitze.
00:06:21Aber manchmal sagt er auch fragwürdige Dinge,
00:06:24wie: Unsere Terminal-Benutzeroberfläche ist jetzt eine Game-Engine.
00:06:27Nun müssen Sie wissen, dass ich aus der Spieleentwicklung komme.
00:06:30Da komme ich her.
00:06:31Und wenn ich so etwas lese,
00:06:32dann tut mir das irgendwie ein bisschen weh,
00:06:34weil es eine verdammte Terminal-Benutzeroberfläche ist, Kumpel.
00:06:37Es ist keine Game-Engine.
00:06:38Glauben Sie mir.
00:06:39Der einzige Grund, warum du denkst, es sei eine Game-Engine,
00:06:41ist, dass du React in deinem Terminal verwendest
00:06:44und es etwa 12 Millisekunden dauert,
00:06:45um deinen gesamten UI-Graphen neu zu berechnen.
00:06:49Lass das doch einfach bleiben.
00:06:51Es ist keine Game-Engine, okay?
00:06:54Und dann Mitchell, der Ghostty schreibt,
00:06:56meinte nur: Mann, das ist eine Beleidigung.
00:06:59Schieb es nicht auf Ghostty oder ein anderes Terminal.
00:07:02Dein Code ist Müll.
00:07:04Terminals können mit hunderten
00:07:05Bildern pro Sekunde rendern, im Sub-Millisekundenbereich.
00:07:09Also lass das sein, ja?
00:07:12Und schließlich haben sie das Flackern behoben.
00:07:15Aber dann passierten andere Dinge.
00:07:16Es ist, als hätten sie sich voll und ganz dem "Vibe Coding" verschrieben.
00:07:20Und man spürt es jeden Tag, wenn man Cloud Code benutzt.
00:07:23Nochmals, ich möchte ihre Bemühungen
00:07:27und ihre Ergebnisse nicht schmälern.
00:07:28Cloud Code ist aus gutem Grund immer noch der Marktführer.
00:07:30Sie haben das erfunden und sie machen einen tollen Job.
00:07:32Ich persönlich bin einfach ein alter Mensch,
00:07:34der berechenbare, einfache Werkzeuge mag.
00:07:37Und das passte einfach nicht mehr zu meinen Arbeitsabläufen.
00:07:41Also ja.
00:07:42Außerdem machen sie eine Menge im Hintergrund,
00:07:44wobei sie deinen Kontext manipulieren.
00:07:46Ich habe im Sommer 2025 ein paar Tools gebaut,
00:07:50mit denen ich Anfragen abfangen konnte,
00:07:52die von Cloud Code an deren Backend gesendet wurden,
00:07:55um herauszufinden, was für kleine zusätzliche Texte
00:07:58hinter deinem Rücken in deinen Kontext injiziert werden.
00:08:00Und all das war sehr schädlich
00:08:01und änderte sich zudem ständig.
00:08:04Fast jeden oder jeden zweiten Tag gab
00:08:06wo es eine neue Version gab, in der sich änderte, was
00:08:08an welcher Stelle eingefügt wird, was im Grunde
00:08:11deine bestehenden Arbeitsabläufe durcheinanderbrachte.
00:08:13Es war einfach kein stabiles Werkzeug.
00:08:14Und jetzt verstehe ich es aus ihrer Sicht.
00:08:16Sie müssen experimentieren.
00:08:17Und sie haben eine riesige Nutzerbasis.
00:08:18Und es ist wirklich schwer zu experimentieren,
00:08:19wenn man eine riesige Nutzerbasis hat.
00:08:21Aber es war ihnen egal.
00:08:23Also mussten wir alle darunter leiden.
00:08:25Du arbeitest mit diesem neuen Werkzeug.
00:08:27Du versuchst, vorhersagbare Arbeitsabläufe zu schaffen.
00:08:31Und dann ändert der Anbieter eine winzige Kleinigkeit
00:08:35unter der Haube, die das LLM
00:08:36bei deinen bestehenden Workflows durchdrehen lässt.
00:08:38Das ist einfach nicht nachhaltig.
00:08:39Ich brauche Kontrolle darüber.
00:08:40Ich kann mich nicht darauf verlassen, dass sie mir etwas Stabiles liefern.
00:08:46Ich glaube, als Folge des UI-Designs
00:08:52müssen sie die Sichtbarkeit einschränken, die man hat.
00:08:54Mir persönlich gefällt das nicht besonders.
00:08:56Aber das ist nur eine persönliche Vorliebe.
00:08:57Ich verstehe, dass die meisten Leute
00:08:58mit der Menge an Informationen zufrieden sein werden,
00:09:00die Cloud Code einem präsentiert.
00:09:03Es gibt natürlich null Modellauswahl,
00:09:06da es sozusagen ein Anthropic-natives Tool ist.
00:09:09Das ist kein Nachteil, denn Claude-Modelle sind –
00:09:12ich mag sie.
00:09:13Sie sind wirklich gut.
00:09:15Und es gibt fast null Anpassbarkeit.
00:09:17Und das findst du vielleicht lustig, weil sie
00:09:19dieses ganze Hook-System und so weiter haben.
00:09:21Aber wenn man es mit dem vergleicht, was Pi einem ermöglicht,
00:09:25ist es nicht so tief integriert.
00:09:28Es basiert im Grunde auch darauf, einen Prozess zu starten, wenn
00:09:32das Hook-Ereignis beginnt, was sehr teuer ist, wenn man
00:09:36diesen Prozess immer und immer wieder neu starten muss.
00:09:40So hat sich meine Meinung zu Cloud Code schließlich verschlechtert,
00:09:42nicht weil es schrecklich war.
00:09:44Es passte einfach nicht mehr zu mir.
00:09:47In dieser Zeit passte es für viel mehr andere Leute.
00:09:50Offensichtlich machen sie also Dinge richtig, aber nicht für mich,
00:09:54weil ich alt bin.
00:09:56Also habe ich mich nach Optionen umgesehen.
00:09:59Und da ist Codex CLI, was mir wirklich nicht gefiel.
00:10:01Am Anfang sowohl die Benutzeroberfläche als auch das Modell,
00:10:05das hat sich geändert, zumindest in Bezug auf das Modell.
00:10:08Codex ist mittlerweile wirklich ziemlich gut.
00:10:10Dann gibt es noch AMP.
00:10:12Das Team dahinter hat früher bei Sourcegraph gearbeitet.
00:10:15Sie haben sich von Sourcegraph abgespalten.
00:10:20Und sie sind super gute Ingenieure.
00:10:21Sie haben es geschafft, ein kommerzielles Coding-Harness zu bauen, bei dem
00:10:25sie Funktionen entfernen, statt welche hinzuzufügen.
00:10:28Und die meisten ihrer Entscheidungen ergeben für mich viel Sinn.
00:10:33Also ja, wenn du nach einem kommerziellen Coding-Harness suchst,
00:10:36würde ich dir AMP definitiv empfehlen, weil es wirklich gut ist.
00:10:39Factory Troye, ähnliche Geschichte, auch wirklich gut,
00:10:44obwohl sie nicht so experimentierfreudig sind wie AMP.
00:10:47Und dann gibt es OpenCode, das ist das Open-Source-
00:10:50Coding-Harness, das viele Leute benutzen.
00:10:53Ich habe eine Vorgeschichte mit Open Source.
00:10:55Ich bin seit, nun ja, 17 Jahren in der Open-Source-Welt.
00:11:00Ich habe große und kleine Open-Source-Projekte geleitet.
00:11:04Das liegt mir also sehr am Herzen.
00:11:05Und so dachte ich mir, ich probiere OpenCode mal aus,
00:11:08weil mir das nahesteht.
00:11:12Und neben AMP haben sie eines der bodenständigsten
00:11:15oder pragmatischsten Teams in diesem Bereich.
00:11:16Sie hypen dich nicht mit Funktionen auf,
00:11:18die du wahrscheinlich nie benutzen wirst.
00:11:20Sie versuchen, einen reibungslosen Pfad zu bewahren, der
00:11:23sehr stabil ist.
00:11:26Und sie haben auch ziemlich gute Gedanken darüber,
00:11:27was Coding-Agenten für uns
00:11:29als Berufsstand bedeuten, womit ich mich persönlich identifizieren kann.
00:11:32Das Problem mit OpenCode ist, dass es auch nicht besonders gut
00:11:37beim Verwalten deines Kontexts ist.
00:11:38Zum Beispiel ruft es bei jedem Durchgang sessionCompaction.prune auf,
00:11:44was folgendes tut.
00:11:46Es entfernt alle Ergebnisse vor den letzten 40.000 Token.
00:11:52Nun, wer hier weiß, was Prompt-Caching ist?
00:11:56Was macht das mit deinem Prompt-Cache?
00:11:58OpenCode und Anthropic hatten also eine interessante Geschichte.
00:12:05Und schließlich sagte Anthropic meiner Meinung nach zu Recht:
00:12:11Leute, das wird einfach nicht passieren.
00:12:14Und es gab nie eine öffentliche Verlautbarung dazu.
00:12:17Aber Tarek erklärt es hier.
00:12:19Wenn du in ein Fitnessstudio kommst, dich nicht benimmst und
00:12:22die Infrastruktur missbrauchst, wirst du rausgeworfen.
00:12:25Und ich denke –
00:12:27ich habe keine Beweise dafür,
00:12:28aber ich glaube, das ist der Grund,
00:12:30warum diese Feindseligkeit zwischen Anthropic und OpenCode herrscht.
00:12:33Und ich kann dem voll zustimmen, oder zumindest
00:12:36denke ich, dass Anthropic hier eindeutig im Recht ist.
00:12:39Leg dich nicht mit der Infrastruktur an.
00:12:42Dann gibt es noch andere Dinge, wie zum Beispiel, dass OpenCode
00:12:44standardmäßig mit LSP-Unterstützung (Language Server Protocol) kommt.
00:12:46Direkt nach der Installation.
00:12:48Um auf das Context Engineering zurückzukommen:
00:12:51Nehmen wir an, du gibst deinem Agenten die Aufgabe,
00:12:53eine Reihe von Dateien zu ändern.
00:12:55Was bedeutet das in der Praxis?
00:12:57Er wird eine Reihe von Bearbeitungen vornehmen, eine nach der anderen,
00:13:02an einer Reihe von Dateien.
00:13:03Wie wahrscheinlich ist es, dass nach der ersten von 10 Bearbeitungen
00:13:09der Code kompilierbar ist?
00:13:12Was passiert, wenn du deinen Code Zeile für Zeile änderst?
00:13:15Wie lange dauert es, bis er sich wieder stabilisiert
00:13:17und sauber kompiliert?
00:13:19Das tut er nicht.
00:13:20Er wird nach der ersten Bearbeitung nicht kompilieren, wahrscheinlich nicht
00:13:22nach der zweiten Bearbeitung und so weiter.
00:13:24Wenn du dich dann also umdrehst und sagst: „Hey, lieber LSP-Server,
00:13:28ich habe gerade eine Zeile in dieser Datei bearbeitet.
00:13:30Ist sie kaputt?“
00:13:31Dann wird der LSP-Server sagen: „Ja, sie ist total kaputt.“
00:13:34Und was diese Funktion macht, ist, dass sie
00:13:36diesen Fehler direkt nach dem Tool-Aufruf
00:13:39als eine Art Feedback in das Modell einspeist.
00:13:43„Oh, was du gerade getan hast, ist falsch.“
00:13:45Und das Modell denkt sich: „Was soll der Scheiß, Mann?
00:13:47Ich bin noch nicht fertig mit dem Bearbeiten.
00:13:49Warum sagst du mir das?“
00:13:50Natürlich ist es nicht falsch.
00:13:51Aber wenn man das oft genug macht, gibt das Modell einfach auf.
00:13:54Und das führt zu sehr schlechten Ergebnissen.
00:13:58Ich bin also kein Fan von LSP.
00:13:59Ich halte es für eine sehr schlechte Idee, das aktiviert zu haben.
00:14:02Es gibt natürliche Synchronisationspunkte,
00:14:03an denen man Linting und Typüberprüfung
00:14:06und all das haben möchte.
00:14:07Und das ist erst dann, wenn der Agent denkt, dass er fertig ist.
00:14:10Das hat sich vor kurzem geändert.
00:14:14Dies ist eine einzelne Sitzung von OpenCode, in der jede Nachricht
00:14:20zu einer eigenen JSON-Datei wird.
00:14:22Jede einzelne Nachricht wird zu einer eigenen JSON-Datei auf der Festplatte.
00:14:26Das deutet für mich darauf hin, dass nicht viel über
00:14:29die Architektur des Ganzen nachgedacht wurde.
00:14:31Und wenn ich das Vertrauen darin verliere, möchte ich
00:14:33dieses Werkzeug nicht mehr benutzen.
00:14:35Wiederum: Ich denke, das Team ist eigentlich wirklich gut.
00:14:37Ich denke, sie haben extrem schnell iteriert
00:14:39und etwas gebaut, das offensichtlich für viele Leute super nützlich ist.
00:14:42Es ist nur so.
00:14:43Es sind wieder Entscheidungen, die ich so nicht getroffen hätte, die
00:14:46mich dazu bewogen haben, mein eigenes Ding zu bauen.
00:14:50Dann gab es auch noch das hier.
00:14:51OpenCode wird standardmäßig mit einem Server geliefert.
00:14:54Die Kernarchitektur basiert also auf einem Server.
00:14:56Und Clients verbinden sich damit.
00:14:57Und das Terminal-Interface ist einer dieser Clients.
00:15:00Es gibt auch ein Desktop-Interface.
00:15:01Und ich weiß nicht.
00:15:03Das stellte sich als Sicherheitslücke heraus,
00:15:05bei der Remote Code Execution standardmäßig eingebaut war.
00:15:09Und das ist auch – wenn man so stolz auf seine
00:15:12Server-Infrastruktur oder Server-Architektur ist,
00:15:15dann würde ich davon ausgehen, dass ihr erwachsene Ingenieure seid,
00:15:18die auch über Sicherheit nachgedacht haben.
00:15:20Und anscheinend ist das nicht passiert.
00:15:21Und das war für lange Zeit offen.
00:15:23Und nochmal, ich beschuldige hier niemanden.
00:15:25Das sind Dinge, die einfach passieren, wenn man
00:15:27in einer Branche arbeitet, die in einem halsbrecherischen Tempo agiert,
00:15:31das wir so noch nie gesehen haben.
00:15:33Ich möchte dieses Tool nur nicht benutzen, wenn das so ist.
00:15:36Das waren also meine Beobachtungen in Bezug auf bestehende
00:15:42Coding-Referenzen.
00:15:42AMP und Droid wären etwas gewesen, das ich hätte benutzen können.
00:15:45Aber wieder: keine Kontrolle.
00:15:47Im Fall von AMP entscheiden sie sogar, welche Modelle man benutzen kann.
00:15:50Und es ist nur ein einziges Modell für einen bestimmten Aufgabentyp.
00:15:53Und das bin ich nicht.
00:15:55Was Droid angeht, denke ich, dass es ein bisschen offener ist.
00:15:58Aber zu der Zeit, als ich es ausprobiert habe,
00:16:00hat es einfach nicht –
00:16:02sah ich keinen großen Vorteil gegenüber Cloud Code.
00:16:07Und dann habe ich mir aus ganz anderen Gründen Benchmarks angesehen
00:16:10und Terminal Bench gefunden.
00:16:12Wer weiß, was Terminal Bench ist?
00:16:15Okay, im Grunde ist es eine Testumgebung für Coding-
00:16:20oder Agenten-Evaluierung, die eine Reihe von Computer- und Programmier-
00:16:24bezogenen –
00:16:24sorry, ich bin alt und müde wegen meines Vierjährigen.
00:16:31Es enthält eine Reihe von computer- und programmierbezogenen Aufgaben,
00:16:35die ein Agent oder das LLM innerhalb einer Agenten-Umgebung
00:16:39erfüllen muss.
00:16:40Ich glaube, es sind etwa 82 oder so.
00:16:43Und sie sind sehr vielfältig.
00:16:44Sie reichen von „repariere mein Window-Setup“ bis zu „programmiere mir eine
00:16:48Monte-Carlo-Simulation“ oder so etwas in der Art.
00:16:51Und sie haben eine Bestenliste.
00:16:52Und auf dieser Bestenliste sieht man die Kombination
00:16:54aus Coding-Agent-Harness und Modell.
00:16:57Und sie haben ihren eigenen Coding-Agenten namens Terminus.
00:17:03Und ich finde ihn brillant, weil er
00:17:06eines der leistungsfähigsten Harnesses im Benchmark.
00:17:09Wir werden es später noch sehen.
00:17:11Was genau macht es?
00:17:12Nun, alles, was das Modell erhält, ist eine TMUX-Sitzung.
00:17:17Und alles, was es tun kann, ist Tasteneingaben dorthin zu senden
00:17:19und die ausgegebenen VT-Codesequenzen zurückzulesen.
00:17:23Das ist also die kleinste, minimalste Schnittstelle,
00:17:27die ein Modell zu deinem Computer haben kann.
00:17:31Und das bringt Spitzenleistungen auf dem gesamten Leaderboard.
00:17:36Was sagt uns das über bestehende Coding-Agent-Harnesses?
00:17:39Brauchen wir all diese Funktionen, damit die Modelle
00:17:41tatsächlich Leistung erbringen?
00:17:43Für mich persönlich geht es nicht nur darum, dass das Modell
00:17:48tatsächlich gut ist.
00:17:49Es geht auch um mich als Benutzer, den Menschen,
00:17:51der eine Möglichkeit braucht, mit meinem Agenten, dem Modell, zu interagieren.
00:17:54Und Terminus ist offensichtlich nicht die User Experience oder Developer
00:17:58Experience, die ich möchte.
00:18:00Aber es zeigt uns, dass all diese Funktionen, die diese
00:18:03Coding-Harnesses haben, vielleicht nicht notwendig sind,
00:18:08um gute Ergebnisse von Agenten zu erhalten.
00:18:10Also keine Datei-Tools, keine Sub-Agenten, keine Web-Suche, gar nichts.
00:18:13Zwei Thesen basieren auf all diesen Erkenntnissen.
00:18:16Wir befinden uns in der Phase des Ausprobierens.
00:18:18Und niemand hat eine Ahnung, wie der perfekte Coding-Agent
00:18:21oder das perfekte Coding-Harness aussehen sollte.
00:18:23Wir versuchen beides: Minimalismus und das volle Programm mit
00:18:27Schwärmen und Teams von Agenten, keine Kontrolle, volle Autonomie
00:18:30und was auch immer.
00:18:31Ich denke, das ist noch nicht abgeschlossen.
00:18:33Wir haben die Frage noch nicht beantwortet, wie das
00:18:35idealerweise aussehen sollte und was zum Industriestandard
00:18:37werden wird.
00:18:38Und das Zweite ist: Wir brauchen bessere Wege,
00:18:40um mit Coding-Agenten herumzuexperimentieren.
00:18:42Das heißt, wir müssen sie in die Lage versetzen, sich selbst zu modifizieren
00:18:47und anpassungsfähig zu werden.
00:18:48Damit wir schnell mit Ideen experimentieren
00:18:50und sehen können, ob dies etwas ist, das wir zu einem
00:18:53Industriestandard machen können – ein neuer Workflow, den wir wahrscheinlich alle übernehmen werden.
00:18:58Die Grundidee war also –
00:18:59und es ist sehr einfach, keine Hexenwerk –
00:19:01alles wegzulassen und einen minimalen, erweiterbaren Kern zu bauen.
00:19:05Es gibt ein gewisses Maß an Komfort.
00:19:06Es ist kein unbeschriebenes Blatt.
00:19:09Das ist also Pi.
00:19:10Und das allgemeine Motto lautet: Passe deinen Coding-Agenten
00:19:13deinen Bedürfnissen an, statt umgekehrt.
00:19:16Es kommt mit vier Paketen: ein AI-Paket, das im Grunde
00:19:21nur eine einfache Abstraktion über mehrere Anbieter ist, die
00:19:24alle unterschiedliche Transportprotokolle sprechen.
00:19:27Es ist also sehr einfach, mit allen Anbietern zu sprechen
00:19:29und zwischen ihnen im selben Kontext oder derselben Sitzung zu wechseln.
00:19:34Der Agenten-Kern, der nur ein verallgemeinerter
00:19:36Agenten-Loop mit Tool-Aufrufen, Verifizierung
00:19:38und so weiter ist.
00:19:39Und Streaming, eine Terminal-Benutzeroberfläche,
00:19:42die etwa 600 Zeilen Code umfasst und wirklich gut funktioniert,
00:19:47überraschenderweise, weil sie nicht von einem Clanker geschrieben wurde.
00:19:51Und der Coding-Agent selbst, der sowohl ein SDK ist,
00:19:54das man im Headless-Modus verwenden kann,
00:19:57als auch ein vollständiger Terminal-UI-Coding-Agent.
00:20:02Dies ist der gesamte System-Prompt.
00:20:05Da ist nichts weiter, im Vergleich zu anderen
00:20:08Coding-System-Prompts.
00:20:10Das ist in Token gemessen.
00:20:13Es stellt sich heraus, dass Frontier-Modelle stark mittels RL trainiert sind, um zu wissen,
00:20:16was ein Coding-Agent ist.
00:20:18Warum also sagt man ihnen ständig, dass sie ein Coding-Agent sind
00:20:21und wie sie Coding-Aufgaben erledigen sollen?
00:20:27Standardmäßig YOLO, warum das?
00:20:30Die meisten Coding-Agent-Harnesses haben derzeit zwei Modi.
00:20:33Entweder kann der Agent tun, was er will,
00:20:36oder der Agent darf dich fragen: "Willst du diese
00:20:40Datei wirklich löschen?"
00:20:41"Willst du wirklich die Dateien in diesem Verzeichnis auflisten?"
00:20:44und so weiter.
00:20:44Und hier gibt es verschiedene Graustufen.
00:20:47Aber am Ende des Tages läuft es darauf hinaus, dass der Benutzer
00:20:49eine Aktion des Agenten genehmigen muss.
00:20:52Und dann sind wir sicher.
00:20:53Und ich denke, das ist falsch, weil es zu Ermüdung führt.
00:20:55Die Leute werden es entweder ganz ausschalten (YOLO-Modus)
00:20:58oder einfach nur Enter drücken, ohne etwas zu lesen.
00:21:01Ich glaube also nicht, dass das eine Lösung ist.
00:21:02Containerisierung ist auch keine Lösung,
00:21:04wenn man sich Sorgen um Datenabfluss
00:21:06und Prompt-Injections macht.
00:21:07Aber ich denke, das ist das Einzige, was man –
00:21:10Ich denke, das ist die beste Basis im Vergleich zu Guardrails
00:21:14wie Genehmigungen oder Dialogen.
00:21:17Es hat nur vier Tools: Datei lesen, Datei schreiben,
00:21:19Datei bearbeiten und Bash.
00:21:21Bash ist alles, was man braucht.
00:21:22Was ist nicht drin?
00:21:23Kein MCP, keine Sub-Agenten, kein Plan, kein Hintergrund-Bash,
00:21:25keine eingebauten To-Dos.
00:21:26Hier ist, was man stattdessen tun kann.
00:21:28Für MCP: CLI-Tools plus Skills nutzen
00:21:30oder eine Erweiterung bauen, was wir gleich sehen werden.
00:21:34Keine Sub-Agenten, warum?
00:21:35Weil sie nicht beobachtbar sind.
00:21:36Verwende stattdessen tmux und starte den Agenten erneut.
00:21:41Du hast die volle Kontrolle über die Ausgaben und Eingaben des Agenten
00:21:44und kannst alles sehen, was im Sub-Agenten passiert.
00:21:48Interessanterweise macht Code-Spawn –
00:21:50der Team-Modus jetzt im Grunde genau das auch.
00:21:55Kein Plan-Modus: Schreibe eine plan.md Datei.
00:21:57Man hat ein dauerhaftes Artefakt anstelle
00:21:59einer instabilen UI, die nicht wirklich
00:22:02in den Terminal-Viewport passt.
00:22:04Und man kann es über mehrere Sitzungen hinweg wiederverwenden.
00:22:07Kein Hintergrund-Bash: Brauchen wir nicht, wir haben tmux.
00:22:09Es ist dasselbe.
00:22:11Und keine eingebauten To-Dos: Schreibe eine todo.md.
00:22:13Gleiche Sache.
00:22:14Oder baue all das selbst so, wie du es magst.
00:22:17Und genau das ermöglicht Pi, indem es extrem erweiterbar ist.
00:22:21Man kann Tools individuell erweitern.
00:22:22Man kann dem LLM Tools geben, die man selbst definiert.
00:22:26Ich glaube, kein anderes Coding-Agent-Harness
00:22:28bietet das derzeit an, es sei denn, man forkt Open Code.
00:22:31Hier ist das nicht nötig.
00:22:32Man schreibt einfach eine einfache TypeScript-Datei,
00:22:34und sie wird automatisch geladen.
00:22:37Man kann auch eine eigene UI schreiben.
00:22:39Skills sind natürlich in ihren Prompt-Templates, Themes.
00:22:43Und man kann all das bündeln, auf NPM oder Git stellen
00:22:46und mit einem einzigen Befehl installieren, was sehr nett ist.
00:22:49Und alles wird per Hot-Reload aktualisiert.
00:22:51Ich entwickle also meine eigenen Erweiterungen,
00:22:53die projekt- oder aufgabenspezifisch sind, direkt in Pi innerhalb des Projekts.
00:22:59Und während der Agent die Erweiterung modifiziert, lade ich sie einfach neu.
00:23:05Und es aktualisiert sofort den gesamten laufenden Code,
00:23:10was sehr angenehm ist.
00:23:11In der Praxis bedeutet das, dass man eigene Kompaktierung durchführen kann.
00:23:14Ich denke, das ist eines der Dinge, mit denen die Leute
00:23:16mehr experimentieren sollten, denn alle aktuellen
00:23:19Kompaktierungs-Implementierungen sind nicht gut.
00:23:21Berechtigungs-Schranken kann man leicht
00:23:23in 50 Zeilen Code implementieren und damit abdecken,
00:23:24was all die anderen Agenten-Harnesses tun, wenn man das möchte.
00:23:27Eigene Anbieter: Registriere Proxies von selbstgehosteten Modellen.
00:23:31Ist mir egal.
00:23:32Du brauchst mich nicht, um das für dich zu tun.
00:23:33Du kannst das selbst tun, und tatsächlich kann dein Clanker es für dich tun.
00:23:37Oder überschreibe jedes eingebaute Tool.
00:23:38Modifiziere, wie Lesen, Schreiben, Bearbeiten und Bash funktionieren.
00:23:41Egal.
00:23:42Ich habe eine Version von Lesen, Schreiben, Bearbeiten und Bash,
00:23:43die über SSH auf einer Remote-Maschine funktioniert.
00:23:47Für mich dauerte die Implementierung fünf Minuten, aber es funktioniert.
00:23:51Und man hat vollen TUI-Zugriff, man kann also
00:23:54eine komplett eigene UI im Coding-Agenten schreiben.
00:23:58Cloud Code wurde veröffentlicht – übrigens dauerte es fünf Minuten,
00:24:02bis jemand das in Pi mit mehr Funktionen nachgebaut hatte.
00:24:05PyMessenger – ich habe keine Ahnung, was es genau macht,
00:24:07aber anscheinend ist es wie ein Chatraum für mehrere Pi-Agenten,
00:24:10die dann kommunizieren und eine eigene UI haben.
00:24:13Wir können schauen, was sie machen, und ja, es funktioniert einfach.
00:24:18Oder PyMess – wenn einem langweilig ist, spielt man einfach ein Spiel,
00:24:23während der Agent läuft, richtig?
00:24:24Das kann man machen.
00:24:25Oder PyAnnotate – man öffnet die Website,
00:24:28an der man gerade arbeitet, und annotiert Dinge im Frontend,
00:24:31um dem Agenten direkt Feedback zu geben.
00:24:35Füttere es zurück in den Kontext, lass ihn das Ding ändern.
00:24:39Oder etwas, das ich benutze, ist File Switch It.
00:24:42Ich möchte nicht zu einer IDE oder einem Editor wechseln.
00:24:43Ich möchte mir nur kurz die Datei ansehen, die geändert wurde.
00:24:46All das sind also Erweiterungen.
00:24:48Nichts davon ist eingebaut, und es dauert für die Leute
00:24:50normalerweise nur ein paar Minuten bis zu einem Nachmittag,
00:24:52um all das so zu bauen, wie sie es wollen.
00:24:56PyWavic sagt mir auch nichts.
00:25:00Pi kommt auch mit einer Baumstruktur.
00:25:01Ich werde das nicht erklären.
00:25:03Schaut einfach auf py.dev.
00:25:04Deine Sitzung ist ein Baum, keine lineare Liste von Chats.
00:25:07Man kann also im Grunde Sub-Agenten simulieren,
00:25:09indem man alle Dateien im Verzeichnis liest,
00:25:11dies zusammenfasst, zum Stamm der Konversation zurückkehrt,
00:25:14die Zusammenfassung mitnimmt und die eigentliche Arbeit erledigt.
00:25:19Nichts wird hinter deinem Rücken eingeschleust.
00:25:22Agenten, Skills, volle Kostenkontrolle.
00:25:24Viele Harnesses machen das hier nicht.
00:25:26Open Code macht es nicht gut.
00:25:29HTML-Export, JSON-Format, Headless-JSON-Stream, bla bla.
00:25:33Funktioniert es tatsächlich?
00:25:34Nun, Terminal Bench.
00:25:35Lassen Sie mich hier heranzoomen.
00:25:36Kann ich nicht.
00:25:37Das ist erstaunlich.
00:25:38Hier ist Pi, direkt hinter Terminus 2, unter Verwendung von Claude Opus 4.5.
00:25:45Das war im Oktober, als Pi noch nicht einmal Kompaktierung hatte.
00:25:49Zeit für die Demo – ich überspringe das, gegen die Clanker,
00:25:51weil sie Open Source kaputt machen.
00:25:54Wenn man mit dem Projekt dieses Typs in Verbindung gebracht wird,
00:25:56dann kommen Hunderte von Leuten von OpenClaw
00:26:02zu deinem Repository und spamen dich mit Clanker-Müll zu.
00:26:06Ich musste also ein paar Maßnahmen erfinden.
00:26:09Ich habe die "OSS-Vacation" erfunden.
00:26:11Ich habe einfach Issues und PRs für ein paar Wochen geschlossen
00:26:14und allein an den Dingen gearbeitet.
00:26:16Alles, was wichtig ist, wird ohnehin später
00:26:20oder im Discord gemeldet.
00:26:21Und dann habe ich auch ein eigenes Zugangssystem implementiert,
00:26:26bei dem ich eine Markdown-Datei im Repository habe.
00:26:28Wenn jemand einen PR öffnet, ohne dass sein Kontoname
00:26:32in dieser Markdown-Datei steht, wird der PR automatisch geschlossen.
00:26:34Das ist mir egal.
00:26:35Stell dich zuerst mit einer menschlichen Stimme über ein Issue vor.
00:26:39Schreibe ein Issue, das nicht länger als die Anzeige ist,
00:26:42denn alles andere ist wahrscheinlich Clanker-Müll.
00:26:45Und sobald du das getan hast, gebe ich gerne mein Okay.
00:26:47Man kommt also in diese Datei und kann nun PRs
00:26:50für das Repository einreichen.
00:26:51Alles, worum ich bitte, ist eine menschliche Verifizierung.
00:26:53Und Mitchell von Ghosty hat das dann aufgegriffen und
00:26:57ein Projekt namens Vouch gebaut, das leichter auf eigene
00:27:00Open-Source-Repositories anwendbar ist.
00:27:02Und das ist Pi.
00:27:03Geht hin und probiert es aus.
00:27:05Das war's von mir.
00:27:06[APPLAUS]
00:27:07[MUSIK]

Key Takeaway

Der Coding-Agent Pi setzt auf radikalen Minimalismus und volle Nutzerkontrolle durch erweiterbare TypeScript-Tools, um die mangelnde Stabilität und Transparenz kommerzieller Blackbox-Lösungen zu umgehen.

Highlights

Existierende Coding-Agenten wie Claude Dev oder Cursor leiden unter mangelnder Vorhersehbarkeit durch ständige, intransparente Änderungen am System-Prompt und Kontext-Management.

Das minimalistische Harness Terminus erreicht Spitzenplätze im Terminal Bench, obwohl es lediglich eine TMUX-Sitzung über Tasteneingaben und VT-Sequenzen steuert.

Pi reduziert den System-Prompt auf ein Minimum, da moderne Frontier-Modelle bereits durch Reinforcement Learning auf ihre Rolle als Coding-Agent trainiert sind.

Der YOLO-Modus in Pi ersetzt fehleranfällige Genehmigungsdialoge durch Containerisierung als Sicherheitsbasis, um Ermüdungserscheinungen beim Nutzer zu vermeiden.

Pi ermöglicht die Erweiterung von Tools wie Dateioperationen oder Bash-Befehlen durch einfache TypeScript-Dateien mit Hot-Reload-Funktion im laufenden Betrieb.

Ein automatisiertes Vouching-System filtert KI-generierten Spam in Open-Source-Repositories, indem PRs ohne vorherige menschliche Verifizierung sofort geschlossen werden.

Timeline

Entwicklung und Probleme kommerzieller Coding-Agenten

  • Frühe Workflows basierten auf einfachem Copy-and-Paste von ChatGPT oder fehleranfälligen GitHub Copilot-Integrationen.
  • Moderne Agenten nutzen Reinforcement Learning, um Datei- und Bash-Tools zur ad-hoc Erkundung von Codebasen einzusetzen.
  • Kommerzielle Tools wie Claude Dev entwickeln sich zu überladenen Systemen, bei denen Nutzer oft nur 5 % der Funktionen effektiv einsetzen.

Die Entwicklung der Coding-Agenten begann mit manuellen Prozessen und führte zu hochkomplexen Frameworks. Diese Komplexität führt jedoch oft zu einer Dunklen Materie von Funktionen, deren genaue Arbeitsweise für den Entwickler nicht mehr nachvollziehbar ist. Besonders das mangelnde Kontext-Management in großen Tools erschwert eine gezielte Fehleranalyse.

Kritik an Instabilität und mangelnder Transparenz

  • Häufiges Flackern in Terminal-UIs resultiert oft aus der ineffizienten Nutzung von React für grafische Darstellungen im Terminal.
  • Anbieter injizieren unangekündigt Texte in den Nutzerkontext, was bestehende Arbeitsabläufe unvorhersehbar stört.
  • Die fehlende Modellauswahl und geringe Anpassbarkeit schränken professionelle Workflows bei Anthropic-nativen Tools stark ein.

Ständige Updates unter der Haube verändern das Verhalten der Sprachmodelle (LLMs) auf eine Weise, die für den Endnutzer nicht kontrollierbar ist. Dies führt dazu, dass Workflows, die an einem Tag funktionierten, am nächsten Tag scheitern können. Die Kritik richtet sich auch gegen technische Fehlentscheidungen, wie das Rendern von UIs mit hohen Latenzen in Umgebungen, die eigentlich Sub-Millisekunden-Reaktionszeiten ermöglichen sollten.

Architekturmängel in Open-Source-Alternativen

  • OpenCode-Implementierungen wie sessionCompaction.prune zerstören durch das Löschen alter Token-Ergebnisse das effiziente Prompt-Caching.
  • Die Nutzung des Language Server Protocol (LSP) während laufender Bearbeitungen liefert dem Agenten verfrühtes Feedback.
  • Server-basierte Architekturen in Coding-Harnesses führten in der Vergangenheit zu Sicherheitslücken für Remote Code Execution.

Viele Open-Source-Projekte iterieren zu schnell und vernachlässigen dabei grundlegende Software-Architektur und Sicherheit. Beispielsweise führt das Speichern jeder Nachricht als separate JSON-Datei zu Performance-Problemen. Das Feedback-System über LSP ist oft hinderlich, da es Fehler meldet, bevor der Agent seinen Bearbeitungszyklus überhaupt abgeschlossen hat.

Minimalismus als Leistungsfaktor im Terminal Bench

  • Der Agent Terminus beweist, dass eine minimale Schnittstelle über TMUX-Sequenzen für Spitzenleistungen in Benchmarks ausreicht.
  • Komplexe Funktionen wie Sub-Agenten oder Websuche sind für gute Codierungsergebnisse oft nicht zwingend erforderlich.
  • Die Branche befindet sich noch in einer Experimentierphase ohne festen Industriestandard für das ideale Agenten-Design.

Benchmarks zeigen, dass Modelle wie Claude 3.5 Sonnet keine tiefen Integrationen benötigen, um komplexe Programmieraufgaben zu lösen. Dies stellt den Nutzen von hochkomplexen Agenten-Schwärmen in Frage. Die Erkenntnis daraus ist, dass die Flexibilität des Nutzers wichtiger ist als eine starre Liste an vordefinierten Features.

Die Architektur des Pi-Agenten

  • Pi besteht aus vier Kernpaketen für AI-Abstraktion, Agenten-Loop, Terminal-UI und dem eigentlichen Coding-SDK.
  • Anstelle instabiler UI-Elemente nutzt Pi persistente Markdown-Dateien für Pläne und To-Do-Listen.
  • Das System unterstützt Hot-Reloading für Erweiterungen, sodass der Agent seine eigenen Tools während der Ausführung modifizieren kann.

Der Aufbau von Pi folgt dem Motto, den Agenten an den Nutzer anzupassen. Mit nur vier Basis-Tools (Read, Write, Edit, Bash) deckt das System alle notwendigen Operationen ab. Erweiterungen wie SSH-Support oder spezifische Frontend-Annotationen lassen sich innerhalb weniger Minuten durch den Nutzer oder das LLM selbst implementieren.

Schutz von Open-Source-Projekten vor KI-Spam

  • Die OSS-Vacation dient als radikale Maßnahme, um Issues und PRs temporär zu schließen und Fokuszeit zu gewinnen.
  • Ein Vouching-System erzwingt eine menschliche Vorstellung, bevor Code-Einreichungen akzeptiert werden.
  • Das Tool Vouch von Mitchell bietet eine standardisierte Lösung für dieses Problem der KI-generierten Pull Requests.

Die Flut an minderwertigen, KI-generierten Beiträgen bedroht die Wartbarkeit von Open-Source-Projekten. Pi setzt daher auf eine strikte Filterung: Nur Nutzer, die in einer manuell gepflegten Markdown-Datei stehen, dürfen Code beisteuern. Dieser Prozess stellt sicher, dass hinter jeder Änderung eine menschliche Intention und Verifizierung steht.

Community Posts

View all posts