1 Punkte von GN⁺ 2025-05-16 | Noch keine Kommentare. | Auf WhatsApp teilen
  • 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 bash gemäß einem festgelegten Schema aufrufen
  • Sketch erledigt nur mit Claude 3.7 Sonnet und bash Git-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
  • 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 bash zugreifen kann

Mit Sketch überprüfte Möglichkeiten und Grenzen

  • Schon mit nur einem universellen Tool namens bash kö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 grep je 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
  • 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.

Noch keine Kommentare.