- Das Überraschendste bei der Entwicklung des KI-Programmierassistenten Sketch ist, dass ein LLM-Agent mit Tool-Nutzung schon mit einer einfachen Schleife auf dem Niveau von neun Zeilen erstaunlich leistungsfähig arbeitet
- Der Grundablauf besteht darin, Benutzereingaben an das LLM zu senden und, falls die Antwort einen Tool-Aufruf enthält, das Ausführungsergebnis wieder in die Unterhaltung einzuspeisen und für die nächste Entscheidung zu nutzen
- Nur mit System-Prompt, Gesprächsverlauf und Tool-Beschreibung kann das LLM Tools wie
bashgemäß einem festgelegten Schema aufrufen - Sketch erledigt nur mit Claude 3.7 Sonnet und
bashGit-Arbeiten, eine erste Bearbeitung von Merges und das Beheben von Fehlern des Type Checkers, zeigt aber auch frustrierendes Verhalten wie den Versuch, Tests zu überspringen - Wenn zusätzliche Tools und temporäre Agentenschleifen passend zum Entwickler-Workflow hinzukommen, lässt sich mehr Alltagsarbeit delegieren, die mit bestehender Automatisierung schwer zu bewältigen war
Eine Agentenschleife von fast neun Zeilen
- Sketch ist ein KI-Programmierassistent, der in den letzten Monaten entwickelt wurde
- Die Kernschleife nimmt Benutzereingaben entgegen, prüft das Ergebnis des LLM-Aufrufs und speist bei Tool-Aufrufen deren Ausführungsergebnisse als nächste Nachricht ein; andernfalls wartet sie wieder auf Benutzereingaben
- Für die vollständige Implementierung ist zusätzlicher Code nötig, aber die Kernidee kommt einer Schleife aus neun Zeilen nahe
- Gesamtes Skript: agent_loop.py
- Die Funktion
llm()hat die Aufgabe, System-Prompt, bisherigen Gesprächsverlauf und die nächste Nachricht an die LLM-API zu senden - Die Tool-Nutzung funktioniert so, dass das LLM eine Ausgabe zurückgibt, die einem bestimmten Schema entspricht
- Im vollständigen Skript wird dem LLM über den System-Prompt und den Prompt mit der Tool-Beschreibung mitgeteilt, dass es auf
bashzugreifen kann
- Im vollständigen Skript wird dem LLM über den System-Prompt und den Prompt mit der Tool-Beschreibung mitgeteilt, dass es auf
Mit Sketch überprüfte Möglichkeiten und Grenzen
- Schon mit nur einem universellen Tool namens
bashkönnen aktuelle Modelle, insbesondere Claude 3.7 Sonnet, verschiedene Entwicklungsaufgaben bewältigen- Statt schwierige Git-Befehle nachzuschlagen und per Copy-and-paste zu übernehmen, kann man Sketch darum bitten
- Bevor ein Git-Merge manuell bearbeitet wird, kann Sketch einen ersten Versuch übernehmen
- Auch das schrittweise Beheben von Type-Checker-Fehlern nach Typänderungen kann man Sketch überlassen
- Mit geeignetem Prompting arbeitet die Agentenschleife kontinuierlich weiter
- Wenn benötigte Tools nicht installiert sind, installiert sie sie
- Wenn sich Kommandozeilenoptionen von
grepje nach Umgebung unterscheiden, passt sie sich diesen Unterschieden an
- Die Grenzen sind ebenfalls deutlich
- Wenn Tests nicht bestehen, kann Verhalten auftreten, bei dem sie einfach versucht, sie zu überspringen
- Sketch verwendet nicht nur
bash, sondern auch einige zusätzliche Tools, um Qualität, Iterationsgeschwindigkeit und den Entwickler-Workflow zu verbessern - Tools, die das LLM zu präziser Textbearbeitung bringen sollen, sind überraschend knifflig
- Dass das LLM mit einem einzeiligen
sed-Befehl kämpft, zeigt, dass visuelle Editoren andere Stärken haben als zeilenorientierte Editoren
- Dass das LLM mit einem einzeiligen
- Agentenschleifen können stärker in alltägliche Automatisierungsaufgaben vordringen, die für allgemeine Werkzeuge zu spezifisch und für traditionelle Automatisierung zu schwierig oder instabil waren
- Das Verknüpfen von Stack Traces mit Git-Commits ist ein Beispiel für eine Aufgabe, bei der das LLM die erste Bearbeitung gut übernehmen kann
- Maßgeschneiderte, temporäre LLM-Agentenschleifen könnten künftig häufiger im Verzeichnis
bin/auftauchen
Noch keine Kommentare.