Metan liittyminen tekoälyavusteisen koodauksen markkinoille tällä viikolla sisälsi yhden erityisen väitteen, jota kannattaa pysähtyä pohtimaan. Muse Code, yhtiön uusi päätelaitteessa toimiva koodausagentti, ei Mark Zuckerbergin julkaisutekstin mukaan ainoastaan kirjoita koodia yksi tiedosto kerrallaan — kun työ on riittävän suuri, se ”hajauttaa sen erillisille rinnakkain työskenteleville aliagenteille eristetyissä worktree-työhakemistoissa”, ja Metan omissa testeissä se tiettävästi rakensi kuusi pelin ominaisuutta samanaikaisesti ilman törmäyksiä. Kyse on toimittajan omasta julkaisupäivänä esittämästä väitteestä omasta tuotteestaan, ei riippumattomasti varmennetusta tuloksesta, joten tähän yksittäiseen lukuun kannattaa suhtautua epäillen. Sen kuvaama työnkulun rakenne ei kuitenkaan ole vain Metan idea — rinnakkainen, eristetty agenttien suoritus on muodostumassa oletusmalliksi koko koodausagenttien kentällä, ja se muuttaa sitä, mitä ”hyvyys tässä” oikeastaan tarkoittaa.
Viimeisten kahden vuoden ajan tekoälyavusteisten koodaustyökalujen myyntipuhe on keskittynyt pitkälti nopeuteen yhdessä säikeessä: yksi agentti, yksi tehtävä, yksi tarkistettava diffi. Useimmat insinöörit ovat jo puoliksi omaksuneet tämän taidon — lue diffi, aja testit, vie tuotantoon. Työn hajauttaminen useille eristetyissä worktree-työhakemistoissa työskenteleville agenteille rikkoo tämän mallin. Et enää tarkista yhden ajatuskulun tuottamaa yhtenäistä muutosta. Tarkistat useita samanaikaisia, itsenäisesti perusteltuja muutoksia, joiden kaikkien on yhdistyttävä toimivaksi järjestelmäksi ilman ristiriitoja, päällekkäistä logiikkaa tai hiljaista erimielisyyttä siitä, miten jonkin koodikannan jaetun osan pitäisi toimia.
Miksi tämä on aidosti erilainen taito eikä vain vanhan taidon nopeampi versio
Yhden tekoälyn kirjoittaman diffin tarkistaminen on pääasiassa oikeellisuustarkistus: tekeekö tämä sen, minkä väittää tekevänsä, ja rikkoako se jotain lähistöllä. Useiden rinnakkaisten agenttien tuotosten tarkistaminen lisää kerroksen, jota useimpien ei ole koskaan tarvinnut harjoitella, koska vielä äskettäin yhdenkään ihmisen työ ei vaatinut sitä: diffien välinen johdonmukaisuus. Keksivätkö kaksi agenttia kumpikin oman versionsa samasta apufunktiosta? Riippuiko yhden agentin ”eristetty” muutos hiljaisesti tiedostosta, jota toinen agentti oli parhaillaan kirjoittamassa uusiksi? Havaitsiko yhdistämisvaihe oikean ristiriidan, vai valitsiko se hiljaa toisen haaran oletuksen toisen sijaan? Nämä eivät ole perinteisessä mielessä bugeja — jokainen yksittäinen diffi voi läpäistä omat testinsä ja silti tuottaa yhdistettynä epäjohdonmukaisen järjestelmän.
Tämä on sama ongelma, jota hajautetut insinööritiimit ovat aina hallinneet ihmisavustajien kanssa, mutta puristettuna päivistä minuuteiksi. Erona on se, että juniori-insinöörien tiimi pyytää luonnostaan ohjausta, kun tehtävä vaikuttaa epäselvältä; tehtävälleen osoitetun osan loppuun saattamiseen optimoitu agentti tuottaa usein itsevarman, syntaktisesti siistin vastauksen väärään kysymykseen. Sen havaitseminen edellyttää jotakuta, joka ymmärsi tehtävän riittävän hyvin hajottaakseen sen alun perin osiin — mikä tarkoittaa, että varsinainen pullonkaulat talentti ei ole ”koodin nopea tarkistaminen”, vaan ”työn jakaminen osiin, jotka voidaan turvallisesti suorittaa rinnakkain, ja sen tietäminen, mitä osia ei voi jakaa näin”.
Laajempi kaava, erityisesti koodaustyökalujen ulkopuolella
On syytä huomata, ettei tämä rajoitu kehittäjien työkaluihin. Googlen hakukentän uudistus — joka julkistettiin samalla viikolla — yhdistää AI Overviewsin ja AI Moden yhdeksi työnkuluksi, joka voi ottaa syötteeksi tekstiä, kuvia, PDF-tiedostoja, videota ja avoimia Chrome-välilehtiä, ja antaa työn agentille kyselyjäsentimen sijaan. Molempien julkaisujen yhteinen nimittäjä on sama: käyttöliittymä siirtyy pois mallista ”anna tekoälylle yksi selkeä ohje ja tarkista yksi selkeä tulos” kohti mallia ”anna tekoälylle väljästi määritelty tavoite ja kasa syötteitä ja anna sen selvittää vaiheet”. Tämä kaava näkyy kaikkialla, missä agenttimaisia työkaluja otetaan käyttöön, ei vain koodieditoreissa — ja se tarkoittaa, että tarkistamisen ja orkestroinnin taito tulee olemaan merkityksellinen kaukana insinööritöiden ulkopuolella, kaikille, joiden työhön kuuluu tekoälyjärjestelmän ohjaaminen monivaiheisen tehtävän läpi yhden kehotteen sijaan.
Mitä kannattaa käytännössä harjoitella
Jos kirjoitat koodia tai johdat koodityötä, muutama konkreettinen ja tarkistettavissa oleva tapa kehittää tätä taitoa nopeammin kuin siitä lukemalla:
- Ota selvää, mitä eristetty worktree-työhakemisto oikeastaan tarkoittaa (gitin
worktreeominaisuus mahdollistaa useiden haarojen tarkistamisen erillisiin hakemistoihin samanaikaisesti), ennen kuin luotat työkalun väitteeseen siitä, etteivät rinnakkaiset muutokset ”voi törmätä”. Suorituksen aikainen eristys ei takaa johdonmukaisuutta yhdistämishetkellä — se on erillinen vaihe, jota kannattaa seurata tarkasti. - Anna koodausagentille tarkoituksella niin suuri tehtävä, että sen on hajotettava se osiin, ja lue, miten se jakaa työn, ennen kuin luet syntyneet diffit. Hajotus kertoo sinulle enemmän siitä, voitko luottaa tuotokseen, kuin itse koodi.
- Harjoittele diffien tarkistamista erissä, ei yksi kerrallaan. Taito pitää kolme tai neljä toisiinsa liittyvää muutosta samanaikaisesti mielessään ja havaita, missä ne ovat ristiriidassa, on eri asia kuin kunkin tarkistaminen erikseen ja hyväksyminen omilla ansioillaan.
- Kysy, mitä ristiriitatilanteessa tapahtuu, älä vain onnistumistilanteessa. Kaikkien automaattisia rinnakkaisia yhdistämisiä väittävien työkalujen pitäisi pystyä näyttämään, mitä ne tekevät, kun kaksi agenttia todella muuttaa samaa logiikkaa — tämä epäonnistumispolku kertoo työkalun turvallisuudesta luovuttaa sille oikeaa työtä enemmän kuin onnistumispolku.
Mikään tästä ei edellytä, että odotat työnantajasi ottavan käyttöön tietyn tuotteen. Kaava — hajota, jaa tehtävät, yhdistä uudelleen, varmista — näkyy nyt useiden toimittajien koodausagenteissa ja kuluttajille suunnatuissa tekoälyrajapinnoissa. Ne, jotka tottuvat hallitsemaan tätä sykliä sen sijaan, että tarkistaisivat vain yksisäikeistä tuotosta, rakentavat taidon, joka säilyy merkityksellisenä riippumatta siitä, minkä yhtiön agentti päätyy huipulle.