Suunnittelumallit — ReAct ja eksplisiittinen työnkulku
Agentit90 min oppitunti

Suunnittelumallit — ReAct ja eksplisiittinen työnkulku

Johdanto

Nyt tiedät, mistä agentti koostuu: muistista, työkaluista ja identiteetistä. Seuraava kysymys on, miten suunnittelet agentin havaittavan toiminnan järkeväksi ja testattavaksi. Miten varmistat, että se etenee oikeassa järjestyksessä eikä hyppää sattumanvaraisesti vääriin toimintoihin?

Vastaus on suunnittelumallit. Ne ovat testattuja tapoja järjestää työkalujen käyttö, tulosten tarkistus, päätökset ja toiminnot. Mallin sisäistä päättelyä ei pyydetä eikä tallenneta. Sen sijaan näkyviin tehdään lyhyt päätösperustelu, työkalun käyttö, tulos tai virhe sekä toteutettu toiminto.

Projektissasi valitset kahdesta perusmallista: käyttääkö agenttisi ReAct-mallia vai eksplisiittistä työnkulkua. Moniagenttijärjestelmät käsitellään myöhemmin valinnaisena syvennyksenä, eikä niitä tarvita lopputyössä.

Kytkentä agentin ohjauskehykseen: ReAct ja eksplisiittinen työnkulku ovat tapoja, joilla agentin ohjauskehys ohjaa agentin havaittavaa toimintaa. Agentin ohjauskehys hallitsee kierrosta, välittää työkalukutsut ja tulokset, asettaa iteraatiorajan, käsittelee virheet ja lokittaa tapahtumat. Kielimalli valitsee seuraavaa sisältöä tai toimintoa näiden rajojen sisällä.

ReAct: valitse toiminto, havainnoi tulos ja jatka

ReAct tarkoittaa sanoja Reasoning + Acting eli päättely ja toiminta. Toteutuksessa agentti valitsee työkalun, saa havainnon ja valitsee sen perusteella seuraavan toiminnon. Valinnasta voidaan kirjata lyhyt päätösperustelu, mutta mallin piilotettua sisäistä päättelyä ei paljasteta lokiin.

Käytännössä agentti saa tehtävän: ”Asiakas kysyy, onko tuotetta saatavilla.” Toteutus kirjaa lyhyen päätösperustelun: ”Saatavuus vaatii ajantasaisen varastohaun.” Sen jälkeen agentti kutsuu varastorajapintaa. Lokissa ei tarvita mallin raakaa, piilotettua ajatusketjua.

Seuraavaksi tulee toiminta: agentti kutsuu varasto-API:a ja saa vastauksen: ”Tuotetta on 5 kappaletta.”

Sitten toteutus tarkistaa tuloksen ja kirjaa lyhyesti: ”Haku onnistui; vastaus voidaan muodostaa palautetusta määrästä.” Käyttäjä saa tarvittaessa tiiviin perustelun, mutta mallin sisäinen päättely jää piiloon.

Lopuksi agentti tekee toisen toiminnon ja kirjoittaa asiakkaalle vastauksen: ”Kyllä, tuotetta on 5 kappaletta varastossa. Voit tehdä tilauksen nyt.” Työkalukutsu, havainto ja seuraava toiminto vuorottelevat, kunnes tehtävä on valmis tai enimmäisraja täyttyy.

ReAct on hyödyllinen, kun seuraava toiminto riippuu työkalun palauttamasta tuloksesta. Jäljitettävyyttä ei rakenneta tallentamalla raakaa ajatusketjua, vaan kirjaamalla rakenteiset kutsut, tulokset, virheet, toiminnot ja lyhyet päätösperustelut.

ReAct-mallin eteneminen

Tehtävä saapuu Päätösperustelu Mitä tietoa tarvitaan seuraavaksi? Työkalukutsu Käytä rakenteista syötettä.
Vastaa käyttäjälle Seuraava toiminto Vastaa, jatka tai eskaloi. Tulos tai virhe Mitä työkalu palautti?

Kun ReAct-mallin toimintaa lokitetaan, havaittava työnkulku näkyy selvästi:

[PÄÄTÖSPERUSTELU] Ajantasainen hinta vaatii tuotehaun.

[TOIMINTA] GET /api/product?id=12345 → Hinta: 45 €

[TULOS] Tuotehaku onnistui; palautettu hinta on 45 euroa.

[TOIMINTA] Lähetä vastaus: ”Tuotteen hinta on 45 €.”

Lokista näkyvät työkalujen käytöt, niille annetut syötteet, tulokset, toiminnot, virheet ja lyhyet päätösperustelut. Se ei tallenna mallin sisäistä päättelyä eikä tarpeettomia salaisuuksia tai henkilötietoja.

