Mitä AI-agenteista kannattaa ymmärtää

Miten AI-agentti toimii: agentin rakenne, jossa silmukan hallinta, muisti, säännöt ja kyky käyttää työkaluja sekä yhteydet kielimalliin ja ulkoisiin järjestelmiin.

Tämän kirjoituksen tarkoitus on auttaa ymmärtämään, miten AI-agentti toimii ja miten se eroaa chat-sovelluksesta.

Tänä vuonna on puhuttu paljon agenteista ja siitä, miten ne muuttavat työtä. Agenttikäsitteen ymmärtäminen voi kuitenkin olla vaikeaa.

Siksi tarkoituksenani on selittää, mikä on AI-agentti, miten AI-agentit toimivat ja millaisia käsitteitä agentteihin liittyy.

Kun olet lukenut kirjoituksen, ymmärrät tärkeimmät tekoälyagentteihin liittyvät käsitteet ja pystyt ymmärtämään paremmin sitä, mitä asioita kannattaa ottaa huomioon, kun suunnittelee agenttien käyttöä yritysympäristössä.

Mikä on AI-agentti?

AI-agentti (eli tekoälyagentti) on ohjelma, joka suorittaa tehtäviä itsenäisesti kielimallin avulla. Ymmärtämistä auttaa, kun muistaa, että englannin kielen sana agent voi tarkoittaa edustajaa tai itsenäistä toimijaa.

AI-agentti hyödyntää kielimallia työn suunnittelussa, se toteuttaa suunnitelmaa kielimallin avulla, tarkistaa kielimallin avulla tuloksia ja päättää, onko tulos haluttu, minkä jälkeen se palauttaa lopputuloksen käyttäjälle.

Uusien asioiden oppiminen on aina helpompaa, kun rakentaa tuttujen asioiden päälle. Lähdetään siksi vertaamaan agenttia chatbotiin.

Miten AI-agentti eroaa chatbotista?

Tekoälychatille voi esittää kysymyksen ja se vastaa siihen. AI-agentille puolestaan annetaan tehtävä ja se pyrkii suorittamaan tämän tehtävän.

Chatia voisi verrata kollegaan, jolta voi kysyä asioita, kun taas agentti on kuin harjoittelija, jolle voi antaa tehtävän suoritettavaksi. Harjoittelija lähtee suorittamaan annettua tehtävää ja palaa valmiin työn kanssa.

Sekä chatissa että agentissa on sama äly eli kielimalli takana. Ero on siinä, miten sovellus (joko web- tai mobiilisovellus tai agentti) hyödyntää kielimallia. Toki ero on nykyään hieman häilyvä, koska web-sovelluksilla on enemmän kykyjä kuin aiemmin.

Jotta agentin ja chatin välinen ero kävisi selvemmäksi, piirsin chatista periaatekuvan tähän. Tämä pyrkii avaamaan sitä, että käytettäessä chatia web-sovelluksessa sovelluslogiikka jakaantuu selaimessa pyörivään käyttöliittymään ja palvelinpäähän.

Chat-sovelluksen periaatekuva: käyttäjä, selain, web-sovelluksen palvelin ja kielimalli sovelluslogiikan sisällä.

Ihminen käyttää chat-sovellusta, joka on käyttöliittymä kokonaisuuteen, johon liittyy myös verkossa toimiva palvelin. Palvelin tuntee koko käyttäjän chat-historian ja liittää sen aina pyyntöihin kielimallille.

Tämä johtuu siitä, että kielimalli itsessään ei tiedä meistä ja aiemmista keskusteluistamme mitään. Se on vain raaka äly, joka ymmärtää tekstiä ja sen merkityksiä, osaa järkeillä ja tuottaa vastauksia, jotka tarjoillaan sovelluksen kautta käyttäjälle.

