Agentin muisti ja konteksti — miten kone pysyy kartalla
AgentitTeoria n. 10 min · harjoittelu n. 20 min · lopputyön askel n. 25 min · yhteensä n. 55 min

Agentin muisti ja konteksti — miten kone pysyy kartalla?

Johdanto

Kun rakennat omaa agenttia n8n:llä, suunnittelet samalla, mitä tietoa kielimallille annetaan juuri nyt ja mitä tietoa järjestelmä säilyttää myöhempää käyttöä varten. Kielimalli ei itsessään kanna asiakashistoriaa suorituksesta toiseen. Agentin ohjauskehys voi valita kontekstiin keskusteluhistoriaa, hakea rakenteista tietoa, ylläpitää prosessin tilaa tai tuoda mukaan tietopohjasta löytyviä tekstikatkelmia.

Tässä oppitunnissa erotat toisistaan konteksti-ikkunan, keskusteluhistorian, prosessin tilan, rakenteisen pitkäkestoisen tiedon, semanttisen vektorihaun sekä tietopohjan ja RAGin. Niillä on eri tehtävät, eikä niitä pidä niputtaa yhdeksi muistiksi.

Ohjauskehys-kytkentä: Agentin ohjauskehys valitsee, mitä mallille annetaan juuri nyt, tallentaa sovitut tiedot ja prosessin tilan sekä hakee tehtävän kannalta olennaisen tiedon. Samalla se toimeenpanee käyttöoikeudet ja rajaa, mitä ei saa tallentaa tai näyttää mallille.

Konteksti-ikkuna: mitä agentti näkee juuri nyt?

Kuvittele asiakaspalveluagenttia, joka vastaa pitkän keskustelun jälkeen kysymykseen: ”Entä mitä ehdotat nyt?” Järjestelmän täytyy valita mukaan ongelman kuvaus, olennaiset aiemmat kokeilut ja uusimmat viestit. Kaiken keskusteluhistorian siirtäminen mallille ei ole aina tarpeellista eikä turvallista.

Konteksti-ikkuna tarkoittaa rajattua määrää tokeneita eli tekstin osia ja muuta aineistoa, jonka malli voi käsitellä yhdessä suorituksessa. Se ei ole sama asia kuin keskusteluhistoria. Sovellus voi valita historiasta osan, tiivistää aiempia tapahtumia tai jättää tarpeettoman sisällön pois ennen kuin konteksti annetaan mallille.

Käytännössä konteksti-ikkunan koko on kompromissi. Mitä suurempi ikkuna on, sitä enemmän agentti näkee aiempaa keskustelua ja sitä paremmin se voi ymmärtää tilanteen. Suurempi ikkuna tarkoittaa kuitenkin myös enemmän käsiteltävää dataa, mikä tekee agentista hitaamman ja kalliimman. Jokainen sana, jonka agentti käsittelee, voi maksaa rahaa, jos käytössä on kaupallinen kielimallipalvelu.

Pysähdy hetkeksi: Mitkä kolme asiaa pitkästä tukikeskustelusta mallin täytyy nähdä seuraavaa päätöstä varten? Mitkä tiedot voidaan tiivistää, ja mitkä pitää jättää kokonaan pois?

Vastuullinen suunnittelija ei valitse kontekstia viestimäärän perusteella vaan kysyy, mikä tieto on tehtävän ratkaisemiseksi tarpeellista, ajantasaista ja sallittua. Kontekstissa olevan tiedon lähde ja ajankohta pitää voida tarkistaa.

konteksti, pitkäkestoinen muisti ja tila — eri tehtävät, yksi asiakaspyyntö
KUVION MOBIILIESITYS
  • KONTEKSTI-IKKUNA rajaa sen, mitä malli voi käsitellä nyt
  • KESKUSTELUHISTORIASTA valitaan tehtävään olennainen osa kontekstiin
  • PROSESSIN TILA kertoo, missä vaiheessa työnkulku on
  • RAKENTEINEN PITKÄKESTOINEN TIETO säilyttää täsmälliset asiakas-, tilaus- ja tilatiedot
  • SEMANTTINEN VEKTORIHAKU löytää merkitykseltään samankaltaisia tekstikatkelmia
  • TIETOPOHJA JA RAG tuovat hyväksyttyä lähdetietoa kontekstiin käyttöoikeudet säilyttäen
