- Coding-Agenten wie Claude Code von Anthropic und Codex CLI von OpenAI verbessern den praktischen Nutzen von LLMs für die Erzeugung funktionierenden Codes grundlegend, weil sie Code direkt ausführen, Fehler beheben, bestehende Implementierungen untersuchen und durch Experimente wirksame Lösungen finden können
- Die Schlüsseltechnik, um das Potenzial dieser Werkzeuge voll auszuschöpfen, ist das Entwerfen agentischer Loops. Wenn man einen Coding-Agenten mit einem klaren Ziel und einem Werkzeug-Set auf ein Problem ansetzt, kann man ihn als Werkzeug verstehen, das per Brute Force eine wirksame Lösung findet
- Ein LLM-Agent ist definiert als das Ausführen von Werkzeugen in einer Schleife, um ein Ziel zu erreichen; die Kunst der guten Nutzung besteht darin, die Werkzeuge und die Schleife, die der Agent verwendet, sorgfältig zu entwerfen
- Der YOLO-Modus (alle Befehle sind standardmäßig genehmigt) ist riskant, aber entscheidend, um per Brute Force die produktivsten Ergebnisse zu erzielen. Für eine sichere Ausführung kommen Docker-Sandboxes, andere Computerumgebungen wie GitHub Codespaces oder bewusst in Kauf genommenes Risiko infrage
- Die Auswahl der richtigen Werkzeuge (Shell-Befehle und Pakete), die Ausgabe streng begrenzter Zugangsdaten (Testumgebung, Budgetlimits) und der Einsatz bei Problemen mit klaren Erfolgskriterien und notwendigem Trial-and-Error (Debugging, Performance-Optimierung, Dependency-Upgrades, Container-Optimierung) sind die Kernprinzipien beim Entwerfen agentischer Loops
Die Freude am YOLO-Modus
-
Die Gefährlichkeit von Agenten
- Agenten sind von Natur aus riskant
- Sie können falsche Entscheidungen treffen oder Opfer bösartiger Prompt-Injection-Angriffe werden
- Werkzeugaufrufe können schädliche Folgen haben
- Das mächtigste Werkzeug moderner Coding-Agenten ist „diesen Befehl in der Shell ausführen“; ein fehlgeleiteter Agent kann daher alles tun, was ein Nutzer auch durch direktes Ausführen von Befehlen tun könnte
- Zitat von Solomon Hykes:
> AI-Agenten sind LLMs in einer Schleife, die deine Umgebung zerstören
-
Grenzen des Standardmodus mit Genehmigungen
- Coding-Agenten wie Claude Code reagieren darauf, indem sie standardmäßig für fast jeden ausgeführten Befehl eine Genehmigung verlangen
- Das ist etwas lästig, vor allem aber verringert es die Wirksamkeit der problemlösenden Brute-Force-Methode drastisch
-
YOLO-Modus
- Jedes Werkzeug bietet eine eigene Version eines YOLO-Modus, in dem standardmäßig alles genehmigt ist
- Das ist extrem riskant, aber auch entscheidend für die produktivsten Ergebnisse
-
Drei Hauptrisiken des unbeaufsichtigten YOLO-Modus
- 1. Schlechte Shell-Befehle: etwas Wichtiges löschen oder beschädigen
- 2. Exfiltrationsangriffe: Dateien oder Daten stehlen, die der Agent sehen kann (Quellcode oder in Umgebungsvariablen gespeicherte Geheimnisse)
- 3. Proxy-Angriffe: die Maschine als Proxy nutzen, um den Ursprung eines DDoS oder anderer Angriffe auf Dritte zu verschleiern
Ausführungsoptionen für den YOLO-Modus
-
Option 1: Sicherheits-Sandbox
- Den Agenten in einer Sicherheits-Sandbox ausführen, die einschränkt, auf welche Dateien und Geheimnisse zugegriffen werden kann und welche Netzwerkverbindungen möglich sind
- Container-Escape bleibt möglich, aber für die meisten Menschen ist das Risiko bei Docker oder Apples neuen Container-Werkzeugen akzeptabel
- Dokumentation von Anthropic zum Safe YOLO Mode:
--dangerously-skip-permissions in einem Container ohne Internetzugang verwenden
- Eine Referenzimplementierung mit Docker Dev Containers wird bereitgestellt
- Internetzugang auf eine vertrauenswürdige Host-Liste zu beschränken ist eine gute Methode, um den Diebstahl privaten Quellcodes zu verhindern
-
Option 2: den Computer eines anderen verwenden (bevorzugt)
- Selbst wenn der Agent außer Kontrolle gerät, bleibt der Schaden begrenzt
- GitHub Codespaces wird empfohlen:
- Bietet vollständige Container-Umgebungen on demand, die per Browser zugänglich sind
- Bietet ein großzügiges Free Tier
- Falls etwas schiefläuft, verbraucht im schlimmsten Fall eine Microsoft-Azure-Maschine irgendwo CPU-Zeit; außerdem könnte ausgecheckter Code aus der Umgebung exfiltriert oder schädlicher Code in ein verbundenes GitHub-Repository gepusht werden
- Weitere agentische Werkzeuge, die Code auf fremden Computern ausführen:
- Code Interpreter-Modi von ChatGPT und Claude
- Codex Cloud von OpenAI
-
Option 3: Risiko in Kauf nehmen
- Versuchen, die Exposition gegenüber potenziell bösartigen Anweisungsquellen zu vermeiden, und hoffen, Fehler zu bemerken, bevor Schaden entsteht
- Die Option, die die meisten Menschen wählen
Die richtigen Werkzeuge für die Schleife wählen
-
Nach dem Absichern des YOLO-Modus
- Der nächste Schritt ist zu entscheiden, welche Werkzeuge dem Coding-Agenten zur Verfügung stehen sollen
-
Shell-Befehle zuerst
- An diesem Punkt kann man MCP (Model Context Protocol) einbeziehen, aber produktiver ist es meist, stattdessen in Shell-Befehlen zu denken
- Coding-Agenten sind wirklich gut darin, Shell-Befehle auszuführen
- Wenn die Umgebung den nötigen Netzwerkzugang erlaubt, können sie auch zusätzliche Pakete von NPM, PyPI usw. holen
- Wichtig ist auch, den Agenten in einer Umgebung laufen zu lassen, in der das Installieren zufälliger Pakete nicht den Hauptrechner beschädigt
-
Nutzung einer Datei AGENTS.md
-
Bestehende Werkzeuge nutzen
- Gute LLMs wissen bereits, wie man eine verblüffend große Vielfalt bestehender Werkzeuge verwendet
- Sagt man „use playwright python“ oder „use ffmpeg“, können die meisten Modelle das effektiv einsetzen
- Da sie in einer Schleife laufen, können sie sich in der Regel von anfänglichen Fehlern erholen und ohne zusätzliche Anleitung die richtige Reihenfolge herausfinden
Streng begrenzte Zugangsdaten ausgeben
-
Warum Zugangsdaten nötig sein können
- Neben den richtigen Befehlen muss man auch bedenken, welche Zugangsdaten diesen Befehlen zur Verfügung gestellt werden sollten
- Idealerweise sind überhaupt keine Zugangsdaten nötig (viele Aufgaben lassen sich ohne Login oder API-Key erledigen), aber manche Probleme erfordern authentifizierten Zugriff
-
Zwei zentrale Empfehlungen
- 1. Zugangsdaten für eine Test- oder Staging-Umgebung bereitstellen
- Eine Umgebung, in der möglicher Schaden gut begrenzt werden kann
- 2. Budgetlimits festlegen
- Wenn mit den Zugangsdaten Geld ausgegeben werden kann, sollten strikte Budgetgrenzen gesetzt werden
-
Praxisbeispiel: Untersuchung bei Fly.io
- Untersuchung langsamer Cold-Start-Zeiten einer auf Fly.io laufenden scale-to-zero-Anwendung
- Claude Code durfte das Dockerfile direkt bearbeiten, in das Fly-Konto deployen und messen, wie lange der Start dauert
-
Sichere Konfiguration
- Bei Fly lassen sich Organisationen anlegen; dafür kann man Budgetlimits setzen und einen Fly-API-Key ausgeben, der nur innerhalb dieser Organisation Apps anlegen oder ändern darf
- Eine dedizierte Organisation nur für diese Untersuchung wurde erstellt
- Ein Budget von 5 US-Dollar wurde gesetzt
- Der API-Key wurde ausgestellt und Claude Code losgelassen
- Das Ergebnis war in diesem speziellen Fall nicht nützlich genug, aber es war das Projekt, bei dem erstmals klar wurde, dass das Entwerfen agentischer Loops eine wichtige Fähigkeit ist, die entwickelt werden muss
Wann man agentische Loops entwerfen sollte
-
Geeignete Problem-Muster
- Nicht jedes Problem reagiert gut auf dieses Arbeitsmuster
- Achten sollte man auf Probleme mit klaren Erfolgskriterien, bei denen es wahrscheinlich ist, dass (potenziell etwas mühsames) Trial-and-Error nötig ist, um eine gute Lösung zu finden
- Immer wenn man denkt: „Ugh, hier muss ich wahrscheinlich viele Varianten ausprobieren“, ist das ein starkes Signal, dass sich ein agentischer Loop lohnen könnte
-
Konkrete Beispiele
-
Debugging
- Ein Test schlägt fehl und die Grundursache muss untersucht werden
- Ein Coding-Agent, der bereits Tests ausführen kann, schafft das ohne zusätzliche Einrichtung
-
Performance-Optimierung
- Eine SQL-Abfrage ist zu langsam; würde ein zusätzlicher Index helfen?
- Der Agent kann die Abfrage benchmarken und (in einer isolierten Entwicklungsumgebung!) Indizes hinzufügen und wieder entfernen, um die Auswirkungen zu messen
-
Dependency-Upgrades
- Mehrere Abhängigkeiten sind mit Upgrades im Rückstand
- Wenn die Test-Suite robust ist, kann ein agentischer Loop alles aktualisieren und die kleinen Anpassungen vornehmen, die nötig sind, um Breaking Changes abzubilden
- Man sollte sicherstellen, dass Kopien der relevanten Release Notes vorhanden sind oder dass der Agent weiß, wo er sie selbst finden kann
-
Optimierung der Container-Größe
- Ein Docker-Container ist unangenehm groß
- Der Agent kann verschiedene Base Images ausprobieren und das Dockerfile iterativ verkleinern, während die Tests weiterhin erfolgreich bleiben
-
Gemeinsames Thema: automatisierte Tests
- Das gemeinsame Thema bei all dem sind automatisierte Tests
- Der Nutzen, den man aus Coding-Agenten und anderen LLM-Coding-Werkzeugen ziehen kann, wird durch eine gute, sauber durchlaufende Test-Suite massiv verstärkt
- Glücklicherweise sind LLMs hervorragend darin, den Aufbau einer solchen Test-Suite zu beschleunigen, falls sie noch nicht existiert
Immer noch ein sehr neues Feld
- Das Entwerfen agentischer Loops ist eine sehr neue Fähigkeit
- Claude Code wurde erstmals im Februar 2025 veröffentlicht
- Die Hoffnung ist, dass ein klarer Name produktivere Gespräche darüber ermöglicht
- Es gibt noch sehr viel mehr, das man darüber herausfinden muss, wie diese Werkzeuge so effektiv wie möglich eingesetzt werden können
Noch keine Kommentare.