Jos haluat lukea lisää siitä, miten tekoälysovellukset lähtökohtaisesti toimivat, voit tutustua aiempaan kirjoitukseeni Miten chat-pohjainen tekoälysovellus ja kielimallit toimivat – perusteet tietohallinnolle ja liiketoiminnalle.

Mennään syvemmälle siihen, mikä oikein tekee agentista itsenäisen toimijan. Koska agentti pystyy tekemään enemmän asioita itsenäisesti, vaatii se enemmän sovelluksen ajoympäristöltä. Alla oleva kuva avaa agentin rakennetta.

Miten AI-agentti toimii: agentin rakenne, jossa silmukan hallinta, muisti, säännöt ja kyky käyttää työkaluja sekä yhteydet kielimalliin ja ulkoisiin järjestelmiin.

Kuva on tietysti yksinkertaistus eikä kuvaa ihan kaikenlaisia agenttien käyttöskenaarioita. Se kuitenkin kuvaa sitä, miten esimerkiksi Anthropicin Claude Code tai OpenAI:n Codex toimivat.

Tässä esimerkissä agenttia ajetaan käyttäjän koneella. Todellisuudessa agentti voisi pyöriä myös erillisellä fyysisellä koneella tai omalla virtuaalipalvelimella tai esimerkiksi tekoälypalvelujen tarjoajan ympäristössä, jolloin agenttia ohjattaisiin selaimella.

Agentti hallitsee koko sovelluslogiikan, johon kuuluvat mm.

  • kyky käyttää työkaluja
  • silmukan hallinta
  • muisti
  • säännöt ja raja-aidat

Käydään näitä läpi yksi kerrallaan. Aloitetaan työkalujen käytöstä, koska kyky käyttää työkaluja on keskeinen agenttien ominaisuus.

Agentit osaavat käyttää työkaluja

AI-agentin työkalut korostettuna: kyky käyttää työkaluja ja paikalliset resurssit agentin rakenteessa.

Kielimalli on itsessään kirjaimellisesti kädetön. Se periaatteessa vain ottaa pyyntöjä vastaan, pureskelee niitä ja palauttaa tekstipohjaisen vastauksen. Kaikkeen muuhun tarvitaan työkaluja. Tässä agentti astuu kuvaan mukaan. Sillä on käytössään työkaluja, joita se voi käyttää kielimallilta tulevien ohjeiden mukaan.

Millaisia työkaluja agentilla on käytössään?

Työkalut voi jakaa karkeasti seuraaviin ryhmiin:

Tiedostojärjestelmä. Agentti voi päästä käsiksi koneen tiedostojärjestelmään ja sitä kautta yhteen tai useampaan tiedostoon. Se voi lukea, muokata tai poistaa tiedostoja tai luoda uusia tiedostoja. Kaikki riippuu tietysti oikeuksista, joita agentille on annettu. Chatillekin voi antaa tiedostoja osana syötettä. Agentti kuitenkin voi mennä itsenäisesti etsimään ja lukemaan eri tiedostoja, joita koneelta löytyy. Koska se voi tuottaa uusia tiedostoja tai muokata olemassa olevia, se on paljon hyödyllisempi kuin pelkkä chat.

Rajapintojen avulla agentti voi kirjautua muihin järjestelmiin käyttäjän puolesta. Käytännössä tarkoitan tässä API-rajapintoja. APIen hyödyntäminen tekee agenteista erittäin kyvykkäitä.

Rajapintojen avulla agentti voi kirjautua esimerkiksi tikettijärjestelmään ja hakea vaikka kaikki järjestelmästä löytyvät avoimet tiketit. Samalla tavalla agentti voi kirjautua käyttäjän sähköpostiin tai kalenteriin ja lukea viestejä ja tapahtumia tai jopa lähettää sähköpostia käyttäjän puolesta.

Agentti voi tehdä verkkohakuja, tutkia yksittäisiä sivuja ja täyttää lomakkeita käyttäjän puolesta. Chatia käytettäessäkin tehdään verkkohakuja, joten siinä mielessä se on samanlainen kuin agentti.

