Parsimony: welke AI-codeeragent wijzigt de minste code?

Hoe het werkt

Parsimony analyseert de patches die benchmarks reeds publiceren en telt 'codeereenheden' (coding units): syntactische elementen zoals statements, aanroepen, vergelijkingen, namen en literals.

Regels worden niet geteld, zodat het samenproppen van code op één regel niet wordt beloond. Verwijderde code wordt afgetrokken van het totaal: netto eenheden = toegevoegd − verwijderd.

Interpretatie van de resultaten

Modellen worden gerangschikt op basis van de gemiddelde netto toegevoegde eenheden voor de taken die ze hebben opgelost, waarbij de laagste score bovenaan staat. De waarde "Net units added (mean)" bevat ook mislukte pogingen. De status 'opgelost' (solved) is afkomstig van SWE-bench Verified; tests zijn niet opnieuw uitgevoerd. 'Gemeten' (measured) geeft aan hoeveel succesvolle pogingen daadwerkelijk gemeten konden worden.

Aanvullende informatie

  • Artificial Analysis Intelligence Index: Dit is een externe score, gekoppeld per model en redeneerniveau. Deze beïnvloedt de ranglijst niet.
  • Niet-geverifieerde runs: Sommige modellen (weergegeven in vervaagde kleuren) zijn door de auteur gedraaid op de eerste 3–10 DeepSWE Python-taken (OpenAI-modellen met pi, Anthropic-modellen met Claude Code) en beoordeeld met de tests van elke specifieke taak. Deze zijn niet geverifieerd of gerangschikt.
  • GPT-5.6 Sol: Dit model werd op beide manieren uitgevoerd; de eigen run voegde 0,88× zoveel code toe als de gepubliceerde run.

Methode

Bij de meting wordt elke patch toegepast op de code van de taak, waarna beide versies van elk gewijzigd bestand worden geparseerd. Er wordt geen code uitgevoerd.

De volgende elementen worden buiten beschouwing gelaten:

  • Tests
  • Documentatie
  • Gegenereerde bestanden

Er wordt uitsluitend Python gemeten. De pass/fail-resultaten zijn afkomstig van de gepubliceerde resultaten van SWE-bench; tests zijn niet opnieuw uitgevoerd.

Beperkingen

  • Grootte versus kwaliteit: Kleiner is niet altijd beter; de eenheden meten de omvang, niet de leesbaarheid of het ontwerp.
  • Correlatie met succes: Modellen die meer code schrijven, hebben de neiging meer taken op te lossen (Spearman 0,33–0,60 in de tabellen met 26+ modellen).
  • Invloed van de agent: Elk model gebruikt dezelfde agent (mini-SWE-agent), maar de agent beïnvloedt nog steeds de hoeveelheid code die wordt geschreven.

Voorbeeld: controleren op een negatief getal

De volgende twee codefragmenten leveren hetzelfde resultaat op, maar verschillen in omvang:

Versie 1:

def has_negative(values):
    found = False
    for value in values:
        if value < 0:
            found = True
    return found

Versie 2:

def has_negative(values):
    return any(value < 0 for value in values)

***

Code en data: github.com/La5u/Parsimony