SkillForge: Self-Distilling Agents for Project-Specific Issue Resolution
SkillForge is een zelf-destillatieframework dat het vermogen van large language model-agenten om softwareproblemen in specifieke repositories op te lossen proactief verbetert door kunstmatige problemen te synthetiseren en op te lossen die zijn afgeleid van kernfunctionaliteiten, waardoor herbruikbare, entiteit-gegronde projectkennis wordt gedestilleerd zonder afhankelijk te zijn van historische herstelgegevens of kostbare exploratie tijdens de testfase.
Oorspronkelijk artikel gelicentieerd onder CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dit is een AI-gegenereerde uitleg van het onderstaande artikel. Het is niet geschreven of goedgekeurd door de auteurs. Raadpleeg het oorspronkelijke artikel voor technische nauwkeurigheid. Lees de volledige disclaimer
In het uitgestrekte, complexe landschap van moderne software is code het fundament waarop onze digitale wereld rust. Wanneer er iets misgaat in een complex programma, vereist het oplossen ervan vaak een diep begrip van niet alleen het defecte onderdeel, maar ook van hoe dat onderdeel in de gehele machine past. Decennialang waren mensen de primaire monteurs voor dit werk, maar onlangs is kunstmatige intelligentie de gereedschappen gaan hanteren. Large language models, die krachtige computerprogramma's zijn getraind op enorme hoeveelheden tekst en code, hebben laten zien dat ze door deze digitale repositories kunnen navigeren, bugs kunnen vinden en fixes kunnen schrijven. Er blijft echter een aanzienlijke hindernis bestaan: deze AI-agenten worstelen vaak wanneer ze worden geconfronteerd met een specifiek, onbekend project. Ze missen de lokale context — de ongeschreven regels, de specifieke manieren waarop verschillende delen van de code met elkaar communiceren, en de unieke geschiedenis van hoe die specifieke software precies is gebouwd. Zonder deze insiderkennis is de AI als een briljante monteur die in een garage wordt gedropt die hij nog nooit heeft gezien, gedwongen om telkens opnieuw te raden hoe de motor werkt wanneer hij een nieuw probleem tegenkomt.
Onderzoekers aan de Shanghai Jiao Tong Universiteit hebben een nieuwe aanpak ontwikkeld om dit probleem op te lossen, een methode die zij SkillForge noemen. In plaats van te wachten tot de AI door echte fouten in de echte wereld struikelt en door de tijd heen leert van haar fouten, onderwijst dit systeem de AI proactief over het specifieke project voordat het ooit een echte fix probeert aan te brengen. Het team realiseerde zich dat om een project te begrijpen, de AI er eerst op moet oefenen. Daarom creëerden ze een trainingsgrond waar de AI haar eigen nepproblemen genereert. Door de kernfuncties van een softwareproject — die onderdelen die al getest zijn en waarvan bekend is dat ze werken — te nemen en de AI te vragen deze vanaf nul te herschrijven, dwingt het systeem de AI om fouten te maken. Omdat de AI geen toegang heeft tot de originele code, moet zij vertrouwen op haar algemene kennis, wat onvermijdelijk leidt tot fouten die specifiek zijn voor hoe dat project daadwerkelijk is gebouwd. Deze fouten, die de onderzoekers "synthetische issues" noemen, worden vervolgens gebruikt als een leermiddel. De AI probeert deze nepbugs op te lossen, en doet daarmee de verborgen patronen en specifieke regels van dat softwareproject aan het licht.
Het systeem neemt vervolgens de paden die de AI heeft genomen om deze nepproblemen op te lossen en destilleert deze tot een reeks "vaardigheden". Beschouw deze vaardigheden als een gepersonaliseerde gids voor die specifieke software. De onderzoekers hebben deze kennis georganiseerd in twee soorten. Het eerste type is een hoogwaardige kaart die de AI helpt de algemene structuur van het project te begrijpen, zoals wat verschillende delen van de code moeten doen en hoe ze gewoonlijk met elkaar interageren. Het tweede type is een reeks specifieke instructies voor wanneer de AI daadwerkelijk de code bewerkt, waarbij de AI wordt gewaarschuwd voor veelvoorkomende valkuilen en herinnerd wordt aan de unieke eigenaardigheden van het project. Wanneer de AI later wordt gevraagd een echt probleem in diezelfde software op te lossen, raadpleegt zij deze gids. Zij laadt eerst de hoogwaardige kaart om de oriëntatie te vinden, en terwijl zij in de code duikt, ontvangt zij op het juiste moment herinneringen aan de specifieke regels die zij moet volgen. Dit gebeurt automatisch, waardoor wordt gegarandeerd dat de AI de juiste context heeft op het moment dat zij die nodig heeft.
De onderzoekers testten deze methode op een breed scala aan real-world softwareprojecten, waarbij ze twee verschillende krachtige AI-modellen gebruikten om te zien of het werkte. Ze vergeleken hun systeem met andere methoden die proberen de AI te helpen leren van eerdere menselijke fixes of door de code te verkennen terwijl een probleem wordt opgelost. De resultaten waren duidelijk: de SkillForge-aanpak presteerde consequent beter dan de andere. Op een standaardtest van software engineering-taken verbeterde het systeem het succespercentage van de AI met bijna zes procentpunten vergeleken met een basismodel dat geen speciale projectkennis had. Deze verbetering bleef standhouden, zelfs toen de onderzoekers het systeem testten op een andere, moeilijkere set uitdagingen. De studie toonde aan dat door de AI over het specifieke project te onderwijzen voordat het echte werk begint, het systeem problemen nauwkeuriger en efficiënter kan oplossen dan methoden die probeerden te leren tijdens het proces of die vertrouwden op historische gegevens die de huidige kwestie mogelijk niet dekken.
Een van de meest onthullende aspecten van het onderzoek was het observeren hoe het gedrag van de AI veranderde met deze nieuwe kennis. In een specifiek geval met betrekking tot een complexe formatteringsbug in een populair webframework, koos een AI zonder deze training snel voor een eenvoudige, onjuiste oplossing die op het eerste gezicht juist leek, maar faalde bij de toetsing aan het volledige bereik van de vereisten. Het miste de subtiele, projectspecifieke logica die nodig is om de data correct af te handelen. In contrast hiermee nam de AI die uitgerust was met de SkillForge-gids een meer zorgvuldige, gestructureerde aanpak. De AI pauzeerde om de specifieke regels van het project te overwegen, vermeed een veelvoorkomende valkuil waarin de ongetrainde AI verviel, en vond uiteindelijk een oplossing die aan alle noodzakelijke tests voldeed. Dit toonde aan dat het systeem de AI niet alleen meer informatie gaf, maar fundamenteel de manier waarop zij over de code redeneert veranderde, waardoor zij de soorten fouten kon vermijden die voortkomen uit het toepassen van algemene regels op een specifieke, unieke omgeving.
De onderzoekers onderzochten ook of de kennis die verkregen werd uit het ene AI-model kon worden overgedragen naar een ander. Ze ontdekten dat de door een model gedestilleerde vaardigheden het meest effectief waren wanneer ze door datzelfde model werden gebruikt. Dit suggereert dat de kennis diep verbonden is met hoe een specifiek AI-model denkt en code schrijft, in plaats van een universele set feiten over de software te zijn. Deze bevinding benadrukt dat de waarde van het systeem ligt in het vermogen om de specifieke manier vast te leggen waarop een bepa bepaald AI-model met een specifiek project interageert. Bovendien toonde de studie aan dat het systeem het beste werkt wanneer het zich richt op het herschrijven van meerdere verbonden onderdelen van de code samen, in plaats van slechts enkele functies in isolatie. Deze aanpak legt de complexe interacties tussen verschillende onderdelen van de software vast, wat precies is waar de meest kritieke projectspecifieke kennis zich vaak verbergt.
Uiteindelijk biedt dit werk een nieuwe manier om de kloof te overbruggen tussen krachtige algemene AI en de specifieke behoeften van real-world software engineering. Door over te stappen van een reactieve aanpak, waarbij de AI leert van fouten nadat ze zijn gemaakt, naar een proactieve aanpak, waarbij de AI de regels van het spel leert voordat de wedstrijd begint, hebben de onderzoekers een pad getoond naar meer betrouwbare en capabele AI-agenten. Het systeem vereist geen enorme geschiedenis van eerdere menselijke fixes om te werken, noch vraat het de AI tijd en middelen die nodig zijn om blindelings de code te verkennen tijdens het eigenlijke reparatieproces. In plaats daarvan bouwt het een gerichte, efficiënte kennisbasis die de AI in staat stelt direct operationeel te zijn. De resultaten suggereren dat als AI echt een partner in softwareontwikkeling wil worden, zij de kans moet krijgen om de specifieke taal en gebruiken van het project waaraan zij werkt te leren, en SkillForge biedt een praktische, effectieve manier om dat precies te doen.
Verdrinkt u in papers in uw vakgebied?
Ontvang dagelijkse digests van de nieuwste papers die bij uw onderzoekswoorden passen — met technische samenvattingen, in uw taal.