Pi Durable ist ein frisches experimentelles Paket von Earendil, dem Unternehmen hinter dem Coding-Agenten Pi, das zudem Pi 1.0 veröffentlicht hat. Es wird als Framework für den Aufbau von Agenten angepriesen, die eine nachhaltige Funktion ermöglichen, Abstürze überstehen und auf mehreren Maschinen arbeiten können.
Was Pi Durable tut
Pi Durable übernimmt nicht die Rolle von Pi, dem Coding-Agenten. Es fungiert als Framework für den Aufbau jeder Art von agenturbasierten Anwendung, wobei Coding-Agenten zu den Möglichkeiten gehören. Das Team hat erklärt, dass es Code und Prinzipien von Pi, dem Coding-Agenten, übernimmt, wobei Minimalismus und Flexibilität als gemeinsame Bezugspunkte dienen.
Dieses Paket wurde mit Agenten im Sinn konstruiert, die unbegrenzte Gespräche aushalten, katastrophale interne und externe Ausfälle überstehen und mehrere Menschen gleichzeitig bei der Steuerung desselben Agenten unterstützen können. Das Design zielt auf Agenten ab, die langlebig, anpassungsfähig und überall ausführbar sind.
Das Harness-Konzept
Ein Harness wird von dem Team als die Kombination aus Speicher und der notwendigen Infrastruktur definiert, um Gespräche mit großen Sprachmodellen parallel zu führen. Es liefert sowohl die Werkzeuge, auf die diese Modelle zugreifen, als auch die Ausführungsumgebungen, in denen diese Werkzeuge arbeiten.
Ein Transkript erfasst einen Austausch zwischen einer Person und einem Agenten. Der Agent besteht aus dem Modell und seinen Einstellungen, einschließlich der Denkebene und den Werkzeugen, auf die es zugreift. Diese Werkzeuge führen ihre Aufgaben innerhalb von Ausführungsumgebungen aus, die beispielsweise ein Laptop, eine Remote-VM oder ein In-Memory-Sandbox sein können.
Die Auswahl der Werkzeuge und der Ausführungsumgebung für einen Agenten liegt bei jedem Gespräch. Jede Aktion, die vom Harness ausgeführt wird, sei es der Aufruf des Modells oder die Ausführung eines Werkzeugs, zählt als eine Aufgabe.
Warum Pi Durable so aufgebaut ist
Das Pi Durable-System ist dafür konzipiert, überall zu funktionieren, wo eine JavaScript-Laufzeitumgebung vorhanden ist. Es verbindet sich mit einem Speicher-Backend und umfasst Speicher, SQLite- und JSONL-Speicher unter seinen Komponenten. Das Paket enthält außerdem eine Konformitäts-Suite und Benchmarks, die auf benutzerdefinierte Backends abzielen.
Keine Node-APIs werden im SQLite- und JSONL-Speichercode verwendet, was bedeutet, dass er auf Bun läuft oder innerhalb eines Cloudflare Durable Objects mit einem kleinen Adapter ausgeführt wird. Die Speicher-Schnittstelle selbst ist klein und einfach auf bestehende Systeme wie einen Key-Value-Store oder Postgres aufzubauen.
Ein einzelner Prozess steuert den Speicher zu jedem Zeitpunkt, wobei andere Clients sich mit ihm verbinden. Das Harness behält nur den aktuellen Arbeitsbereich im Speicher auf SQLite: aktive Transkripte, live Tasks und ausstehende Einreichungen. Wenn ältere Nachrichten das Limit des Kontextfensters des Modells erreichen, werden sie komprimiert.
Tools Remote Ausführen
Wenn ein Tool eine Datei oder eine Shell benötigt, greift es auf eine Ausführungsumgebung für diese Ressourcen zu. Pi Durable bietet eine Node-Ausführungsumgebung, die Tools Zugriff auf lokale Dateien gewährt.
Da die Ausführungsumgebungsschnittstelle einfach und leicht aufzubauen bleibt, können Remote-Ausführungsumgebungen für die Tools geöffnet werden. Diese Anordnung erlaubt dem Harness, auf einem Computer zu arbeiten, während seine Tools auf einem separaten arbeiten.
Jedes Gespräch findet an seinem eigenen Ort statt, da die env-Funktion die Einstellung für jeden Tool-Aufruf aus dem Arbeitsverzeichnis dieses jeweiligen Gesprächs konstruiert.
Der Codebasis
Der vollständige Quellcode für Pi Durable, ohne Tests, umfasst etwa 15.000 Zeilen. Übersetzt in Tokens ergibt das etwa 150.000 mit GPT und etwa 250.000, was das Team für die obere Grenze hält, mit Claude.
Ein Agent benötigt selten die volle Ausdehnung von Pi Durable, um zu funktionieren. Von seinen Komponenten machen die Speicher-Backends nur 3.000 Zeilen aus, die die meisten Agents sicher weglassen können.
Wie es nach Abstürzen wieder hochfährt
Jede Phase eines Runs in Pi Durable erstellt einen Datensatz, bevor der nächste Schritt beginnt. So kann ein Agent überleben, wenn sein Prozess endet, egal ob der Computer in den Schlafmodus geht, der Container neu bereitgestellt wird oder der Computer aus dem Speicher läuft, und genau dort wiederaufnehmen, wo er aufgehört hat.
Ein einzelnes Root-Gespräch wird beim ersten Gebrauch erstellt und bleibt danach bei jedem Neustart dasselbe. Das ist das, worauf ein einfaches Setup hinausläuft.
„`javascript import { BACKGROUND_CONTEXT } from „@earendil-works/chord/context“; import { createModels } from „@earendil-works/pi-ai/models“; import { openaiProvider } from „@earendil-works/pi-ai/providers/openai“; import { createRegistry, Harness } from „@earendil-works/pi-durable“; import { NodeExecutionEnv } from „@earendil-works/pi-durable/env/node“; import { openNodeSqliteStorage } from „@earendil-works/pi-durable/storage/sqlite/node“; import { CodingTools } from „@earendil-works/pi-durable/tools“;
Eine Speichereinheit, die aus einer SQLite-Datenbank mit dem Pfad „./agent.sqlite“ erstellt wurde, wird geöffnet, und darauf wird eine Harness aufgebaut. Diese Harness beinhaltet eine Sammlung von Modellen, die über einen OpenAI-Provider eingerichtet wurden, sowie ein Registry, das durch CodingTools installiert wurde – ein Paket, das das Lesen, Schreiben, Bearbeiten und Shell-Arbeit abdeckt. Die gesamte Operation läuft innerhalb einer Ausführungsumgebung, die von Node.js abgeleitet ist und auf jedes Arbeitsverzeichnis gerichtet werden kann, das ihr übergeben wird, andernfalls wird das Arbeitsverzeichnis des aktuellen Prozesses verwendet.
const root = await harness.root(context, { agent: { model: { provider: „openai“, modelId: „gpt-6.1-sol“ }, cwd: „/work/repo“, }, });
Kernaussagen
- Pi Durable liefert Speicher, SQLite und JSONL-Speicher.
- Der SQLite- und JSONL-Code verwendet keine Node-APIs.
- Der gesamte Codebestand umfasst etwa 15.000 Zeilen ohne Tests.
- Speicher-Backends umfassen 3.000 Zeilen, die die meisten Agenten überspringen können.
- Checkpoints speichern jeden Schritt, bevor eine Ausführung fortgesetzt wird.
Das Team beschreibt das Projekt als experimentell und sagt, sie bräuchten Unterstützung, um daraus die stärkste Harness überhaupt zu machen.
Quellenmaterial: „Pi Durable“, earendil.com.
Das Notizbuch abonnieren.
Die besten Geschichten des Tages und jedes neue Urteil, in klarem Deutsch, um sieben im Postfach. Eine Mail am Tag, nicht mehr.

