Kyllä tai ei ei riitä: tekoälyavustajasi tarvitsee fiksummat päätökset
Miksi AI-koodausagenttien mergausportit tarvitsevat enemmän kuin kyllä tai ei
Kuvittele tilanne: AI-koodausagenttisi on lähettänyt pull requestin. Kaikki testit menevät läpi. Linteri hyväksyy sen. Tietoturvatarkistuskin menee läpi. Papereilla kaikki on vihreää.
Joten mergaat sen, eikö niin?
Ei vielä.
Boolen ansa
Perinteiset CI/CD-portit toimivat mainiosti ihmisten kirjoittamalle koodille, koska ihmiset kirjoittavat koodia yleensä ennustettavissa olevilla "riittävän hyvä" ja "vaatii parannusta" -kaavoilla. Voimme tarkistaa muutaman ruudun, ajaa muutaman testin ja tehdä järkevän päätöksen.
Mutta AI-koodausagentit? Ne toimivat täysin eri paradigmassa. Ne voivat tuottaa toimivaa koodia, joka näyttää paperilla täydelliseltä, mutta kätkee sisäänsä hienovaraisia ongelmia: liian monimutkaisia ratkaisuja yksinkertaisiin ongelmiin, kaavoja jotka toimivat tänään mutta eivät skaalaudu huomenna, tai koodia joka tekee oletuksia laajemmasta koodikannasta joita ei välttämättä pidä paikkaansa.
Boolen mergausportti – läpi tai ei, merge tai blockki – ei yksinkertaisesti ymmärrä tätä todellisuutta. Se kohtelee koodin laatua binäärisenä tilana, vaikka se on todellisuudessa spektri kontekstista riippuvaisine kynnysarvoineen.
Mikä tekee AI-koodista erilaisen
Tässä kohtaa asia kiinnostaa oikeasti. Kun ihmiskehittäjä kirjoittaa koodia, heidän virheensä tyypillisesti keskittyvät tunnettuihin heikkouksiin. He unohtavat edge case -tilanteet. He kirjoittavat sekavia muuttujanimiä. He ovat ihmisiä.
Kun AI-koodausagentti kirjoittaa koodia, vikamoodit ovat erilaiset:
"Teknisesti oikein" -ongelma: Koodi toimii, mutta se ratkaisee väärän abstraktiotason. Se saattaa läpäistä jokaisen testin samalla kun se tuo sisään teknistä velkaa joka kasautuu ajan myötä.
Kontekstisokeus: AI on hämmästyttävän hyvä tuottamaan koodia joka toimii eristyksissä mutta hajoaa kun se integroidaan muun järjestelmän kanssa. Boolen portti näkee läpäistyt testit ja hyväksyy mergen. Älykkäämpi portti huomauttaisi potentiaalisista integraatio-ongelmista.
"Tänään riittää" -ansaa: AI optimoi usein nykyisten vaatimusten läpäisyyn ajattelematta huomisen tarpeita. Boolen portti ei osaa erottaa "tämä toimii täydellisesti käyttötapauksellemme" ja "tämä juuri ja juuri toimii" -eroa.
Porttien rakentaminen vivahteita ymmärtäviksi
Joten millainen parempi mergausportti näyttää? Se alkaa luopumalla boolean-mielentilasta ja omaksumalla porrastettu arviointi.
Harkitse tier-lähestymistapaa: koodi joka ei läpäise kriittisiä portteja (tietoturva-aukot, rikkinäinen toiminnallisuus) blockataan. Koodi joka ei läpäise laatuportteja (tyyliongelmat, pienet monimutkaisuusongelmat) merkitään ihmisarviointia varten. Koodi joka läpäisee kaiken, mergetään luottavaisesti.
Tämä ei ole laatutason laskemista – kyse on realismista siitä miten AI-generoitua koodia pitäisi arvioida. Tietoturva-aukko on binäärinen. Hieman pitkähkö funktionimi on keskustelun aihe.
Ihmis-AI-yhteistyömalli
Tässä on näkemykseni: AI-koodausagentit eivät korvaa kehittäjän harkintakykyä; ne täydentävät sitä. Mergausporttisi pitäisi heijastaa tätä todellisuutta.
Jotkut tiimit kokeilevat portteja jotka pisteyttävät koodin useilla ulottuvuuksilla – oikeellisuus, ylläpidettävyys, tietoturva, suorituskyky – ja reitittävät pull requestit sen mukaan. Yksinkertainen bugikorjaus korkealla oikeellisuuspisteellä mutta matalammalla ylläpidettävyydellä saattaa mennä läpi minimaalisella arvioinnilla. Suuri ominaisuus sekavilla pisteillä kaikilla osa-alueilla ansaitsee perusteellisen ihmishuomion.
Tämä lähestymistapa kunnioittaa sekä AI:n mahdollistamaa nopeutta että kokemuksen tuomaa viisautta.
Oikean tasapainon löytäminen
Oikea porttien sofistikaatiotaso riippuu kontekstistasi. Startup joka toimittaa nopeasti saattaa hyväksyä enemmän riskiä vastineeksi nopeudesta. Yritys joka käsittelee arkaluonteista dataa tarvitsee tiukemmat kontrollit.
Se mikä on universaalia: AI-koodausagenttiesi tuotosten kohteleminen joko "riittävän hyvää mergattavaksi" tai "ei riittävän hyvä" on väärä valinta. Ohjelmistot jotka rakennamme ovat liian monimutkaisia, ja työkalut joita käytämme ovat liian kyvykkäitä, tällaiseen yksinkertaiseen arviointiin.
Mergausporttisi pitäisi olla älykkäin osa putkeasi – koska se on viimeinen puolustuslinja AI:n kyvykkyyden ja tuotantorealiteetin välillä.
Mikä lähestymistapa on toiminut (tai epäonnistunut) sinun tiimilläsi? Olen vilpittömästi kiinnostunut miten muut ajattelevat tätä ongelmaa.