Rengistä ohjelmistotehtaaksi
Julkaistu
Aloitin ohjelmiston rakentamisen tekoälyavusteisesti nollasta. Matkan varrella syntyi Thau, oma työkalu agenttien työn laadunvarmistukseen, joka kasvoi vahingossa ohjelmistotehtaaksi. Tässä tarinassa kerron, mitä matkalta jäi käteen.
Vuoden 2025 lopussa minulle avautui mahdollisuus lähteä rakentamaan ohjelmistoa tekoälyavusteisesti. Tavoite oli tukea cross-sales-työtä meidän konserniyhtiöiden sekä advisorien välillä. Pintaraapaisu vaatimusmäärittelyistä sisälsi kevyen CRM:n, liidien syötön ja myyntiputken hallinnan sekä mobiilisovellukset Android- ja iOS-alustoille. Alunperin oli tarkoitus räätälöidä ja laajentaa olemassa olevaa tuotetta, mutta rajat tulivat hyvin nopeasti vastaan. Tammikuussa 2026 päädyin tekemään viikonlopun mittaisen teknologiatestauksen Clauden avustuksella ajatuksella “mitä jos tehtäisiin alusta”. Lyhyt demo avainhenkilöille vahvisti omaa ajatusta ja sai kannustetta tämän rakentamisesta, joten alkuperäinen suunnitelma kuopattiin ja homma käynnistettiin nollista täysin tekoälyavusteisena. Ensimmäiset projektikoodit raapustettiin tammikuun lopussa. Tässä vaiheessa en osannut arvatakaan, millainen kaninkolo minut imaisee sisään mitä lopulta rakentuu.
Tekoälyagentti renkinä
Agenttiavusteinen ohjelmistokehitys lähti käyntiin hyvin vahvalla speksauskulmalla. Ajatuksena oli kasata riittävä kuvaus halutuista toiminnallisuuksista, vaatimuksista, arkkitehtuurista ja muista tarpeista. Kun riittävästi dokumentaatiota oli kasassa koodin luontiin, pilkottiin dokumentaation osio järkeviksi kokonaisuuksiksi ja aloitettiin koodaaminen. Tämä kaikki tapahtui agentuurisesti. Siinä olivat minä, mun mäkki ja komentorivin kautta muutama tekoälyagentti tiimikavereina. Minä pallottelin agentin kanssa seuraavaa kokonaisuutta sillä välin kun pari muuta koodailivat taustalla. Erittäin toimiva prosessi hetken aikaa.
Tommi & Agents
Helmikuun aikana saatiin ensimmäinen testijulkaisu tehtyä. Samalla alkoi tuotteen testikäyttö ja sitä myötä palautteen saaminen. Alkuun pienemmissä määrin mutta tasaisesti kuitenkin. Tässä vaiheessa törmäsin myös ensimmäiseen haasteeseen tekoälyn kanssa. Koodin laatu ei ollut sitä, mitä halusin sen olevan. Lisäksi agentit lähtivät hieman sooloilemaan eikä tuotos vastannut odotettua. Pelkästään käyttöliittymää koskeva muutos saattoi viedä agentin tietorakenteiden muuttamiseen. Jouduin kaitsijan rooliin eikä tämän tyyppinen mikromanagerointi ollut minun juttu. Minulle tyypilliseen tapaan lähdin selvittämään että mitä tälle voisi tehdä. Maailmalla oli vaihtoehtoja, muun muassa Ralph-loopin nimellä menevä työtapa jossa agentille annetaan tavoite ja sitä ajetaan silmukassa kunnes tavoite on täytetty. Mikään näistä valmiista ei tässä vaiheessa erilaisten testailujen pohjalta vastannut minun tarvetta. Päädyin rakentamaan oman ohjelmiston tätä varten.
Ihmeiden tekemisen taito
Helmikuun loppupuolella otin käyttöön oman työkalun, Thau-työnimellä kulkevan vekottimen ja aloin sen avulla viemään projektia eteenpäin. Nimestä sen verran, että pallottelin ideoita ja tematiikkaa sekä Clauden että ChatGPTn kanssa ja lopulta päädyin Thauhun parista syystä. Ensinnäkin se on helppo kirjoittaa komentoriville vaikka onkin vaikeampi lausua näin suomalaisena. Toiseksi se on kiva lyhennös thaumaturgy-sanasta joka tarkoittaa ihmeiden tekemistä.
Alkuun Thaun avulla pystyin varmistamaan paremmin agentuurisen työn laadun. Jokainen työ meni projektissa määriteltyjen tarkistusten ja testien lävitse ennen kuin se hyväksyttiin agentuuriseen katselmointiin, ihmiskatselmointiin ja julkaisuun. Tuottavuus kasvoi noin nelinkertaiseksi verrattuna Tommi & Agents -pumppuun, jossa muutoksia tuli joitakin kappaleita päivää kohden. Lisäksi tämä vapautti minun aikaa suunnittelemaan enemmän ominaisuuksia ja tekemistä agenteille.
Vauhti kiihtyy
Maaliskuun aikana kiihdytetyn agentuurisen kehittämisen seuraava haaste nosti päätään. Koska Thaun avulla pystyin rinnakkaistamaan koodin tuottamista niin sen mahdollisuuden tottakai käytin. Tästä seurasi se, että 10 agenttia rinnan koodaten vähintään puolet kaikista tuotoksista menivät uusintakierrokselle koska muutokset osuivat päällekkäin. Merge conflicteja tuli aivan liikaa. Muutin Thaun toimintaa siten, että kaikki työ joka menee sinne tarkistetaan mahdollisten riippuvuuksien ja yhteentörmäyksien varalta. Thau sai enemmän autonomiaa suunnittelija-agentin Archonin ja operaatioagentin Familiarin muodossa. Jälkimmäinen varmisti että työtä tekevät agentit olivat töissä eivätkä tauolla ja ensimmäinen oli minun parina työn suunnittelussa ja pilkkomisessa. Laadunvarmistusta paransin lisäämällä agentuuriseen koodikatselmointiin arkkitehtuurisen katselmoinnin. Tällä varmistettiin että koodi oli projektin laatuvaatimukset täyttävää ja pysyi valitussa arkkitehtuurissa.
Cross-sales-projekti eteni ja kehittyi hyvää vauhtia ja kesäkuussa siitä saatiin 1.0 versio ulos. Noin 5kk aloituksesta meillä oli nollasta rakennettu sovellus julki. Samalla korjasin ja päivitin Thaun toimintaa vastaamaan löydöksiä ja havaintoja. Se sai käyttöliittymää, uusia agentteja, parannuksia agenttien syötteisiin, rajoituksia agenttien toimintaan. Toki matkaan mahtui myös jälkeenpäin hauskoja bugeja, kuten esimerkiksi sellainen jossa eräässä rajatapauksessa käynnistettiin 100 agenttia yhtäaikaa hommiin. Onni onnettomuudessa vain osa teki päällekkäistä hommaa mutta minun kone oli aika jumissa tovin aikaa ja Anthropicin tilauksen viiden tunnin tokenraja meni hujauksessa.
Agenttinen tehdas ja tulevaisuus
Nyt kun olet jaksanut lukea tämän tarinan tänne asti, jaan vielä muutamia löydöksiä tältä matkalta. Kuten jo otsikko sanoo, Thau rakentui ohjelmistotehtaaksi useiden askelten läpi. Se tapahtui vahingossa ja suunnittelematta, vaikka kaikki osat siihen suunniteltiin tarpeen vaatiessa. Jos olisin tiennyt että rakennan ohjelmistotehtaan niin olisi voinut jäädä rakentamatta. Ytimessä oli koko ajan agentuurisen ohjelmistokehityksen laadun varmistaminen ja parantaminen nopeuden kasvaessa. Pohdin myös tarkkaan token-tehokkuutta ja rakensin alusta alkaen paljon sellaista toiminnallisuutta ja työkaluja jotka helpottavat ja parantavat agenttien työn tekemistä mutta eivät kuluta tokeneja. Lisäksi agenttien työn läpinäkyvyys sekä token-käytön että logimerkintöjen pohjalta oli merkittävä ja auttoi minua kehittämään ja parantamaan sekä projektin agenttiohjeistusta että työkalua itseään. En halunnut rakentaa vibe-koodattua projektia vaan sellaisen kokonaisuuden josta itse voin olla ylpeä ja minkä suhteen uskallan luvata myös jatkokehitystä.
Miten tulevaisuus, nyt kun Thau on rakennettu ja sillä on toimitettu toimiva järjestelmä? Tuleeko Thau olemaan jatkossakin osa minun tai Ikonin tekemistä? En usko. Se on kaikessa maagisuudessaankin puutteellinen, johtuen minun tietämättömyydestä. Lisäksi se rakentui vain minun käyttöön, vaikka yritin ajatella muita. Uusia ajatuksia ja kokeiluja on työn alla. Täytyy kuitenkin muistaa, että ei laadukas agenttinen ohjelmistokehitys vaadi tehdasta toimiakseen. Uskon että jokaiselle projektille löytyy sopiva malli viritetyn koodigeneraattorin ja tehtaan väliseltä spektriltä.
Tommi Pääkkö