Konteksti rajaa sen, mitä malli näkee nyt. Pitkäkestoinen muisti tuo aiempaa tietoa nykyiseen kontekstiin — ja haun osuvuus tarkistetaan ennen käyttöä: samankaltainen mutta eri laitetta koskeva tulos hylätään. Tila kertoo, missä vaiheessa prosessi on. Nämä ovat eri tehtäviä, eivät kolme samanlaista muistia. Muistiin talletetaan vain tarpeellinen perustein, säilytysajoin ja poistoehdoin — ja pysyvät periaatteet ovat sääntöjä, eivät muistia.

Pitkäkestoinen tieto, tietopohja ja semanttinen haku

Konteksti-ikkuna kertoo agentille, mitä tapahtuu nyt. Mutta entä jos asiakkaan kanssa on työskennelty kuusi kuukautta? Entä jos hän palaa uuden ongelman kanssa ja haluat, että agentti muistaa, mitä viimeksi opittiin?

Rakenteinen pitkäkestoinen tieto tallennetaan tavallisesti järjestelmään, jossa sillä on määritellyt kentät. Asiakkaan tunniste, sopimuksen tila, tilausnumero ja hyväksynnän ajankohta kuuluvat esimerkiksi asiakas- tai tilaustietokantaan. Täsmällistä tietoa ei pidä päätellä samankaltaisuuden perusteella.

Tietopohja on hyväksytty aineistokokoelma, kuten käyttöohjeet, menettelyohjeet tai kurssimateriaali. Se ei ole käyttäjästä kerättävää muistia. Oma botti II -tunnilla opittu RAG tarkoittaa, että järjestelmä hakee tietopohjasta tehtävään liittyviä katkelmia ja antaa ne mallille vastauksen tueksi.

Semanttinen vektorihaku auttaa löytämään merkitykseltään samankaltaisia tekstikatkelmia, vaikka niissä käytetään eri sanoja. Se sopii esimerkiksi ohjeen etsimiseen tietopohjasta. Samankaltaisuus ei kuitenkaan todista, että katkelma koskee oikeaa tuotetta, versiota, käyttäjää tai ajankohtaa. Haun osuvuus ja lähde pitää tarkistaa ennen käyttöä.

Tämä merkitysperusteinen haku on vektoritietokannan vahvuus. Se ei vaadi täsmällistä sanavastaavuutta, vaan se auttaa löytämään olennaista tietoa myös silloin, kun asiakas muotoilee asian eri tavalla kuin aiemmin.

Asiakaskohtaista tietoa saa hakea vain käyttäjä- tai organisaatiorajauksen ja käyttöoikeuksien perusteella. Asiakkaan tunnisteella tehtävä tarkka haku kuuluu rakenteiseen järjestelmään, ei semanttiseen vektorihakuun. Ohjauskehyksen pitää estää toisen käyttäjän tai organisaation tietojen päätyminen kontekstiin.

Vektoritietokanta toimii näin:

Voit ajatella vektoritietokantaa kirjaston hakujärjestelmänä. Kun haet kirjastosta aihetta ”koiran koulutus”, hyvä hakujärjestelmä ei etsi vain kirjoja, joissa lukee täsmälleen ”koiran koulutus”. Se voi löytää myös kirjoja, joiden nimi on esimerkiksi ”Pentujen kasvatus” tai ”Lemmikkien kouluttaminen”, koska ne käsittelevät samaa aihetta eri sanoin. Vektoritietokanta toimii samalla periaatteella: se etsii merkityksiä, ei pelkkiä sanoja.

Pysähdy hetkeksi: Asiakas kysyy sopimuksensa erityisehdosta. Mitkä tiedot haet rakenteisesta sopimusjärjestelmästä ja mitkä yleiset tulkintaohjeet tietopohjasta? Miten varmistat, että molemmat kuuluvat juuri tälle käyttäjälle ja ovat voimassa?

Tila: prosessin vaihe ja muuttujat

Konteksti-ikkuna kertoo, mitä tapahtuu nyt. Pitkäkestoinen muisti kertoo, mitä on tapahtunut aiemmin. Mutta mistä agentti tietää, missä vaiheessa prosessia ollaan? Tätä varten tarvitaan tila eli state.

Kuvittele tilauksen käsittelyä. Kun asiakas tekee tilauksen, tila on ”tilaus luotu”. Kun agentti lähettää vahvistuksen, tila muuttuu muotoon ”vahvistus lähetetty”. Kun varasto pakkaa tuotteen, tila muuttuu muotoon ”pakattavana”. Kun kuljetus lähtee, tila on ”lähetetty”. Kun asiakas vastaanottaa tuotteen, tila on ”toimitettu”. Jokainen vaihe on eri tila, ja agentti seuraa, missä vaiheessa prosessi on.