Agentti voi kuitenkin käyttää ihan oikeaa selainta, jolloin se näkee sivun rakenteen kuten ihminen näkisi. Se voi klikkailla painikkeita, täyttää lomakkeita, kirjautua sisään eri sivustoihin ja mm. ottaa kuvakaappauksia sivuista.

Kyky käyttää oikeaa selainta on merkittävä kyky agentille. Selaimen avulla agentti voi tehdä toimenpiteitä käyttäjän puolesta, vaikka järjestelmään ei olisi olemassa API-rajapintaa. Agentin avulla voi siis toteuttaa tehtäviä, joihin tarvittiin aiemmin ohjelmistorobotiikkaa (Robotic Process Automation eli RPA).

Koodin ajaminen. Sen lisäksi että agentti voi chatin tavoin kirjoittaa skriptejä ja ohjelmistokoodia, se voi myös ajaa sitä ja nähdä ajon tulokset. Kun agentti saa tehtävän, se voi päätellä, että tämä kannattaa ratkaista koodin pätkän avulla, se kirjoittaa koodin ja ajaa sen ja hyödyntää tulosta. Todellisuudessa kielimalli kirjoittaa koodin ja agentti ajaa sen.

Esimerkiksi Office-työkaluissa olevat agentit ovat juuri tällaisia. Kun pyytää agenttia tekemään Excel-taulukon, agentti toteuttaa taulukon ajamalla kielimallin kirjoittaman Python-skriptin.

Koodin avulla agentti voi tehdä muutoksia tietokoneeseen, johon sillä on pääsy. Esimerkiksi jos agenttia ajaa Windows-koneessa, se voi ajaa komentoja PowerShellin tai Windows-komentorivin avulla. Samoin Macissa agentti osaa ajaa bash-komentoja käyttäjän puolesta.

Mitä hyötyä työkaluista on?

Työkalujen avulla agentti voi saada asioita aikaan. Tiedostojärjestelmäpääsyn avulla agentti voi hyödyntää tehtävissään kaikkia niitä tiedostoja, joihin sillä on pääsy. Siksi käyttäjän ei tarvitse syöttää sille jokaista tiedostoa itse vaan riittää, että kertoo, että minulla on tietty tiedosto, jota tarvitaan tehtävän toteuttamisessa ja agentti voi käydä etsimässä sen.

Tiedostojärjestelmäpääsyn avulla agentti voi myös kirjoittaa tuotoksensa suoraan haluttuun hakemistoon ja esimerkiksi muokata haluttua dokumenttia suoraan sen sijaan, että se kertoo käyttäjälle, millaisia muutoksia kannattaisi tehdä.

API-rajapintojen avulla agentti voi käyttää muita tietojärjestelmiä käyttäjän puolesta. Se tekee sen hyvin nopeasti ja riippuen rajapinnoista, se voi toteuttaa hyvinkin monimutkaisia työnkulkuja käyttäjän puolesta.

Kyky tuottaa ja ajaa koodia mahdollistaa monimutkaisen laskennan, omien sovellusten ja työkalujen rakentamisen, esimerkiksi PowerPoint-esitysten rakentamisen ja muokkaamisen tai tiedostojen vertaamisen.

Nyt tiedämme, että agentit voivat tuottaa konkreettisia lopputuloksia. Miten agentti päätyy haluttuun lopputulokseen? Se käyttää siihen silmukkaa.

Lue eteenpäin, niin saat tietää, mikä silmukka oikein on ja miten se toimii.

Agentti hyödyntää työssään silmukkaa (Agentic loop)

Agentic loop: agentin rakenne, jossa silmukan hallinta on korostettu keskeisenä kykynä.

Agentti ei itsessään ole älykäs. Se tarvitsee kielimallia kaikkeen päättelyyn, joka ei perustu selkeisiin sääntöihin. Siksi se lähettää toistuvasti kaiken tietämänsä kielimallille ja luottaa siihen, että kielimalli pystyy ohjaamaan sitä.

