Was ich beim Bauen des Pi-Coding-Agenten gelernt habe
(mariozechner.at)- pi-coding-agent ist ein Coding-Agent-Framework, das komplexe Funktionen minimiert und so entworfen wurde, dass Nutzer die Kontextkontrolle und Transparenz vollständig behalten
- Die Kernkomponenten sind die vier Bausteine pi-ai, pi-agent-core, pi-tui und pi-coding-agent, die jeweils LLM-API-Integration, Agent-Loop, Terminal-UI und CLI-Integration übernehmen
- Systemprompt und Tool-Set werden unter 1000 Token gehalten, und mit nur vier Tools – read/write/edit/bash – wird eine extreme Vereinfachung angestrebt
- Sicherheitsbeschränkungen, Sub-Agents, Plan-Modus und MCP-Unterstützung werden vollständig ausgeschlossen; stattdessen liegt der Fokus auf vollständiger Beobachtbarkeit und Kontrolle
- Benchmark-Ergebnisse und praktische Nutzungserfahrungen zeigen, dass ein einfaches und transparentes Design gegenüber komplexen Agenten durchaus konkurrenzfähig ist
pi-ai und pi-agent-core
- pi-ai bietet eine einheitliche API zur Integration verschiedener LLM-Anbieter wie Anthropic, OpenAI, Google, xAI und Groq
- Einschließlich Streaming, Tool-Calling, Unterstützung für Reasoning-(Trace-)Daten, Token- und Kostenverfolgung sowie Browser-Kompatibilität
- Mit nur vier zentralen APIs (OpenAI Completions/Responses, Anthropic Messages, Google Generative AI) lässt sich mit den meisten Modellen kommunizieren
- API-Unterschiede zwischen den einzelnen Anbietern werden einheitlich behandelt
- Zum Beispiel Unterschiede bei Feldnamen wie
max_tokens, der Position von Reasoning-Feldern oder fehlender Unterstützung für die Rolledeveloper - Da Token-Nutzungsdaten je nach Anbieter unterschiedlich gemeldet werden, ist eine exakte Kostenberechnung unmöglich; pi-ai verfolgt sie daher nach dem Best-Effort-Prinzip
- Zum Beispiel Unterschiede bei Feldnamen wie
- Mit der Funktion Context handoff kann während einer Sitzung das Modell oder der Anbieter gewechselt werden
- Beispiel: Beim Wechsel von Anthropic → OpenAI → Google bleiben Reasoning-Inhalte erhalten, indem sie in ``-Tags umgewandelt werden
- Über eine Model Registry werden typsichere Modelldefinitionen unterstützt
- Durch Parsen von Daten aus OpenRouter und models.dev werden Kosten- und Funktionsinformationen pro Modell automatisch erzeugt
- Abbrechen von Requests (abort) und Rückgabe partieller Ergebnisse werden vollständig unterstützt
- Wird Streaming per AbortController abgebrochen, können Zwischenergebnisse direkt weiterverwendet werden
- Einführung einer getrennten Struktur für Tool-Ergebnisse
- Für das LLM bestimmter Text und für die UI anzuzeigende Daten werden getrennt zurückgegeben; die Argumentvalidierung erfolgt mit TypeBox/AJV
- Künftig ist zusätzlich Streaming von Tool-Ergebnissen geplant
- Der Agent-Loop wiederholt automatisch Nachrichtenverarbeitung, Tool-Ausführung und Ergebnis-Feedback
- Die ereignisbasierte Struktur erleichtert die Umsetzung reaktiver UIs
- Unnötige Steuerparameter (etwa maximale Schritte) wurden entfernt, um das System zu vereinfachen
pi-tui
- pi-tui ist ein auf Node.js basierendes Terminal-UI-Framework, das Echtzeit-Updates mit minimalem Flicker unterstützt
- Durch Differential Rendering werden nur geänderte Zeilen aktualisiert
- Mit synchronisierten Ausgabe-Sequenzen (CSI ?2026h/l) wird Flicker minimiert
- Von zwei TUI-Ansätzen wurde ein CLI-artiger Ausgabemodus gewählt, der den Scrollback-Puffer beibehält
- Natürliches Scrollen, Suchen und andere Standardfunktionen des Terminals lassen sich unverändert nutzen
- Ähnliche Struktur wie bei Claude Code, Codex und Droid
- Verwendet wird eine Retained-Mode-UI
- Jede Komponente cached ihr Render-Ergebnis und zeichnet nur bei Änderungen neu
- So sind effiziente Updates ohne vollständiges Re-Rendering des gesamten Bildschirms möglich
- Performance und Speicherverbrauch sind gering; selbst große Sitzungen lassen sich mit einigen hundert KB reibungslos verarbeiten
pi-coding-agent
- pi-coding-agent ist ein CLI-basierter Coding-Agent mit folgenden Funktionen
- Unterstützung für Windows/Linux/macOS, Sitzungsverwaltung (Fortsetzen/Verzweigen), Modellwechsel und Laden von projektbezogenen AGENTS.md
- Unterstützung für OAuth-Authentifizierung, Live-Wechsel von Themes, Export von Sitzungen als HTML und Headless-Modus (JSON/RPC)
- Der Systemprompt ist eine kompakte Form mit unter 1000 Token
- Es werden nur die vier Tools read/write/edit/bash angegeben
- Unnötige Erklärungen oder komplexe Regeln entfallen; Nutzer können das Verhalten über AGENTS.md frei erweitern
- Das Tool-Set besteht minimal aus vier Tools
- Es werden nur
read,write,editundbashverwendet, was für die meisten Coding-Aufgaben ausreicht - Zusätzliche Tools können optional aktiviert werden (z. B. grep, find, ls)
- Es werden nur
- YOLO-Modus ist standardmäßig aktiv
- Kein eingeschränkter Zugriff auf das gesamte Dateisystem und keine Beschränkung bei der Befehlsausführung
- Sicherheits-Prompts oder Vorabvalidierung entfallen; stattdessen wird die Nutzung in einer Container-Umgebung empfohlen
- Eingebaute To-do-Funktion, Plan-Modus, MCP, Background bash und Sub-Agents wurden alle entfernt
- To-do/Plan werden einfach durch dateibasierte Verwaltung (TODO.md, PLAN.md) ersetzt
- MCP wurde wegen Token-Verschwendung und Komplexität ausgeschlossen und stattdessen durch den Ansatz CLI+README ersetzt
- Für Background bash wird die Nutzung von tmux empfohlen
- Sub-Agents sind wegen mangelnder Sichtbarkeit deaktiviert; falls nötig, kann der Agent sich über bash selbst aufrufen
- Beobachtbarkeit (Observability) steht im Mittelpunkt
- Alle Befehle, Dateizugriffe und Ausgaben werden transparent angezeigt
- Im Kontrast zur „Blackbox“-Struktur anderer Agenten wie Claude Code
Benchmarks
- Getestet wurde auf Terminal-Bench 2.0 zusammen mit dem Modell Claude Opus 4.5
- Im Vergleich zu Codex, Cursor, Windsurf und anderen wurde wettbewerbsfähige Leistung erzielt
- Die Ergebnisdatei (
results.json) wurde an das öffentliche Repository übermittelt
- Auch einfache Agenten wie Terminus 2 zeigen ähnliche Leistung und bestätigen damit die Wirksamkeit eines minimalistischen Ansatzes
Fazit
- pi ist ein Coding-Agent, der Kontextkontrolle, Einfachheit und Transparenz höher gewichtet als komplexe Funktionen
- Sowohl in der Praxis als auch in Benchmarks zeigt er eine Effizienz auf Augenhöhe mit großen Agenten
- Als künftige Ergänzungen sind im Wesentlichen Kontextkomprimierung (compaction) und Streaming von Tool-Ergebnissen geplant
- Das Projekt ist als Open Source veröffentlicht und garantiert freie Forks und Erweiterungen
- Die zentrale Lehre lautet: „Einfachheit bedeutet Kontrolle, und Kontrolle bedeutet Produktivität“
2 Kommentare
Pi: Analyse von OpenClaws Kernstück und einem extrem vereinfachten KI-Agenten für Entwickler
Hacker-News-Kommentare
Das wirkt wie ein wirklich großartiges und durchdachtes Projekt.
Ich stimme der Bedeutung von Context Engineering und baumartigen Gesprächsstrukturen ebenfalls voll zu.
Der bisherige lineare Gesprächsfluss ist viel zu eingeschränkt und war unpraktisch, wenn man bei Recherche oder Ideenfindung mit LLMs zusammenarbeitet.
Ich habe mit einer ähnlichen Philosophie auch ein persönliches Tool gebaut, bei dem der Kontext gut aufgebaut und wiederverwendet wird oder Side-Quests ausgeführt werden, aus denen nur gute Ergebnisse zurückkommen.
Deine Version ist eine viel wertvollere Umsetzung. Dank dir habe ich Pi kennengelernt.
So bleibt der Speicher über Sitzungen hinweg erhalten und beim Erzeugen von Sub-Agenten wird weniger Kontext verschwendet.
Siehe mein Beispielcode.
Die Beziehung zwischen OpenClaw und Pi-agent fühlt sich ähnlich an wie die zwischen ollama/llama-cpp.
Ersteres bekommt Aufmerksamkeit, aber eigentlich ist Letzteres beeindruckender.
Claude Code ist derzeit dank der Abo-Vorteile okay, aber wenn sich der Markt stabilisiert und die API-Preise sich annähern, scheint eine Premium-Erfahrung mit tokenbasierter Abrechnung die bessere Wahl zu sein.
Letztlich werden anpassbare Agent-Frameworks meiner Meinung nach geschlossene Apps übertreffen.
Die Kostenstruktur für Inferenz ist effizienter als gedacht, und es gibt genug R&D-Kapital.
Alle Tools werden laufend besser, und Konkurrenzprodukte sind ebenfalls nicht perfekt.
Persönlich freue ich mich, dass Peters Projekt Aufmerksamkeit bekommt.
Bei OpenClaw gibt es noch immer viele PRs, aber Pi liegt eher bei 1/100 davon und ist deshalb viel leichter zu pflegen.
OpenAI sagte damals auch: „Wir verstehen nicht, warum ChatGPT so beliebt ist, GPT gab es doch schon per API.“
Es überrascht mich, dass Google immer noch kein Tool-Call-Streaming unterstützt.
Nicht einmal ein lokaler Tokenizer wird bereitgestellt, sodass AI Studio Token jedes Mal ineffizient per API-Aufruf zählt.
Die CPU-Auslastung steigt bis auf 100 %, sodass mein Notebook mehr Strom zu verbrauchen scheint als ein TPU-Cluster.
Die Sicherheitsmaßnahmen anderer Coding-Agenten sind größtenteils bloß Security Theater.
Codex führt Befehle in einer OS-Sandbox aus, zum Beispiel macOS Seatbelt, also ist es nicht völlig nutzlos.
Das ist zwar lästig, aber besser als die Folgen eines falschen Befehls zu beheben.
Es fasst die DB nicht an und ändert nur UI- und Middleware-Code.
Ich habe schon einige Power-User gesehen, die zu Pi wechseln, und ich denke ebenfalls darüber nach.
Der Vorteil von Pi liegt in der vollständigen Kontrolle über den Kontext und einer erweiterbaren Tool-Struktur.
Es gibt verschiedene Beispiele für System-Prompts, Todo-Erweiterungen, MCP-Adapter und mehr.
Wenn man Leistungsgrenzen des Kontexts oder Probleme wie Context Rot und Contextual Drift versteht, wird der Wert von Pi klar.
Sammlung relevanter Links
Armin ist seiner Zeit eindeutig voraus.
Claude Code bleibt bei Hooks und Kontextverwaltung noch immer oberflächlich.
Ich benutze noch immer Cursor.
Ich wollte zu Claude Code wechseln, aber bei meiner kleinen Codebasis ist Cursor viel schneller.
Allerdings ist die Diff-Review-UI nicht in Git integriert, was unpraktisch ist.
Es ist schwer zu unterscheiden, welche Änderungen von der AI stammen und welche von mir, und eine Git-integrierte Review erscheint mir wichtiger.
Bei Claude Code fühlt es sich unsicher an, die Ergebnisse einfach zu vertrauen und laufen zu lassen.
Entscheidend ist, dass man die Modelle frei wechseln kann. Je nach Sprache oder Aufgabentyp variiert die Modellleistung.
Ich habe einen Hook gebaut, der beim Start eine Dateiliste in den Kontext legt, um es zu beschleunigen.
Ich habe auch ein Custom-Tool gebaut, das mehrere Dateien gleichzeitig bearbeitet und etwa dreimal schneller war, es aber wegen einiger Sonderfälle deaktiviert.
Zum Beispiel für Frontend-Testautomatisierung oder Anpassungen an Landingpages.
Die Kernfunktionen steuere ich in einer separaten Claude-Instanz in einer engen Feedback-Schleife.
Der Artikel über eine minimale Agentenarchitektur war beeindruckend.
Mir gefällt die Philosophie: „Wenn man es nicht braucht, baut man es nicht.“
Ich nutze OpenClaw, um mehrere Workflows parallel zu verwalten — Kundensupport, Deployment-Monitoring, Code-Reviews und mehr.
Entscheidend ist Context Engineering.
Das Workspace-first-Modell von OpenClaw setzt mit AGENTS.md, TOOLS.md und dem Verzeichnis memory/ auf sitzungsübergreifendes Lernen.
Man kann in Logs beobachten, wie der Agent selbst lernt.
Mir gefällt der Ansatz, statt Sicherheits-Theater ein realistisches Bedrohungsmodell anzuerkennen.
Ich stimme auch zu, dass mehrere spezialisierte Agenten parallel besser sind als ein universeller Agent.
Ein Vergleich von Pi und OpenClaw auf Terminal-Bench wäre interessant.
Der Artikel darüber, warum Armin Ronacher Pi verwendet, war gut.
Erst durch Armins Beitrag habe ich erfahren, dass Pi das Agent-Harness von OpenClaw ist.
Pi hat eine JavaScript-basierte Struktur, die gut zur Browser-Sandbox-Architektur passt.
Ich halte das für passend zur zukünftigen Richtung von AI-Agenten.
Allerdings hätte ich mir gewünscht, dass der Autor bei Vendor Extensions etwas flexibler wäre.
Verwandte Diskussion
Ich verwende den YOLO-Modus noch nicht.
Es dürfte noch etwa sechs Monate dauern, bis das Tooling wirklich vollständig ist.
Ein Agent muss fast nie beliebige Befehle ausführen können.
Es reicht, wenn lint, Suche, Bearbeitung und Webzugriff in ein Berechtigungssystem integriert sind.
Eine Runtime mit Sandboxing und Rechtesteuerung wie Deno oder Workerd wäre eine erste Verteidigungslinie.
Deshalb ist für mich schwer nachvollziehbar, warum Anthropic Bun gewählt hat — die Sicherheitsarchitektur ist dort praktisch nicht vorhanden.