← Nieuwste papers
💻 computer science

ProjAgent: Procedural Similarity Retrieval for Repository-Level Code Generation

ProjAgent is een systeem voor codegeneratie op repositoryniveau dat de prestaties verbetert door functies te extraheren op basis van procedurele gelijkenis via een agentische workflow en outputs te verfijnen via statische-analysefeedback, waarmee een Pass@1 van 41,14% op de REPOCOD-benchmark wordt bereikt.

Oorspronkelijke auteurs: QiHong Chen, Aaron Imani, Iftekhar Ahmed

Gepubliceerd 2026-07-10
📖 5 min leestijd🧠 Diepgaand

Oorspronkelijke auteurs: QiHong Chen, Aaron Imani, Iftekhar Ahmed

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

Stel je voor dat je een nieuw hoofdstuk wilt schrijven voor een enorme, 10.000 pagina's tellende mysteryroman. Je weet welk plotpunt je moet raken, maar je kent de namen van de personages niet, de specifieke regels van het stadje niet, of hoe de detective normaal gesproken misdaden oplost. Als je gewoon gaat gokken, riskeer je dat je een personage verzint dat niet bestaat of de wetten van de stad overtreedt, wat het verhaal verpest. Dit is precies wat er gebeurt wanneer Kunstmatige Intelligentie probeert code te schrijven voor een groot softwareproject.

Lange tijd probeerden AI-assistenten hulp te vinden door te zoeken naar "gelijkenissen". Als je vroeg om een functie om de temperatuur te berekenen, zocht de AI naar andere code die het woord "temperatuur" gebruikte of er oppervlakkig hetzelfde uitzag. Dit artikel betoogt dat dit is alsoals proberen een recept voor een taart te vinden, simpelweg omdat het andere recept ook over "suiker" spreekt. Het mist de echte magie: hoe het koken daadwerkelijk gebeurt.

De auteurs, Qihong Chen, Aaron Imani en Iftekhar Ahmed, hebben een nieuw systeem gebouwd genaamd ProjAgent. Ze ontdekten dat de meest behulpzame code niet altijd de code is die er hetzelfde uitziet; het is de code die op dezelfde manier denkt.

Het "Denken" versus het "Praten"

Het paper suggereert dat code uit twee lagen bestaat: de woorden die het gebruikt (zoals variabelenamen en commentaar) en de werkelijke stappen die het onderneemt om een probleem op te lossen (de logica).

Stel je twee chefs voor. Chef A maakt een pizza, en Chef B maakt een salade.

  • De Oude Manier (Lexicale/Semantische Zoekopdracht): Als je hulp vraagt bij het maken van een pizza, zou de oude AI Chef B negeren omdat deze een salade maakt. De AI zou alleen zoeken naar andere pizzachefs.
  • De Nieuwe Manier (ProjAgent): ProjAgent beseft dat beide chefs hetzelfde moeten doen: ingrediënten snijden, controleren of ze vers zijn, en ze in een kom doen. Hoewel de een een salade maakt en de ander een pizza, zijn hun procedurele stappen identiek. ProjAgent vindt Chef B en zegt: "Hé, kijk eens naar hoe Chef B controleert of de sla vers is! Je kunt diezelfde logica gebruiken om te controleren of jouw tomaat vers is!"

Het paper sluit expliciet de gedachte uit dat oppervlakkige gelijkenis (het kijken naar de woorden) voldoende is. De auteurs stellen dat het vertrouwen op alleen woorden of eenvoudige betekenis vaak de cruciale "hoe-te"-stappen mist, omdat verschillende projecten verschillende namen gebruiken voor dezelfde acties.

Hoe ProjAgent werkt: De Detective Agent

ProjAgent werkt als een super slimme detective met een speciaal instrument. Zo lost het de mysteries op:

  1. Het Afbreken: Het neemt de nieuwe code die je wilt schrijven en breekt deze af in kleine logische stappen, zoals "controleren of het getal negatief is" of "de eenheden converteren".
  2. De "Denkende" Zoekopdracht: In plaats van alleen de woorden te lezen, gebruikt ProjAgent een speciale truc om naar de "verborgen gedachten" van het AI-model te kijken. Het stript de chique vocabulaire weg en kijkt alleen naar de pure logica. Het vindt andere code in het project die exact dezelfde mentale dans uitvoert, zelfs als die in een totaal ander deel van de codebase geschreven is.
  3. De Jacht van de Agent: Als de eerste zoekopdracht niet genoeg vindt, gaat een digitale "agent" (een klein AI-robotje) op een speurtocht door de projectbestanden. Het leest bestanden, zoekt naar functies en vraagt: "Is er hier iets dat zo denkt als dit?"
  4. Dubbelchecken: Om er zeker van te zijn dat het niet is bedrogen, gebruikt het systeem een "statische analyse"-tool. Denk aan dit als een spellingcontrole voor logica. Het controleert of de code daadwerkelijk draait zonder vast te lopen. Als de AI een fout maakt, zegt het systeem: "Oeps, dat gaat niet werken," en vraagt de AI om het opnieuw te proberen. Deze lus herhaalt zich tot wel 10 keer totdat de code solide is.

De Resultaten: Heeft het Gewerkt?

De auteurs hebben ProjAgent getest op een benchmark genaamd REPOCOD, die 980 echte programmeerproblemen bevat uit 11 verschillende softwareprojecten.

  • De Score: ProjAgent behaalde een 41,14% Pass@1 score. Dit betekent dat het bij de eerste poging voor ongeveer 41 van de 100 problemen werkende code schreef.
  • De Vergelijking: Dit versloeg de vorige beste methoden. De oude "dense search"-methoden haalden slechts 28,83%, en de "sparse search" (zoeken op trefwoorden) haalde 26,58%. Zelfs een topniveau-systeem genaamd SpecAgent bereikte slechts 34,52%.
  • Het Bewijs: Het paper suggereert dat de grootste boost kwam door het vinden van die "procedureel gelijkaardige" stappen. Toen zij de procedurele zoekopdracht verwijderden, daalde de score naar 25,76%. Toen zij de semantische zoekopdracht (het matchen van woorden) verwijderden, daalde het naar 32,29%. Dit bewijst dat je zowel de "hoe" als de "wat" nodig hebt om te slagen.

Wat het Paper Niet Beweert

Het is belangrijk om te weten wat dit paper niet zegt.

  • Het beweert niet dat het alle programmeerproblemen heeft opgelost. De score is 41,14%, wat betekent dat het nog steeds vaker dan de helft van de tijd faalt.
  • Het zegt niet dat dit voor elke programmeertaal werkt. De tests werden alleen uitgevoerd op Python-projecten.
  • Het beweert niet dat de "agent" perfect is. De auteurs geven toe dat de agent soms tijd of geheugen tekortkomt en niet de beste code kan vinden, wat suggereert dat er nog betere exploratietools nodig zijn.

De Kern van het Verhaal

Het paper suggereert dat om goede code voor grote projecten te schrijven, AI moet stoppen met alleen zoeken naar woorden die overeenkomen en moet beginnen met het zoeken naar patronen van denken. Door code te vinden die problemen op dezelfde manier oplost, zelfs als de woorden totaal anders zijn, helpt ProjAgent AI om betere, meer betrouwbare software te schrijven. Het is een stap voorwaarts, maar de reis naar perfecte codegeneratie is nog steeds gaande.

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.

Probeer Digest →