Tila sisältää myös muuttujia eli prosessin aikana tarvittavia tietoja. Esimerkiksi:

  • Yritykset: 2/3 — kaksi yritystä on käytetty, yksi on jäljellä.
  • Viimeinen hinta: 45 € — tämä hinta tarjottiin asiakkaalle viimeksi.
  • Ihmisen hyväksyntä: saatu — vastuuhenkilö on hyväksynyt alennuksen.
  • Virheet: 0 — prosessin aikana ei ole havaittu virheitä.

Ilman tilamuuttujia agentin toiminta menisi helposti sekaisin. Se ei tietäisi, missä vaiheessa tehtävä on tai mitä se oli tekemässä. Se voisi lähettää vahvistussähköpostin kahteen kertaan, koska se ei muistaisi lähettäneensä sitä jo aiemmin. Se voisi yrittää veloittaa asiakasta uudelleen, koska se ei tietäisi, että maksu on jo suoritettu.

Kun rakennat agenttia n8n:llä, tilan hallinta on kriittistä. Sinun täytyy suunnitella, mitä mahdollisia tiloja prosessilla voi olla ja mitä muuttujia kussakin tilassa tarvitaan. Nämä tilat ja muuttujat ohjaavat agentin seuraavaa vaihetta. Esimerkiksi jos tila on ”maksu maksettu” ja muuttuja ”varastosaatavuus” on ”ei saatavilla”, agentin seuraava askel voi olla ilmoittaa asiakkaalle arvioitu toimitusaika.

Käytännön esimerkki: asiakaspalveluagentti kokonaisuutena

Laitetaan nyt nämä kolme komponenttia yhteen. Kuvittele asiakaspalveluagentti, joka käsittelee asiakkaita reaaliajassa.

Konteksti-ikkuna sisältää tähän päätökseen valitut uusimmat viestit, tiivistelmän aiemmista kokeiluista ja vain tarpeelliset tunnistetiedot.

Rakenteinen historia kertoo käyttöoikeuden sallimissa rajoissa, mitä laitetta tapaus koskee ja mitä toimenpiteitä juuri tässä asiakkuudessa on jo tehty. Tietopohjan semanttinen haku löytää hyväksytystä ohjeesta mahdollisen ratkaisun B. Järjestelmä tarkistaa tuotteen, version ja lähteen ennen kuin katkelma annetaan mallille.

Tila kertoo, että kyseessä on toinen ratkaisuyritys kolmesta, asiakas on aktiivinen eikä ihmisen tekemää eskalointia ole vielä pyydetty. Nämä muuttujat ohjaavat agentin seuraavaa päätöstä.

Tässä esimerkkitoteutuksessa agentin ohjauskehys kokoaa päätöstä varten nykyisen tilanteen, tähän asiakkuuteen rajatun historian ja prosessin tilan. Näiden perusteella kielimalli voi valita sallitun etenemisen: ”Kokeillaan ratkaisua B, koska se auttoi aiemmin. Jos se ei auta, siirrän asian ihmiselle.” Ratkaisu B voidaan valita tässä tapauksessa, koska ohjauskehys välittää mallille juuri tähän päätökseen tarvittavat tiedot. Toisenlaisessa tehtävässä pitkäkestoista muistia ei välttämättä tarvita lainkaan.

Pysähdy hetkeksi: Ajattele omaa työtäsi tai opintojasi. Mitä tietoa pidät mielessä lyhytaikaisesti? Mitä tietoa säilytät pidempään? Miten seuraat, missä vaiheessa olet jossakin prosessissa? Agentin muisti ja tila toimivat samankaltaisella tavalla.

Pysyvät toimintaperiaatteet eivät ole muistia

Konteksti-ikkuna, pitkäkestoinen muisti ja tila kertovat, mitä tietoa agentilla on käytettävissään. Niistä pitää erottaa pysyvät toimintaperiaatteet: järjestelmäohjeet ja agentin ohjauskehyksen säännöt, jotka määrittävät, miten agentin pitää toimia tilanteesta toiseen.

Toimintaperiaatteet vastaavat kolmeen kysymykseen:

Ensimmäinen kysymys: Mikä on agentin tehtävä ja toimintatapa? Esimerkiksi: ”Toimi kärsivällisenä neuvojana. Anna ensin lyhyt toimintaohje ja pyydä lisätietoa vain, jos se on ratkaisun kannalta tarpeen.” Ohje kuvaa havaittavaa toimintaa, ei koneen sisäistä luonnetta.