Otetaan esimerkki, jossa käyttäjä haluaa muodostaa yhteenvedon useammasta Excel-tiedostosta. Miten silmukka auttaa tehtävän suorittamisessa?

Miten silmukka auttaa agenttia tehtävän suorittamisessa?

Alla olevassa kuvassa käyttäjä antaa tekoälyagentille tehtävän. Agentti ei itse ymmärrä pyyntöä, joten se lähettää pyynnön kielimallille pureksittavaksi. Kielimalli pyytää agenttia listaamaan valitun kansion sisällön ja lähettämään sen takaisin kielimallille.

Agentic loop vaihe 1: käyttäjä antaa tehtävän ja kielimalli pyytää agenttia listaamaan kansion sisällön.

Agentti käyttää kykyään lukea tiedostojärjestelmää ja listaa kansion sisällön ja lähettää sen takaisin kielimallille. Seuraava kuva esittää tätä tilannetta. Kielimalli päättelee, että käyttäjä haluaa, että yhteenvedot tehdään tiedostoista A, B ja C ja pyytää siksi agenttia avaamaan nämä tiedostot ja lähettämään ne tutkittavaksi.

Agentic loop vaihe 2: kansion sisältö on listattu ja kielimalli pyytää agenttia avaamaan tiedostot A, B ja C.

Agentti osaa avata tiedostot käyttämällä koodia. Se lukee tiedostot muistiinsa, muuttaa ne tekstiksi ja lähettää ne kielimallille prosessoitavaksi.

Kielimalli lukee tiedostot ja analysoi niitä. Kielimalli antaa ohjeet, miten lopputulos tuotetaan. Agentti tuottaa uuden Excelin ohjeiden mukaan. Käytännössä kielimalli tuottaa koodinpätkän, jolla agentti pystyy tuottamaan uuden tiedoston.

Agentic loop vaihe 3: tiedostot on luettu ja kielimalli ohjeistaa laskemaan summat ja kirjoittamaan Excel-yhteenvedon.

Agentti kirjoittaa lopputuloksen tiedostojärjestelmään ja lähettää lopputuloksena olevan tiedoston kielimallille tarkastettavaksi. Kun kielimalli toteaa, että Excel-tiedosto näyttää hyvältä, agentti ilmoittaa käyttäjälle, että työ on valmistunut.

Agentic loop vaihe 4: agentti kirjoittaa valmiin Excel-tiedoston, kielimalli tarkistaa tuloksen ja työ valmistuu.

Tämä esimerkki oli hyvin yksinkertainen eikä sisältänyt kaikkia silmukan kierroksia, mitä todellisuudessa tällaisessa käytäisiin läpi. Siitä käy kuitenkin ilmi, että agentti itsessään ei ymmärrä käyttäjän pyyntöjä. Kielimalli päättelee aina, mitä seuraavaksi tehdään.

Esimerkistä käy myös ilmi, että silmukan pyöriessä kielimallille lähetettävä sisältö kasvaa hyvin nopeasti.

Agentin keskeinen kyky tässä on hallita silmukkaa. Kielimalli tekee päätökset, ja agentti toteuttaa päätökset parhaansa mukaan. Sen jälkeen kielimalli arvioi, miltä tulokset näyttävät ja päättää seuraavan tehtävän. Agentin tulee osata pitää yllä keskusteluhistoriaa ja toimia aina kielimallin ohjeiden mukaan.

Agenttinen silmukka perustuu tavoitteeseen

Agenttinen silmukka eli Agentic loop perustuu siihen, että kielimalli päättelee, mitä käyttäjä haluaa ja asettaa siten silmukalle tavoitteen, jota kohti agentti pyrkii. Tehtävä katsotaan valmiiksi, kun kielimalli on sitä mieltä, että tavoite on täyttynyt.

