Agent Design

pi Coding Agent – Warum weniger oft mehr ist

Branko Trebsche 3 Min. Lesezeit Claude Code Coding Agent LLM pi System Prompt
pi Coding Agent – Warum weniger oft mehr ist
Auf einen Blick

Mario Zechners Coding-Agent pi kommt mit vier Tools und unter 1000 Token System-Prompt aus. Ein Blick auf Architektur, Design-Entscheidungen und die Frage, was andere Harnesses davon lernen können.

Der Reiz des Minimalismus

Coding-Agent-Harnesses werden immer komplexer. Claude Code hat in einem Jahr über 80% neue Funktionen bekommen. Viele Nutzer brauchen sie nicht. Mario Zechner hat daraus Konsequenzen gezogen. Er baute pi – eine eigene Harness, die radikal weglässt. System-Prompt unter 1000 Token. Vier Tools. Kein MCP. Kein Plan-Mode. Keine Sub-Agents. pi zeigt: Kontrolle und Einfachheit sind besser als maximale Features.

pi-ai: Eine einheitliche LLM-API

Die Basis von pi ist pi-ai, eine schlanke Abstraktionsschicht für LLM-Provider. Zechner konzentriert sich auf vier APIs: OpenAI Completions, OpenAI Responses, Anthropic Messages und Google Generative AI. Die größte Herausforderung: Provider-Unterschiede. Cerebras mag kein store-Feld. Mistral nutzt max_tokens statt max_completion_tokens. Google unterstützt bis heute kein Tool-Call-Streaming.

Das Context-Handoff zwischen Providern ist besonders clever. Man wechselt mitten in einer Session von Claude zu GPT. Thinking-Traces werden automatisch konvertiert. Der gesamte Kontext ist als JSON serialisierbar. pi-ai unterstützt Abbrüche (AbortController). Tool-Ergebnisse werden aufgeteilt: Text fürs LLM, Daten für die UI. Diese Abstraktion fehlt in anderen APIs.

pi-tui: Kein Full-Screen, kein Geflimmer

Zechner verzichtet auf Full-Screen-TUIs. Er nutzt den nativen Scrollback-Puffer des Terminals. Das bringt natürliches Scrollen und integrierte Suche – ohne Extra-Implementierung.

Der Rendering-Ansatz ist einfach. Ein Component-Objekt hat eine render(width)-Methode. Sie gibt Zeilen mit ANSI-Codes zurück. Ein Container sammelt alle Zeilen. pi vergleicht geänderte Zeilen und rendert ab der ersten Abweichung neu. Synchronized Output Escape Sequences verhindern Flicker. Claude Code flimmert übrigens mehr.

pi-coding-agent: Vier Tools, eine Philosophie

Der Agent nutzt nur read, write, edit und bash. Wer Einschränkungen will, nutzt read-only: grep, find, ls. pi läuft im YOLO-Modus – keine Permission-Prompts, keine Pre-Checks, voller Dateisystem-Zugriff. Zechners Argument: Sobald ein Agent Code lesen, schreiben und ausführen kann, ist Sicherheit Theater.

pi verzichtet bewusst auf:

  • Sub-Agents – pi startet sich selbst per Bash. Volle Observabilität. Claude Code hält Sub-Agents als Black Box.
  • Plan-Mode – wer plant, schreibt eine PLAN.md. Das überlebt Sessions und wird versioniert.
  • MCP – CLI-Tools mit README sind token-effizienter. Ein Playwright-MCP kostet 13.700 Token.
  • To-Dos – Externe TODO.md ist verlässlicher als internes State-Tracking.
  • Background-Bashtmux ist mächtiger und observabler.

Die Terminal-Bench-Ergebnisse bestätigen den Ansatz. pi liegt mit Claude Opus 4.5 wettbewerbsfähig neben Codex und Cursor. Terminus 2 nutzt nur tmux und zeigt ähnliche Resultate.

Was andere Harnesses lernen können

Zechners Kern-Erkenntnis: Kontext-Engineering ist entscheidend. Man muss kontrollieren, was ins Modell geht. pi erlaubt das durch minimale System-Prompts, transparente Tool-Ergebnisse und hierarchische AGENTS.md-Dateien.

Der Beitrag enthält eine selbstkritische Beobachtung: Modelle lesen oft nur Datei-Ausschnitte. Sie übersehen wichtigen Kontext. Viele Pull-Requests in pi-mono wurden überarbeitet. Die Agenten hatten das Gesamtbild nicht erfasst. Keine Schuld der Beitragenden. Aber ein Zeichen: Wir vertrauen Agenten zu sehr.

pi ist kein Tool für jeden. Wer Sicherheits-Prompts und Plan-Mode braucht, nutzt Claude Code oder opencode. Wer Kontrolle, Einfachheit und Transparenz sucht, findet in pi einen Gegenentwurf.

