So lassen Sie einen Terminal-KI-Agenten Ihren Code unendlich optimieren
Denken Sie darüber nach, wie Sie normalerweise Tests beschleunigen oder Ihr Frontend-Bundle verkleinern. Sie ändern ein paar Zeilen in der Konfiguration, führen den Build aus, prüfen die Sekunden in der Konsole. Langsamer – Sie machen einen Rollback. 5% schneller – Sie committen und versuchen die nächste verrückte Idee. Dieser Prozess verschlingt Stunden routinemäßiger Arbeit, obwohl er im Wesentlichen ein mechanischer Zyklus von Hypothesentests ist.
Andrei Karpathy hat kürzlich das Konzept autonomer Experimente im Autoresearch-Repository demonstriert. Der Entwickler davebcn87 hat diese Idee weiterentwickelt und pi-autoresearch veröffentlicht – eine Erweiterung für den Terminal-KI-Agenten pi. Die Erweiterung delegiert routinemäßige Optimierung an das neuronale Netzwerk: Der Agent formuliert eine Idee, nimmt Änderungen an Dateien vor, misst das Ergebnis, speichert erfolgreiche Erkenntnisse und macht Regressionen rückgängig.
So funktioniert der autonome Zyklus
Die gesamte Idee basiert auf einer einfachen Regel: Versuchen Sie eine Idee, messen Sie sie, speichern Sie bei Erfolg, verwerfen Sie bei Misserfolg.
Der Agent arbeitet direkt in Ihrem Repository. Wenn Sie eine Sitzung starten, erstellt die Erweiterung einen separaten Ordner .auto/ im Projektstammverzeichnis. Darin werden alle Arbeitsdateien gespeichert:
.auto/prompt.md— ein Dokument, das die aktuelle Aufgabe, Messregeln und eine Liste dessen beschreibt, was der Agent bereits versucht hat..auto/measure.sh— ein Bash-Benchmark-Skript, das einen String mit einem numerischen Metrikwert zurückgibt..auto/log.jsonl— ein strukturiertes Protokoll jedes Versuchs mit dem Commit-Hash und dem Status..auto/checks.sh— ein zusätzliches Skript zur Überprüfung von Tests und Typen, damit der Agent nicht die Logik für schöne Zahlen opfert.
Wenn das Kontextfenster des Modells überläuft oder der Agent neu startet, liest er einfach .auto/prompt.md und das Ende des Protokolls erneut ein. Die gesamte Experimenthistorie geht nicht verloren, wenn der Kontext komprimiert wird.
pi install npm:pi-autoresearch
Nach der Installation führen Sie einfach den Skill aus:
/skill:autoresearch-create
Der Agent stellt einige klärende Fragen zum Ziel, den Zieldateien und dem Ausführungsbefehl oder leitet sie aus dem Projektkontext ab. Dann erfasst er Baseline-Metriken und taucht sofort in eine unendliche Schleife ein.
Kampf gegen zufälliges Rauschen bei Messungen
Jeder Benchmark unterliegt Schwankungen. Hintergrundprozesse des Betriebssystems, CPU-Erwärmung oder Netzwerkverzögerungen können die Illusion einer Beschleunigung erzeugen, wo keine vorhanden ist.
Um falsche Erfolge herauszufiltern, berechnet pi-autoresearch einen Konfidenzwert basierend auf der mittleren absoluten Abweichung (MAD). Nach drei Durchläufen beginnt die Erweiterung, die erreichte Verbesserung mit dem Rauschpegel der gesamten Serie zu vergleichen:
- Wert ≥ 2,0x wird grün hervorgehoben — der Gewinn übersteigt das Hintergrundrauschen deutlich.
- Bereich 1,0–2,0x wird gelb angezeigt — es gibt einen Gewinn, aber er liegt am Rand der Fehlertoleranz.
- Wert < 1,0x leuchtet rot — das Ergebnis liegt vollständig innerhalb des statistischen Fehlers.
Das Tool zwingt dem Agenten keine Rollback-Entscheidung auf; es schlägt lediglich vor, einen fragwürdigen Durchlauf zu überprüfen.
Schutz vor Schäden durch Backpressure
Neuronale Netzwerke lieben es zu mogeln. Wenn Sie den Agenten bitten, die Testausführungszeit zu reduzieren, besteht eine starke Versuchung, einfach die Hälfte der Testdateien zu löschen oder Stubs einzufügen.
Um solche Tricks zu verhindern, enthält .auto/checks.sh obligatorische Korrektheitsprüfungen:
#!/bin/bash
set -euo pipefail
pnpm test --run
pnpm typecheck
Das Verifizierungsskript wird nach jeder erfolgreichen Messung ausgeführt. Wenn Tests fehlschlagen oder die Typprüfung abbricht, wird das Experiment sofort als fehlgeschlagen markiert (checks_failed) und alle Änderungen im Arbeitsbranch zurückgesetzt. Die Ausführungszeit der Prüfungen selbst wird nicht zur Hauptgeschwindigkeitsmetrik hinzugefügt.
Chaos in saubere Branches sortieren
Während eines mehrstündigen Zyklus erstellt der Agent Dutzende von Commits und ändert ständig verschiedene Dateien. Ein solches Protokoll direkt in den Hauptbranch zu mergen, wäre für den Reviewer ein Albtraum.
Um dieses Problem zu lösen, gibt es einen Befehl:
/skill:autoresearch-finalize
Der Skill analysiert .auto/log.jsonl, gruppiert erfolgreiche Änderungen in unabhängige logische Blöcke und schlägt eine Struktur zur Genehmigung vor. Nach der Bestätigung erstellt das Tool separate saubere Branches vom ursprünglichen Commit. Jeder Branch enthält strikt ein logisches Set von Änderungen mit der Gewinnbeschreibung in der Commit-Nachricht, was sie einfach zu überprüfen und separat zu mergen macht.
Monitoring und Hooks
Sie können den Fortschritt direkt im Terminal oder über den Browser überwachen:
- Das Widget über dem Editor zeigt ständig eine Ergebnistabelle.
- Die Tastenkombination
Ctrl+Shift+Föffnet ein Vollbild-Terminal-Dashboard mit einer Versuchsliste. - Der Befehl
/autoresearch exportgeneriert eine interaktive Webseite mit Diagrammen zur Metrikdynamik.
Wenn der Basiszyklus nicht ausreicht, können Sie ausführbare Dateien before.sh und after.sh im Verzeichnis .auto/hooks/ platzieren. Sie werden an Iterationsgrenzen ausgelöst. Darüber können Sie das Senden von Systembenachrichtigungen an den Desktop einrichten, Ideen in externer Dokumentation suchen oder ein Trainingsjournal führen. Das Skript empfängt Kontext über Standard-Input im JSON-Format, und seine stdout-Ausgabe wird als Systemhinweis an den Agenten übergeben.
Worauf Sie achten sollten
Autonome Zyklen können Ihr API-Guthaben schnell erschöpfen, wenn sie über Nacht unbeaufsichtigt laufen. Es ist sinnvoll, sofort ein Iterationslimit in der Datei .auto/config.json festzulegen:
{
"maxIterations": 30
}
Der Agent stoppt, sobald er dreißig Experimente abgeschlossen hat.
Das Tool funktioniert gut bei Aufgaben mit klar messbaren numerischen Ergebnissen: Optimierung der webpack-Build-Größe, Beschleunigung der Unit-Test-Ausführung, Optimierung von Hyperparametern für das Training kleiner Modelle oder Feintuning von Lighthouse-Scores. Wenn Sie bereits den pi-Konsolenagenten verwenden, ist das Projekt definitiv einen Versuch bei einer echten Optimierungsaufgabe wert.
Ähnliche Projekte