CODESKILL: Learning Self-Evolving Skills for Coding Agents
CODESKILL ist ein auf Reinforcement Learning basierendes Framework, das lernt, eine kompakte Bank von prozeduralen Fähigkeiten mit multiplen Granularitäten aus den Trajektorien von Coding-Agenten zu extrahieren, weiterzuentwickeln und zu pflegen, wodurch die Leistung bei nachgelagerten Aufgaben auf Benchmarks wie SWE-Bench Verified im Vergleich zu bestehenden promptbasierten oder speicherbasierten Ansätzen erheblich verbessert wird.
Originalarbeit lizenziert unter CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dies ist eine KI-generierte Erklärung des untenstehenden Papers. Sie wurde nicht von den Autoren verfasst oder gebilligt. Für technische Genauigkeit konsultieren Sie das Originalpaper. Vollständigen Haftungsausschluss lesen
Stellen Sie sich vor, Sie unterrichten einen sehr intelligenten Roboter-Assistenten darin, Softwarefehler zu beheben. Jedes Mal, wenn der Roboter versucht, ein Problem zu lösen, durchläuft er einen langen Prozess: Er betrachtet den Code, versucht einen Befehl, sieht einen Fehler, versucht es erneut und behebt ihn schließlich (hoffentlich). Diese gesamte Reise wird als „Trajektorie" bezeichnet.
Das Problem ist, dass, wenn Sie dem Roboter einfach erlauben, ein Tagebuch über jede einzelne seiner Handlungen zu führen, dieses Tagebuch zu einem chaotischen, überwältigenden Papierberg werden würde. Der Großteil davon sind nur spezifische Details über einen bestimmten Fehler, die bei der nächsten Aufgabe nicht helfen.
CODESKILL ist ein neues System, das entwickelt wurde, um diesen chaotischen Papierberg in ein schlankes, organisiertes Instruktionshandbuch zu verwandeln, das der Roboter tatsächlich nutzen kann.
So funktioniert es, aufgeschlüsselt in einfache Konzepte:
1. Das Problem: Zu viel Rauschen, zu wenig Signal
Derzeit verlassen sich Roboter, wenn sie aus ihren vergangenen Fehlern lernen wollen, oft auf starre Regeln oder feste Prompts (wie ein Lehrer, der sagt: „Mache immer X, wenn du Y siehst"). Aber Softwareentwicklung ist komplex. Manchmal gelingt es dem Roboter aus Versehen, und manchmal scheitert er aus einem seltsamen Grund. Es ist schwer zu unterscheiden, was eine wiederverwendbare Fähigkeit ist (wie „wie man eine kaputte Internetverbindung repariert") und was nur ein einmaliger Zufall ist (wie „wie man den spezifischen Tippfehler in dieser Datei behebt").
Bestehende Methoden sind wie ein Bibliothekar, der Bücher einfach auf den Boden stapelt, ohne sie zu organisieren. Sie wissen nicht, welche Bücher für den nächsten Leser tatsächlich nützlich sind.
2. Die Lösung: Der „sich selbst entwickelnde Bibliothekar"
CODESKILL fungiert als ein intelligenter Bibliothekar, der die Wissensbasis des Roboters verwaltet (eine sogenannte Skill Bank). Anstatt nur rohe Geschichten zu speichern,
- Extrahiert es Fähigkeiten: Es liest die vergangenen Reisen des Roboters und zieht die „goldenen Nuggets" heraus – die allgemeinen Regeln, die auf viele Situationen anwendbar sind.
- Entwickelt Fähigkeiten weiter: Wenn der Roboter eine Fähigkeit versucht und scheitert, wirft der Bibliothekar die Fähigkeit nicht einfach weg. Er aktualisiert das Instruktionshandbuch mit dem Hinweis: „Oh, diese Regel funktioniert, es sei denn, du siehst diese spezifische Fehlermeldung."
- Wartet die Bibliothek: Er überprüft die Bibliothek ständig. Wenn zwei Bücher dasselbe sagen, verschmilzt er sie. Wenn ein Buch zu spezifisch oder nutzlos ist, wirft er es weg. Dies hält die Bibliothek klein und effizient.
3. Wie es lernt: Der „Trainer und der Athlet"
Der einzigartigste Teil von CODESKILL ist, wie es lernt, ein guter Bibliothekar zu sein. Es rät nicht einfach; es erhält Feedback von einem „eingefrorenen" Athleten (dem Codierungsroboter).
- Der Athlet: Dies ist der Codierungsroboter, der die eigentlichen Probleme löst. Er verändert sein Gehirn nicht; er versucht einfach, Aufgaben zu lösen.
- Der Trainer (CODESKILL): Dies ist das System, das die Fähigkeiten verwaltet.
- Der Trainingszyklus:
- Der Trainer erstellt eine neue Regel basierend auf vergangenen Erfahrungen.
- Der Trainer gibt diese Regel an den Athleten weiter.
- Der Test: Löst der Athlet das Problem mit dieser neuen Regel schneller oder besser?
- Die Belohnung: Wenn der Athlet erfolgreich ist, erhält der Trainer eine hohe Punktzahl. Wenn der Athlet scheitert, erhält der Trainer eine niedrige Punktzahl.
- Der Trainer nutzt diese Punktzahl, um zu lernen: „Okay, ich muss beim nächsten Mal bessere Regeln schreiben."
Das Papier nennt dies Reinforcement Learning (Bestärkungslernen). Es ist wie das Trainieren eines Hundes: Man sagt dem Hund nicht nur, was er tun soll; man gibt ihm einen Leckerbissen, wenn er es richtig macht, damit er lernt, das Verhalten zu wiederholen, das den Leckerbissen einbringt.
4. Zwei Arten von Fähigkeiten
CODESKILL organisiert Wissen in zwei Arten von Anweisungen, wie ein Kochbuch mit zwei Abschnitten:
- Aufgabenbezogene Fähigkeiten (Das große Ganze): Dies sind hochrangige Strategien. Beispiel: „Wenn du einen Java-Build-Fehler siehst, überprüfe zuerst deine Internetverbindung und dann deine Abhängigkeiten."
- Ereignisgesteuerte Fähigkeiten (Die schnellen Fixes): Dies sind Reaktionen auf bestimmte Momente. Beispiel: „Wenn du eine Fehlermeldung siehst, die ‚Datei nicht gefunden' lautet, überprüfe sofort, ob der Dateipfad einen Tippfehler enthält."
5. Die Ergebnisse: Ein intelligenterer, schnellerer Roboter
Die Forscher testeten CODESKILL in drei verschiedenen „Prüfungsräumen" (Benchmarks), in denen Codierungsroboter reale Softwareprobleme lösen müssen.
- Die Basislinie: Ein Roboter ohne Instruktionshandbuch (nur rohe Intelligenz).
- Der Wettbewerb: Roboter, die ältere Methoden zur Erinnerung an vergangene Aufgaben verwenden (wie das Lesen eines Tagebuchs oder die Verwendung fester Prompts).
- CODESKILL: Der Roboter, der die sich selbst entwickelnde Skill-Bibliothek verwendet.
Das Ergebnis:
Der Roboter von CODESKILL löste signifikant mehr Probleme als die anderen.
- Er verbesserte die Erfolgsrate um etwa 9,7 % im Vergleich zu gar keinen Fähigkeiten.
- Er schlug die stärksten bestehenden „Gedächtnis"-Methoden um etwa 4 %.
- Er löste Probleme auch schneller und benötigte weniger Schritte, um die Lösung zu erreichen, da er bessere Anweisungen zum Befolgen hatte.
Das Fazit
CODESKILL ist ein Framework, das einem Codierungsroboter beibringt, wie man lernt zu lernen. Anstatt einfach alles, was passiert ist, auswendig zu lernen, lernt es, diese Erfahrungen in einen kompakten, sich entwickelnden Satz von Regeln zu destillieren. Es fungiert wie ein Trainer, der das Spielbuch ständig verfeinert, basierend darauf, ob das Team das Spiel tatsächlich gewinnt, und stellt sicher, dass der Roboter im Laufe der Zeit besser und effizienter wird, ohne von Grund auf neu programmiert werden zu müssen.
Ertrinken Sie in Arbeiten in Ihrem Fachgebiet?
Erhalten Sie tägliche Digests der neuesten Arbeiten passend zu Ihren Forschungsbegriffen — mit technischen Zusammenfassungen, in Ihrer Sprache.