Pysähdy hetkeksi: Ajattele omaa ratkaisuprosessiasi. Kun ratkaiset ongelmaa, ajatteletko ensin, toimitko sen jälkeen ja arvioitko sitten tuloksen perusteella? Vai hyppäätkö suoraan toimintaan? Miten ReAct-malli voisi auttaa sinua tekemään parempia päätöksiä?

// päätösperustelu → työkalukutsu → tulos → seuraava toiminto
KUVION MOBIILIESITYS
  1. Lyhyt päätösperustelu
  2. Rakenteinen työkalukutsu
  3. Havainto tai virhe
  4. Tieto riittää? kyllä → valmis; ei → uusi rajattu vaihe
  5. Lokiin kutsut, tulokset, toiminnot ja virheet
ReAct
PERUSTELE LYHYESTI TOIMI HAVAINNOI ✓ VALMIS
LOKI — jokainen vaihe jää näkyviin [PÄÄTÖSPERUSTELU] Tarvitsen ensin säätiedon. [TOIMINTA] hae_saa("Turku") [HAVAINTO] +2 °C, sadetta 80 % [PÄÄTÖSPERUSTELU] Vielä vapaa aika kalenterista. [TOIMINTA] hae_kalenteri(huomenna) [HAVAINTO] klo 14 vapaa [VALMIS ✓] Ehdotan: huomenna klo 14 sisällä.
ReAct-toteutus etenee havaintojen perusteella. Loki näyttää lyhyen päätösperustelun, rakenteisen työkalukutsun, tuloksen tai virheen ja seuraavan toiminnon — ei mallin piilotettua raakaa ajatusketjua.

Eksplisiittinen työnkulku: jaa ongelma näkyviin vaiheisiin

Eksplisiittisessä työnkulussa toteuttaja purkaa ongelman näkyviin, testattaviin vaiheisiin. Tämä on eri asia kuin mallin piilotettu sisäinen päättely. Työnkulku voidaan tarkistaa ja lokittaa ilman, että raakaa ajatusketjua pyydetään tai tallennetaan. Kurssin agenttiprojektissa myös eksplisiittiseen työnkulkuun kuuluu vähintään yksi nimetty vaihe, jossa kielimalli tekee aidon rajatun valinnan vähintään kahdesta ohjauskehyksen sallimasta vaihtoehdosta. Vaiheet ja sallitut haarat ovat ennalta määriteltyjä, mutta mallin valitsema haara riippuu syötteestä.

Esimerkiksi agentti saa tehtävän: ”Käsittele palautuspyyntö.” Agentti ei yritä ratkaista kaikkea yhdellä kertaa, vaan purkaa ongelman vaiheisiin:

  1. Mikä on asiakkaan ongelma? Tilauksesta puuttuu kolme tuotetta.
  2. Onko palautusaika voimassa? Tilaus tehtiin 5 päivää sitten, ja palautusaika on 14 päivää. Palautusaika on siis voimassa.
  3. Mitä palautus vaatii? Asiakkaalle täytyy toimittaa palautuslomake ja kuljetusohjeet.
  4. Onko asiakas oikeutettu hyvitykseen vai korvaavaan tuotteeseen? Yrityksen palautuskäytännön mukaan ensimmäisestä palautuksesta voidaan antaa hyvitys.
  5. Mitä asiakkaalle lähetetään? Asiakkaalle lähetetään viesti, jossa selitetään prosessi ja annetaan linkit palautuslomakkeeseen sekä kuljetusohjeisiin.

Eksplisiittinen työnkulku auttaa agenttia välttämään virheitä, koska se pakottaa käsittelemään yhden asian kerrallaan. Agentti ei yritä ratkaista kaikkea yhdellä hypyllä, vaan etenee systemaattisesti. Tämä tekee päätöksenteosta myös jäljitettävämpää: ihminen voi nähdä jokaisen vaiheen ja ymmärtää, miksi agentti toimi niin kuin toimi.

Vertaa seuraavia kahta tapaa toimia:

Ilman eksplisiittistä työnkulkua: Agentti näkee palautuspyynnön ja hyppää suoraan vastaukseen: ”Lähetän hyvityksen.” Mutta mitä jos palautusaika on jo kulunut? Entä jos käytäntö sanoo, että asiakkaalle pitää lähettää korvaava tuote hyvityksen sijaan? Agentti voi tehdä väärän päätöksen, koska se ei tarkistanut asiaa vaihe vaiheelta.

Eksplisiittisen työnkulun kanssa: Agentti tarkistaa palautusajan, palautuskäytännön ja tuotteet ennen päätöksen tekemistä. Vasta tämän jälkeen se laatii vastauksen. Näin virheiden määrä vähenee.

Valinnainen syvennys — moniagenttijärjestelmä: Monimutkainen tehtävä voidaan joskus jakaa usealle erikoistuneelle agentille. Tällöin tarvitaan selkeä työnjako, tiedonkulku, lokitus ja vastuu kokonaisuuden kokoamisesta. Rakenne lisää kuitenkin monimutkaisuutta, joten tällä kurssilla aloitat yhdestä agentista. Moniagenttijärjestelmää ei tarvitse suunnitella eikä toteuttaa lopputyössä.

