Yksittäinen korjaus onnistuu, pitkäaikaisylläpito ei
Tekoälykoodausagentit pärjäävät hyvin yksittäisten bugien korjaamisessa. Aiemmat vertailutestit kuten SWE-bench ovat osoittaneet tämän toistuvasti, ja tulokset paranevat jokaisen mallisukupolven myötä.
Mutta entä kun sama agentti joutuu ylläpitämään koodipohjaa kuukausien ajan? Sun Yat-sen-yliopiston ja Alibaban tutkijat kehittivät SWE-CI-vertailutestin, jossa 18 tekoälymallia kahdeksalta tarjoajalta testattiin sadan oikean Python-koodipohjan ylläpidossa. Mukana olivat muun muassa Clauden, GPT:n, DeepSeekin ja Qwenin malleja. Testiajoissa kului yhteensä yli kymmenen miljardia tokenia.
Tulos oli tyly: valtaosa malleista rikkoi aiemmin toiminutta koodia yli 75 prosentissa tehtävistä. Maaliskuun alussa arXiv-palvelussa julkaistu tutkimus kyseenalaistaa käsityksen siitä, että koodausagentit olisivat valmiita pitkäaikaiseen ylläpitotyöhön.
Kahdeksan kuukautta todellista kehityshistoriaa
SWE-CI eroaa aiemmista koodaustesteistä perustavanlaatuisesti. SWE-bench mittaa yksittäisen vikaraportin korjausta, mutta SWE-CI seuraa agentin suoriutumista pitkällä aikavälillä. Jokainen sadan tehtävän joukosta kattaa keskimäärin 233 päivän kehityshistorian ja 71 peräkkäistä committia oikeasta avoimen lähdekoodin repositoriosta.
Tutkijat aloittivat lähes 5 000 Python-repositoriosta ja karsivat ne 68 repositorion sataan tehtävään. Kriteereinä olivat vähintään kolmen vuoden aktiivinen kehityshistoria, yli 500 GitHub-tähteä ja vähintään 500 muutettua koodiriviä. Kyse on todellisista, tuotannossa käytettävistä ohjelmistoista.
Testissä käytetään kaksoisagenttiprotokollaa: arkkitehtiagentti tunnistaa puutteet ja tuottaa vaatimukset, ohjelmoija-agentti toteuttaa ne. Jokaisen muutoksen jälkeen ajetaan CI-testit. Yksittäisessä tehtävässä on enintään 20 iteraatiokierrosta, ja jokainen kierros paljastaa välittömästi, rikkooko uusi korjaus jotain aiempaa.
Asetelma vastaa huomattavasti paremmin todellista ohjelmistokehitystä kuin yksittäisen bugin korjaus. Oikeassa projektissa muutokset kasautuvat, vaatimukset muuttuvat ja koodipohja monimutkaistuu ajan myötä.
Vain yksi malli ylittää 50 prosentin rajan
Tutkimuksen keskeisin mittari on nollaregressioaste: kuinka suuressa osassa tehtävistä malli ei rikkonut yhtään aiemmin läpäistyä testiä. Useimpien mallien nollaregressioaste jäi alle 0,25:n. Käytännössä ne rikkoivat aiemmin toiminutta koodia yli kolmessa neljästä tehtävästä.
Ainoastaan Anthropicin Claude Opus -mallisarja ylitti 50 prosentin rajan. GLM-5 pärjäsi toiseksi parhaiten mutta jäi sekin selvästi jälkeen. GPT, DeepSeek, Qwen, Kimi, MiniMax ja Doubao jäivät kaikki kauas 50 prosentin rajasta.
Tutkijat kehittivät myös EvoScore-mittarin, joka painottaa myöhempien iteraatioiden tuloksia vahvemmin kuin alkuvaiheen suorituksia. Mittari paljasti kiinnostavan strategiaeron mallien välillä: GPT, DeepSeek ja MiniMax suosivat pitkän aikavälin vakautta, kun taas Kimi ja GLM pärjäsivät paremmin lyhyen aikavälin painotuksella. Claude ja Qwen pysyivät vakaina painotuksesta riippumatta, mikä viittaa tasaisempaan suorituskykyyn koko ylläpitojakson ajan.
Agentti näkee vain nykyhetken
Miksi agentit epäonnistuvat ylläpidossa? Tutkijoiden vastaus on suoraviivainen: agentit ovat paikallisia optimoijia. Kun agentti kohtaa epäonnistuneen testin, se korjaa juuri sen ongelman. Se ei mallinna, miten muutos vaikuttaa koodipohjan muihin osiin ja aiemmin läpäistyihin testeihin.
Ihmiskehittäjä tuntee koodin historian ja ymmärtää moduulien väliset riippuvuudet. Tekoälyagentti käsittelee jokaisen iteraation ikään kuin se olisi ensimmäinen kerta. Se ratkaisee yhden ongelman ja luo samalla uusia.
Ohjelmistoyrityksille tämä on konkreettinen varoitus. Tuotantokoodia ylläpidetään vuosia, ja korjaus joka rikkoo toisen ominaisuuden voi käynnistää vikaketjun. Jos agentti rikkoo enemmän kuin korjaa, sen käyttö ilman jatkuvaa ihmisvalvontaa on riski. SWE-CI osoittaa, että tällä hetkellä näin käy useimmilla malleilla.