Toinen kysymys: Mitkä rajat ovat voimassa aina? Esimerkiksi: agentti ei palauta salasanaa, jaa toisen asiakkaan tietoja eikä esitä puuttuvaa tietoa varmana. Osa rajoista kirjoitetaan järjestelmäohjeisiin, mutta kriittiset rajat toteutetaan myös agentin ohjauskehyksessä oikeuksina, tarkistuksina ja hyväksyntäportteina.

Kolmas kysymys: Miten epäselvä tilanne käsitellään? Esimerkiksi: jos tietoa ei ole tarpeeksi, agentti pyytää tarkennusta; jos toimintaan liittyy korkea riski, agentin ohjauskehys pysäyttää vaiheen ja pyytää ihmisen hyväksynnän.

Käytännössä toimintaperiaatteet voidaan dokumentoida erikseen ja muuntaa järjestelmäohjeiksi, käyttöoikeuksiksi ja valvontasäännöiksi. Ne eivät ole agentin muistoja eivätkä todiste tietoisuudesta tai arvoista. Ne ovat ihmisen suunnittelema osa agentin ohjauskehystä.

Muistin turvallisuus ja hallinta

Kun agentti muistaa paljon, täytyy puhua myös turvallisuudesta. Pitkäkestoinen muisti voi sisältää arkaluontoisia tietoja, kuten asiakkaiden henkilötietoja, maksutietoja tai liikesalaisuuksia.

Vastuullisena käyttäjänä sinun täytyy asettaa selkeät rajat sille, mitä agentti saa muistaa ja mitä se ei saa muistaa. Asiakkaan nimi ja ostohistoria voivat olla perusteltuja tietoja, jos niitä käsitellään turvallisesti ja lain mukaisesti. Luottokortin neljä viimeistä numeroa voidaan joissain tilanteissa tallentaa tunnistamista varten, jos tieto on suojattu asianmukaisesti. Asiakkaan salasanaa ei kuitenkaan pidä koskaan tallentaa agentin muistiin. Myös terveystiedot ja muut erityisen arkaluontoiset tiedot vaativat erityistä varovaisuutta ja lainmukaisen käsittelyperusteen.

Muistin hallinta vaatii myös säännöllistä puhdistamista. Vanhentuneet tiedot kannattaa poistaa. Jos asiakas poistaa tilinsä, myös häneen liittyvä historia pitäisi poistaa pitkäkestoisesta muistista silloin, kun se on sääntöjen ja lainsäädännön mukaan tarpeen. Tämä on sekä turvallisuus- että yksityisyyskysymys.

Kohti omaa projektia

Nyt kun ymmärrät konteksti-ikkunan, pitkäkestoisen muistin ja tilan, mieti omaa agenttiprojektiasi. Mitä tietoa agenttisi tarvitsee yksittäisen suorituksen aikana? Mitä sen täytyy säilyttää suoritusten välillä? Mitä tiloja prosessilla on? Kirjaa toimintaperiaatteet erikseen, jotta muistitieto ja järjestelmää ohjaavat säännöt eivät sekoitu toisiinsa.

Lopuksi pohdittavaksi: Mitä tietoa agentin ohjauskehys antaa mallille nyt, mitä se säilyttää myöhemmäksi ja mitä sen pitää jättää tallentamatta?

Yhteenveto

Agentin ohjauskehys kokoaa mallille konteksti-ikkunan. Keskusteluhistoria on yksi mahdollinen lähde, mutta sitä voidaan valita ja tiivistää. Täsmälliset pitkäkestoiset tiedot kuuluvat rakenteiseen järjestelmään. Semanttinen vektorihaku etsii tietopohjasta merkitykseltään samankaltaisia tekstikatkelmia, ja RAG tuo tarkistetut katkelmat vastauksen tueksi. Prosessin tila kertoo, missä vaiheessa tehtävä on.

Pidä erillään mitä malli näkee nyt, mitä järjestelmä säilyttää rakenteisesti, mitä tietopohjasta haetaan, missä vaiheessa prosessi on ja mitkä säännöt rajaavat toimintaa. RAG voi epäonnistua joko hakuvaiheessa, jos väärä tai puutteellinen katkelma valitaan, tai vastauksen muodostamisessa, jos malli käyttää oikeaakin lähdettä väärin. Siksi lähde, käyttäjärajaus ja lopputulos tarkistetaan.


Lähteet ja tarkistuspäivä

Tarkistettu 15.7.2026.

Seuraavaksi: Harjoittele5 tehtävää