Fachbegriffe in diesem Artikel
Kontext-Engineering
Die gezielte Steuerung und Optimierung der Informationen, die einem LLM in den Kontext gegeben werden. Ziel ist es, dem Modell genau die relevanten Fakten zu liefern, ohne den Kontext mit unnötigen Daten zu belasten.
Tool-Call-Streaming
Die Fähigkeit eines LLM-Providers, Tool-Aufrufe als Stream zu übertragen, noch während das Modell die Antwort generiert. Google Generative AI unterstützt dies bis heute nicht.
Scrollback-Puffer
Der Bereich des Terminal-Fensters oberhalb des sichtbaren Viewports. Enthält die gesamte Ausgabe der Session. Coding-Agenten, die den nativen Puffer nutzen, sparen sich eigene Scroll- und Such-Implementierung.
AbortController
Ein JavaScript-API-Objekt zum Abbrechen von asynchronen Vorgängen. In Coding-Agenten wird es verwendet, um laufende LLM-Requests oder Tool-Ausführungen vorzeitig zu beenden, etwa bei Timeout oder Nutzerabbruch.
Context-Handoff
Der Wechsel zwischen verschiedenen LLM-Providern oder -Modellen innerhalb einer aktiven Session. Der gesamte Gesprächsverlauf wird dabei in ein provider-neutrales Format konvertiert, sodass der neue Anbieter nahtlos fortsetzen kann.
Terminal-Bench
Ein Benchmark zur Bewertung von Coding-Agenten anhand praktischer Aufgaben in der Terminal-Umgebung. Misst, wie gut Agenten echte Entwicklungsaufgaben lösen, nicht nur synthetische Codefragen.
System-Prompt
Die initiale Anweisung an ein LLM, die sein Verhalten, seine Rolle und seine verfügbaren Werkzeuge definiert. Ein guter System-Prompt ist kurz und präzise – viele Coding-Agenten verschwenden tausende Token mit überflüssigen Anweisungen.
Coding-Agent
Ein KI-System, das selbstständig Code schreiben, ausführen, testen und debuggen kann.
Claude Code
Ein Coding-Agent von Anthropic, der direkt im Terminal läuft. Bietet Funktionen wie Editieren, Bash-Zugriff und Sub-Agents. Nutzt ein ausführliches System-Prompt-Template mit über 10.000 Tokens.
Anthropic
Ein US-amerikanisches KI-Unternehmen, bekannt für die Entwicklung der Claude-Modelle. Anthropic hat das SKILL.md-Format als offenen Standard für Agent-Fähigkeiten veröffentlicht.
Plan-Mode
Ein Betriebsmodus in Coding-Agenten, bei dem der Agent nur analysiert und plant, ohne Dateien zu verändern. pi hat keinen Plan-Mode – stattdessen wird in eine PLAN.md-Datei geschrieben.
Sub-Agent
Ein untergeordneter Agent, der vom Haupt-Agenten für Teilaufgaben gestartet wird. Nachteil: Sub-Agents sind oft Black Boxes, deren vollständige Kommunikation für den Nutzer nicht einsehbar ist.
Token
Die kleinste Verarbeitungseinheit eines LLMs. Ein Token kann ein Wort, Wortteil oder Zeichen sein. Die Länge eines Textes wird in Tokens gemessen.
Grep
Unix-Kommandozeilen-Tool für die Suche nach regulären Ausdrücken in Textdateien; wird als Synonym für lexikalische Textsuche verwendet
tmux
Ein Terminal-Multiplexer, der mehrere Shell-Sitzungen in einem Terminalfenster verwaltet. Wird in Coding-Agenten als Alternative zu eingebauten Background-Prozessen verwendet.
MCP
Model Context Protocol – Ein Protokoll zur Anbindung externer Werkzeuge und Dienste an LLM-Agenten. MCP-Server stellen APIs als Tool-Beschreibungen bereit, die der Agent dynamisch nutzen kann. In der Praxis oft überdimensioniert für einfache Anwendungsfälle.
RAG
Retrieval-Augmented Generation – Ein Verfahren, bei dem ein LLM vor der Antwortrelevante Informationen aus einer externen Wissensdatenbank abruft, um seine Antworten zu verbessern.
TPU
Die Tensor Processing Unit ist ein von Google entwickelter Spezialchip für maschinelles Lernen. Er wurde ursprünglich für das Training und die Inferenz von neuronalen Netzen entworfen und war Vorläufer der LPU-Architektur von Groq.

Häufige Fragen

Was ist der pi Coding Agent?

pi ist eine minimalistische Coding-Agent-Harness von Mario Zechner. Sie nutzt vier Tools, einen System-Prompt unter 1000 Token und verzichtet auf MCP, Sub-Agents und Plan-Mode.

Unterschied zwischen pi und Claude Code?

pi hat einen System-Prompt unter 1000 Token, Claude Code nutzt etwa 10.000. pi hat vier Tools, Claude Code dutzende. pi verzichtet auf Sicherheits-Prompts und läuft im YOLO-Modus.

Wie funktioniert der Provider-Wechsel bei pi?

pi-ai konvertiert provider-spezifische Artefakte beim Wechsel automatisch. Thinking-Traces werden in <thinking>-Tags verpackt. Der gesamte Kontext ist als JSON serialisierbar.

Welche Nachteile hat pi?

pi hat keine Sicherheitsmechanismen, kein MCP, keine Background-Prozesse und keinen Plan-Mode. YOLO-Modus bedeutet volles Vertrauen in den Agenten.

Was bedeutet der Terminal-Bench für pi?

pi erreicht mit Claude Opus 4.5 wettbewerbsfähige Ergebnisse neben Codex und Cursor. Der minimalistische Ansatz schneidet in der Praxis genauso gut ab wie komplexere Harnesses.