De op AI gebaseerde toekomst van coderen is nabij

Ik ben absoluut geen ervaren codeur, maar dankzij een gratis programma genaamd SWE-agent kon ik gemakkelijk een zeurend probleem met een verkeerd benoemd bestand in verschillende codeopslagplaatsen op de softwarehostingsite GitHub debuggen en oplossen.

Ik wees de SWE-agent op het probleem op GitHub en zag hem de code doornemen en nadenken over wat er mis zou kunnen zijn. Hij stelde correct vast dat de hoofdoorzaak van de fout een lijn was die naar de verkeerde locatie voor het bestand wees, navigeerde vervolgens door het project, lokaliseerde het bestand en paste de code aan zodat alles werkte. Het is iets waar een onervaren ontwikkelaar (zoals ik) uren aan kan besteden aan het debuggen.

Veel programmeurs maken al gebruik van kunstmatige intelligentie om software sneller te schrijven. GitHub Copilot was de eerste geïntegreerde ontwikkelomgeving die AI gebruikte, maar veel IDE’s zullen nu automatisch delen van de code voltooien zodra de ontwikkelaar begint met typen. Je kunt de AI ook vragen stellen over de code of suggesties doen over hoe je kunt verbeteren waar je aan werkt.

Afgelopen zomer begonnen John Yang en Carlos Jimenez, twee promovendi aan Princeton, te bespreken wat er nodig zou zijn voordat een AI een software-ingenieur zou worden in de echte wereld. Dit bracht hen en anderen bij Princeton ertoe de SWE-bench te bedenken, een reeks benchmarks voor het testen van AI-tools op een reeks codeertaken. Na de publicatie van de benchmark in oktober ontwikkelde het team zijn eigen tool – SWE-agent – ​​om deze taken aan te pakken.

SWE-agent (“SWE” staat voor “software engineering”) is een van een aantal aanzienlijk krachtigere AI-coderingsprogramma’s die verder gaan dan alleen het schrijven van coderegels en fungeren als zogenaamde softwareagenten, met behulp van de tools die nodig zijn voor ruzie. , software debuggen en organiseren. Startup Devin ging in maart viraal met een videodemonstratie van zo’n tool.

Ofir Press, lid van het Princeton-team, zegt dat SWE-bench OpenAI kan helpen de prestaties en betrouwbaarheid van softwareagenten te testen. “Het is maar mijn mening, maar ik denk dat ze binnenkort een softwareagent gaan uitbrengen”, zegt Press.

OpenAI weigerde commentaar te geven, maar een andere bron met kennis van de activiteiten van het bedrijf, die niet bij naam genoemd wil worden, vertelde WIRED dat “OpenAI zeker aan codeeragenten werkt.”

Net zoals GitHub Copilot aantoonde dat grote taalmodellen code kunnen schrijven en de productiviteit van ontwikkelaars kunnen verhogen, kunnen tools als SWE-agent bewijzen dat AI-agenten betrouwbaar kunnen werken, te beginnen met het bouwen en onderhouden van code.

Een aantal bedrijven testen agenten voor softwareontwikkeling. Bovenaan het SWE-bench leaderboard, dat de prestaties van verschillende codeeragenten bij verschillende taken meet, staat er een van Factory AI, een startup, gevolgd door AutoCodeRover, een open-source inzending van een team van de National University of Singapore.

Er doen ook grote spelers mee. Een software-authoringtool genaamd Amazon Q is een andere topspeler op de SWE-bank. “Softwareontwikkeling is veel meer dan alleen typen”, zegt Deepak Singh, vice-president softwareontwikkeling bij Amazon Web Services.

Hij voegt eraan toe dat AWS een agent heeft gebruikt om een ​​reeks softwarepakketten van de ene programmeertaal naar de andere te vertalen. “Het is alsof er een heel slimme ingenieur naast je zit, die samen met jou de app schrijft en bouwt”, zegt Singh. “Ik denk dat het behoorlijk transformerend is.”

Het team van OpenAI heeft het Princeton-team onlangs geholpen bij het verbeteren van een benchmark voor het meten van de betrouwbaarheid en efficiëntie van tools zoals de SWE-agent, wat suggereert dat het bedrijf agenten ook zou kunnen verfijnen om code te schrijven of andere taken op een computer uit te voeren.

Singh zegt dat veel klanten al complexe back-end-applicaties bouwen met behulp van Q. Mijn experimenten met SWE-bench suggereren dat iedereen die codeert binnenkort agenten zal willen gebruiken om zijn programmering te verbeteren, anders loopt hij het risico achterop te raken.