Yllä olevassa esimerkissä tavoite oli melko selkeä ja helposti arvioitavissa. Tavoitteen mukaan agentin piti tuottaa yhteenveto annettuista tiedostoista. Kielimallin oli helpohkoa todeta, kun tavoite täyttyi.

Entä jos tavoite olisi ollut epäselvempi? Jos agentille olisi antanut tavoitteeksi: kokoa kattava yhteenveto yrityksemme myynnistä. Mikä on kattava? Agentin on vaikea ymmärtää, mikä on kattava. Riittääkö kolme tiedostoa vai pitääkö käydä läpi koko vuosi, kaikki tuotelinjat, kaikki maantieteelliset alueet vai mitä raportin pitäisi kattaa?

Eli jos agentille antaa epäselvän tavoitteen, sen on vaikea päätellä, milloin työ katsotaan valmiiksi. Mitä tästä voi seurata?

  • Loputon silmukka — kielimalli jatkaa hakemista, tarkistamista tai hiomista koska se ei löydä selkeää pysähtymissignaalia. Tässä kuluu turhaan aikaa ja rahaa, koska joka ikinen kierros on oma API-kutsunsa, joka laskutusmallista riippuen voi maksaa erikseen.
  • Silmukan ennenaikainen pysähtyminen — kielimalli toteaa tehtävän valmiiksi liian varhain, koska "riittävän hyvä" on halvempi päätös kuin jatkaa työtä. Lopputulos voi näyttää valmiilta, vaikka se olisi oikeasti ihan kesken.
  • Scope creep — malli laajentaa tehtävää omin päin, koska epäselvä tavoite antaa sille liikaa tulkinnanvaraa. Se voi esimerkiksi koota ylimääräistä tietoa ajatellen, että siitä olisi hyötyä.
  • Epäjohdonmukaisuus ajojen välillä — sama epäselvä tavoite voi tuottaa eri laajuisen lopputuloksen eri kerroilla, koska "valmis"-raja ei ole kiinteä vaan mallin oma tulkinta.

Mitä tästä voidaan oppia? Agentin ohjaamisessa pätee ihan sama periaate kuin ihmisille annettavissa tehtävissä: Jos tehtävänanto on epäselvä, voi lopputulos olla ihan mitä vaan. Ihminenkin tarvitsee tyypillisesti selkeän tehtävänannon onnistuakseen. Mitä kokemattomampi tekijä on, sitä selkeämmin pitää tehtävänanto antaa. Sama pätee agenttiin. Agenttia kannattaakin kohdella hyvin kokemattomana kollegana, jolle kaikki pitää avata eksplisiittisesti.

Hyvä nyrkkisääntö sopivan tavoitteen määrittämiseksi on: Jos ihmiselle olisi vaikea vastata lyhyesti kysymykseen "milloin tämä on valmis?", on se kielimallillekin vaikeaa.

Agentin luotettavuus ei siis riipu vain mallin kyvyistä, vaan siitä kuinka tarkasti tavoite ja sen valmistumiskriteeri on määritelty etukäteen.

Yhteenveto

Käsittelin tässä kirjoituksessa agentin toimintaperiaatetta, miten agentti hyödyntää kielimallia tehtävien suorittamisessa, miten agentti käyttää työkaluja tehtävien suorittamiseen ja miten agenttinen silmukka on olennainen osa agentin toimintaa.

Käsittelen tulevissa kirjoituksissa muita agentin ominaisuuksia, kuten muistia, sääntöjä ja käyttöoikeuksia sekä sitä, miten agentteja voi ajaa yritysympäristössä.

Jos haluat saada tiedon uusista kirjoituksista, tilaa uutiskirjeeni, niin saat ilmoituksen, kun julkaisen uuden kirjoituksen.

Tilaa uutiskirjeeni

Saat tiedon uusista artikkeleista suoraan sähköpostiisi.

Annan luvan tallentaa tietoni ja hyväksyn tietosuojakäytännön.

Scroll to Top