Suunnittelumallien valinta: milloin käytät mitä?

Projektiasi varten vertaat kahta perusmallia: ReActia ja eksplisiittistä työnkulkua. Valinta tehdään tehtävän luonteen perusteella.

ReActia käytetään, kun agentti tarvitsee joustavuutta. Toteutus voi kutsua työkalua, nähdä tuloksen tai virheen ja muuttaa seuraavaa toimintoa, jos tulos on odottamaton. ReAct sopii tutkiviin tilanteisiin, joissa vaiheita ei tiedetä tarkasti etukäteen, vaan eteneminen määräytyy havaintojen perusteella.

Eksplisiittistä työnkulkua käytetään, kun ongelma voidaan jakaa selkeisiin vaiheisiin. Palautuspyynnön käsittely on hyvä esimerkki. Vaiheet ovat usein samat: tarkista palautusaika, tarkista palautuskäytäntö ja laadi vastaus. Eksplisiittinen työnkulku pakottaa agentin käymään läpi jokaisen vaiheen, mikä vähentää virheitä.

Lopputyössä valitset yhden näistä kahdesta päämallista, jotta toteutus pysyy ymmärrettävänä ja testattavana. Valintaan kuuluu myös aito rajattu mallivalinta: vähintään yhdessä kohdassa kielimalli valitsee syötteen perusteella vähintään kahdesta ohjauskehyksen sallimasta vaihtoehdosta.

Suunnittelumallit n8n:ssä — miltä ne näyttävät käytännössä?

Kun rakennat agenttia n8n:ssä, on hyödyllistä ymmärtää, miten nämä abstraktit mallit muuttuvat konkreettisiksi työnkuluiksi.

ReAct n8n:ssä: AI Agent -solmu voi valita sille annetun työkalun, saada tuloksen tai virheen ja valita sen perusteella seuraavan toiminnon. Lokiin tallennetaan havaittavat kutsut, tulokset, virheet, toiminnot ja tarvittaessa lyhyt päätösperustelu — ei mallin sisäistä päättelyä. Sinun ei tarvitse ohjelmoida silmukkaa itse.

ReAct n8n:ssä

Trigger AI Agent ReAct-silmukka sisäänrakennettuna
Hakutyökalu Tietokanta Sähköposti
Vastaus käyttäjälle

Eksplisiittinen työnkulku n8n:ssä: sarja erillisiä solmuja, joista jokainen tekee yhden vaiheen. Edellisen solmun tulos siirtyy seuraavalle solmulle. Tämä on n8n:n luonnollinen rakenne: solmut muodostavat ketjun.

Eksplisiittinen työnkulku n8n:ssä

Pyyntö Vaihe 1 Analysoi pyyntö Vaihe 2 Tarkista käytäntö Vaihe 3 Laadi vastaus Lähetä

Kun avaat n8n:n ensimmäistä kertaa, palaa tähän kappaleeseen. Se auttaa sinua valitsemaan projektiisi sopivan rakenteen.

Kohti omaa projektia

Nyt kun tunnet ReAct-mallin ja eksplisiittisen työnkulun, valitse omalle agentillesi sopivin toimintamalli. Mieti ongelmasi luonnetta: tarvitseeko agenttisi reagoida työkalujen palautteeseen eli käyttää ReAct-mallia, vai voiko ongelman jakaa selkeisiin vaiheisiin eli käyttää eksplisiittistä työnkulkua? Tämä valinta muodostaa Agentti: Päättely -pohjapiirroksen, jonka kirjoitat opiskelutehtävissä.

Lopuksi pohdittavaksi: Mikä osa päättelymallista on kielimallin valintaa ja mikä agentin ohjauskehyksen ohjaamaa rakennetta?

Yhteenveto

Agentti toimii paremmin, kun sen työnkulku on järjestelmällinen ja havaittava. ReAct-malli etenee rakenteisesta työkalukutsusta tulokseen tai virheeseen ja siitä seuraavaan toimintoon. Eksplisiittinen työnkulku purkaa ongelman ennalta nimettyihin vaiheisiin. Kummassakin mallissa etenemisen pitää sisältää aito rajattu mallivalinta eikä pelkkää kiinteää automaatiota.

Kun rakennat agenttia n8n:llä, valitset ReActin tai eksplisiittisen työnkulun tehtävän luonteen perusteella. Tee etenemisestä havaittava kirjaamalla työkalun käyttö, tulos tai virhe, seuraava toiminto ja lyhyt päätösperustelu. Mallin sisäistä päättelyä ei pyydetä eikä tallenneta.


Lähteet ja tarkistuspäivä

Tarkistettu 15.7.2026.

Seuraavaksi: TehtävätTunnin tehtävät — sisältää lopputyön askeleen