---
title: "Agentti meni rautakauppaan — ja tuli takaisin ylimääräisten kanssa"
slug: agentti-meni-rautakauppaan
summary: "Annoin agentin täyttää ostoskorin väliseinäprojektin tarvikkeilla useammassa rautakaupassa. Ensimmäisessä koriin tarttui suositusmoottorin tyrkyttämää tavaraa — koska sääntöä \"älä osta mitään mitä en pyytänyt\" en ollut kirjoittanut. Kolmannessa sama agentti kieltäytyi korvaamasta kuutta tuotetta väärällä ja raportoi ne puuttuvina. Ero prompteissa oli yksi lause. Lisäksi mittasin, ettei yksikään seitsemästä testaamastani suomalaisesta rautakaupasta ole varautunut AI-asiakkaaseen millään tavalla."
tags: ai, agentit, verkkokauppa, computer-use, claude, rautakauppa, agentic-commerce
ai_model: claude-opus-5
published_at: 2026-08-21T20:37:30.493+00:00
canonical_url: https://jarkkolietolahti.com/articles/agentti-meni-rautakauppaan
markdown_url: https://cemecdwfdvdbvpvowuln.supabase.co/functions/v1/content-md?slug=agentti-meni-rautakauppaan
---

Rakennan kotiin pienen L-muotoisen, ei-kantavan väliseinän. Suunnittelin sen Clauden kanssa: mitat, runkojako, levytys, äänieristys, oviaukko, listoitus. Lopputuloksena syntyi työsuunnitelma ja sen liitteeksi tarvikelista — 21 Kerto-T LVL -runkotolppaa, 7 kipsilevyä, villat, tiivistenauhat, kolme eri ruuvilaatua, saumanauha, kitti, ovi karmeineen ja painikkeineen sekä peite- ja jalkalistat.

Siinä kohtaa tein jotain, mikä olisi ollut kaksi vuotta sitten scifiä: annoin agentille selaimen ja ostoslistan. Ohje oli suoraviivainen — avaa verkkokauppa, lisää nämä tuotteet ostoskoriin oikeilla määrillä, äläkä tee tilausta tai maksua. Kävimme näin läpi useamman rautakaupan; K-Rauta oli ensimmäinen.

Se onnistui. Kori syntyi, kävin sen läpi, poistin sieltä pari tuotetta ja ostin loput. Oikea ostos, ei demo.

Mutta ne poistetut tuotteet ovat tämän jutun kiinnostavin osa.

## Agentti meni lankaan

Koriin oli tarttunut tavaraa, jota en ollut pyytänyt. Ei satunnaista roskaa — verkkokaupan suositusmoottorin tyrkyttämiä tuotteita. "Muut ostivat myös", "sopii yhteen tämän kanssa", "täydennä hankintasi".

Ja tässä on olennaista: lisätyt tuotteet olivat *periaatteessa järkeviä*. Ne liippasivat läheltä. Ne olivat sellaista tavaraa, jota väliseinäprojektissa voisi ihan hyvin tarvita — jos projekti olisi ollut hieman toisenlainen tai jos minulla ei olisi ollut jo puolta tavarasta varastossa.

Juuri siksi agentti ei pysähtynyt. Lisämyyntikoneisto ei yrittänyt myydä sille uima-allasta. Se tarjosi uskottavaa naapurituotetta, ja agentti luki tarjouksen osana tehtävää.

## Eksplisiittiset rajat pitivät, implisiittiset eivät

Kun luin promptini jälkikäteen, huomasin jotain kiusallista.

Kielsin nimenomaisesti maksamisen: *"Älä tee tilausta tai maksua."* Ja lopuksi vielä uudestaan: *"Lisää tuotteet vain ostoskoriin, älä siirry maksamiseen."* Tätä rajaa agentti kunnioitti joka kaupassa. Se ei mennyt kassalle kertaakaan.

Mutta listan esittelin sanoilla *"Käytä seuraavaa listaa lähtökohtana"* — ja annoin lisäksi luvan poiketa: *"Jos jokin tuote ei ole saatavilla valitussa myymälässä tai sitä ei löydy, etsi mahdollisimman vastaava tuote."*

Tarkoitin sillä varautumista puuttuviin tuotteisiin. Agentti luki sen laveammin, ja aivan kohtuudella: lista on lähtökohta, ei lopullinen, ja tehtävänä on saada projekti onnistumaan. Suositusmoottori tarjosi jotain, joka sopi tuohon tulkintaan.

Tämä on se kohta, jota kannattaa katsoa tarkkaan. Agentti ei ollut tottelematon. Se noudatti kaikkia kirjoittamiani sääntöjä. Sääntö, jota rikottiin — "älä osta mitään, mitä en pyytänyt" — oli ainoa, jota en kirjoittanut, koska se tuntui itsestään selvältä.

Ihmisavustajalle se olisikin itsestään selvä. Agentille jokainen kirjoittamaton oletus on tila, jonka joku muu täyttää. Ja verkkokaupassa se joku muu on osapuoli, jonka intressi on päinvastainen kuin sinun.

## Kolmannessa kaupassa se meni toisin

Sitten tulee kohta, joka pakottaa lieventämään yllä olevaa.

Kolmannessa kaupassa — pienemmässä paikallisessa ketjussa — sama agentti käyttäytyi täysin toisin. Se täytti korin, ilmoitti loppusummaksi 547,73 euroa ja raportoi, ettei kuutta tarvitsemaani tuotetta löytynyt: runkotiivistenauhaa, karmiruuveja, karmikiiloja, kipsiruuveja, paperista saumanauhaa eikä kulmasuojaa.

Ja sitten se kirjoitti tämän: *"Näihin en lisännyt käyttötarkoitukseltaan väärää korviketta."*

Se ei siis ollut korvaamiskyvytön. Se korvasi sujuvasti siellä missä korvaaminen oli perusteltua — Kerto-T-tolppien tilalle tavallisen väliseinätolpan oikeassa mitassa. Se vain veti rajan siihen, missä korvaava tuote olisi ollut eri asia eikä eri merkki. Kori jäi vajaaksi, ja se kerrottiin minulle suoraan.

Tämä on täsmälleen se käytös, jota agentilta haluaa. Miksi se toteutui täällä eikä ensimmäisessä kaupassa?

Kaksi selitystä on tarjolla, enkä pysty erottamaan niitä toisistaan yhdellä ajolla kummastakin.

**Ensimmäinen on prompti.** Jälkimmäisessä ohjeessa vaadin lopuksi: *"raportoi puuttuvat/korvatut tuotteet sekä ostoskorin summa."* Ensimmäisessä en. Vaatimus eritellystä raportista ja loppusummasta muuttaa tehtävän luonteen. Agentti, joka tietää joutuvansa perustelemaan jokaisen rivin ja kertomaan mitä koko kori maksaa, on eri asemassa kuin agentti, jonka työ päättyy siihen että kori on täynnä. Tilivelvollisuus tuotiin silmukan sisään.

**Toinen on kauppa.** Pienemmällä paikallisella ketjulla ei todennäköisesti ole samaa hiottua suosituskoneistoa kuin isolla ketjulla. Ehkä agentille ei yksinkertaisesti tyrkytetty mitään.

Rehellinen vastaus on, että molemmat vaikuttivat luultavasti jonkin verran. Tämä ei ollut kontrolloitu koe vaan remontti. Mutta se ensimmäinen selitys on ainoa, johon minä voin vaikuttaa — ja se on ilmainen kokeilla.

Sivuhuomiona: kuusi puuttuvaa tuotetta on myös kaupan ongelma, ei vain agentin. Karmikiilat ja saumanauha eivät ole eksoottisia. Ne joko puuttuvat valikoimasta tai ne ovat verkkokaupassa nimillä ja kategorioissa, joita agentti ei löytänyt. Ihminen olisi kysynyt myyjältä. Agentilla ei ole sitä vaihtoehtoa.

## Miksi lisämyynti puree agenttiin — kun se puree

Missä agentti on altis, se on altis eri syistä kuin ihminen. Kun minä seison rautakaupan hyllyjen välissä ja joku ehdottaa lisätuotetta, minulla on kaksi vaistoa, jotka agentilta puuttuvat.

Ensimmäinen on **budjettikipu**. Raha lähtee minun tililtäni. Jokainen lisärivi korissa tuntuu joltain. Agentilla ei ole tätä tuntemusta lainkaan, ellei sitä eksplisiittisesti anneta.

Toinen on **"eihän tätä nyt tarvita" -vaisto**. Minä tiedän, että autotallissa on jo puoli laatikkoa kipsilevyruuveja. Tiedän, että saumanauhaa jäi viime remontista. Tämä tieto ei ole missään tarvikelistassa — se on minun päässäni, ja se on juuri se tieto, joka karsii turhat rivit pois.

Agentti optimoi eri asiaa. Se yrittää suorittaa tehtävän hyvin ja kattavasti. Kun sivu sanoo "tämä tuote tarvitaan usein yhdessä", se näyttää agentin näkökulmasta tehtävän kannalta relevantilta tiedolta — ei myyntipuheelta. Avuliaisuus ja täydellisyyden tavoittelu kääntyvät tässä itseään vastaan.

Verkkokauppojen konversio-optimointi on hiottu vuosikymmenen ajan puremaan ihmisen heikkouksiin: kiireeseen, epävarmuuteen, laiskuuteen. Agentilta puuttuu se yksi suoja, jonka varassa ihminen lopulta on — haluttomuus käyttää rahaa. Sen tilalla on halu suorittaa tehtävä hyvin.

Tämä on mielestäni agenttikaupankäynnin aliarvioitu riski. Keskustelu pyörii siinä, osaako agentti ostaa oikein. Vähemmän puhutaan siitä, että agentista voi tulla *ihanteellinen lisämyynnin kohde* — ja että se, tuleeko, riippuu osin siitä miten tehtävä on muotoiltu.

Toinen ajoni osoitti, ettei alttius ole väistämätön. Se on ehdollinen. Ja ehtoihin pääsee käsiksi.

## Mitä verkkokauppojen rakenne kertoo

Kun kokeilu oli ohi, aloin uteliaisuudesta katsoa, miltä suomalaiset rautakaupat näyttävät agentin silmin. Kävin läpi K-Raudan, Taloonin, Puuilon, Byggmaxin, Motonetin, Starkin ja Bauhausin julkiset rajapinnat — robots.txt-tiedostot, HTTP-otsakkeet ja hakusivujen HTML:n. Kaikki alla oleva on omaa mittaustani 21.8.2026, ja se koskee vain julkisesti näkyvää.

**Yksikään testaamani kauppa ei mainitse AI-agentteja millään tavalla.** Ei GPTBotia, ei ClaudeBotia, ei Claude-Useria, ei PerplexityBotia, ei Google-Extendediä. Ei sallittuna eikä kiellettynä. Robots.txt-tiedostot ovat pääosin Magenton oletuspohjaa suunnilleen vuodelta 2015 — samat `Disallow: /pkginfo/` ja `Disallow: /*.php$` -rivit toistuvat kaupasta toiseen.

Tämä ei ole päätös olla avoin. Tämä on päätöksen puuttuminen.

**Haku on kielletty lähes kaikkialla.** K-Rauta kieltää `/etsi`, Taloon kieltää `/catalogsearch/`, `/search/` ja `/*?q=`, Puuilo ja Byggmax kieltävät `/catalogsearch/`. Ihmiselle tämä on rutiininomaista SEO-hygieniaa: hakutulossivut ovat duplikaattisisältöä, eikä niitä haluta Googlen indeksiin.

Agentille se on jotain aivan muuta. Haku on täsmälleen se toiminto, jolla agentti löytää "Kerto-T LVL 39x66x2550". Agentti ei selaa kategoriapuuta kuin ihminen; se hakee. Sääntö, joka on kirjoitettu hakukoneindeksointia varten, sulkee oven asiakkaalta.

Puuilon kohdalla tämä kääntyy jopa paradoksiksi: `/catalogsearch/result/?q=` on ainoa hakupolku, jonka sain toimimaan — ja se on kielletty robots.txt:ssä. Sääntöjä noudattava agentti ei voi käyttää ainoaa toimivaa ovea.

**Kassa on kielletty kaikkialla.** K-Raudalla `/kassa` ja `/tilaus`, muilla `/checkout/`. Eli "laita ostoskoriin ja vie kassalle" on robots.txt:n kirjaimen mukaan kiellettyä toimintaa lähes joka kaupassa. Käytännössä tämä sääntö on kirjoitettu estämään indeksoijaa eksymästä ostoputkeen, ei estämään asiakasta ostamasta — mutta agentti ei voi tietää eroa.

**Bottisuojaus ei erottele.** Bauhausin sivusto on Vercelin "Security Checkpoint" -haasteen takana; testissäni en saanut edes robots.txt-tiedostoa luettua ilman JavaScriptin suoritusta, ja tavallisella selaimen tunnisteellakin vastaus oli 429. K-Rauta ja Byggmax ovat Cloudflaren takana. Nämä suojat on rakennettu hinnankaapijoita ja bottiverkkoja vastaan, mutta ne eivät osaa erottaa kaapparia maksavasta asiakkaasta.

**Saldot ovat myymäläkohtaisia.** Motonetin hakutuloksissa saatavuuskenttä sanoo "Valitse tavaratalo nähdäksesi". Ihmiselle tämä on pieni klikkaus. Agentille se on tilallinen sivuvaikutus, joka pitää asettaa oikein ennen kuin mikään saatavuustieto tarkoittaa mitään — ja rautakaupassa juuri saatavuus on koko kysymys. "Onko tätä Vantaan myymälässä tänään" on olennaisempi tieto kuin hinta.

**Rakenteinen tuotedata puuttuu sieltä, missä sitä tarvittaisiin.** Testaamillani hakutulossivuilla ei ollut schema.org/Product-merkintää. Hinnat löytyvät HTML:stä, mutta ne pitää kaivaa esiin kaupan omasta sekamelskasta — ja jokaisessa kaupassa eri tavalla.

Yksi asia toimi hyvin: **kukaan ei syrji tunnisteen perusteella.** Kun pyysin etusivuja rehellisellä `Claude-User`-tunnisteella ja tavallisella selaintunnisteella, vastaukset olivat tavulleen identtiset. Ovi ei ole lukossa AI:lta erikseen. Se on vain hankala avata kaikilta.

## Botti tarkoittaa kilpailijaa, ei asiakasta

Taloonin robots.txt:ssä on yksi nimeltä mainittu botti: `sentibot`, kielletty kokonaan. SentiBot on hinnanseurantapalvelu.

Tämä yksi rivi paljastaa koko mentaalimallin. Kun suomalainen verkkokauppa ajattelee automaattista liikennettä, se ajattelee kilpailijaa, joka kaappaa hintoja. Ei asiakasta, jolla on ostoslista ja maksukortti.

Malli oli oikea kymmenen vuotta. Nyt se on vanhentumassa, ja vanhentuminen tapahtuu nopeammin kuin robots.txt-tiedostoja päivitetään.

K-Raudan robots.txt:ssä on toinen paljastava rivi: `Disallow: /ai-chat-betatestaus`. Kauppa siis rakentaa omaa tekoälyavustajaansa — ja estää ulkopuolisia agentteja näkemästä sitä. Se on täysin ymmärrettävä liiketoiminnallinen valinta: kauppa haluaa olla se tekoäly, jonka kanssa asiakas puhuu, eikä alusta jonka päällä joku muun tekoäly asioi.

Kysymys on vain, kumpi noista tulevaisuuksista asiakas valitsee. Minä en halua käydä erikseen keskustelua K-Raudan botin, Taloonin botin ja Bauhausin botin kanssa. Haluan yhden agentin, joka käy ne kaikki läpi ja kertoo mistä saa parhaan hinnan ja nopeimman toimituksen.

## Maailmalla tähän on jo alettu vastata

Suomalaisen rautakaupan hiljaisuus on sitäkin huomattavampaa, kun katsoo mitä muualla tapahtuu.

OpenAI ja Stripe julkaisivat syksyllä 2025 **Agentic Commerce Protocolin (ACP)**, jolla agentti voi suorittaa ostoksen kaupan kanssa ilman että se teeskentelee selainta. Ideana ovat kertakäyttöiset maksutokenit, jotka on rajattu yhteen kauppaan ja summaan. Mukana on ollut muun muassa Etsy ja Shopify-kauppiaita.

Cloudflare julkaisi elokuussa 2025 **Web Bot Authiin** perustuvan "signed agents" -mallin: agentti allekirjoittaa HTTP-pyyntönsä kryptografisesti, jolloin sivusto voi todentaa kuka sen ovella oikeasti on. Ensimmäisessä ryhmässä olivat mukana muun muassa ChatGPT agent, Blockin Goose ja Browserbase. Tämä on täsmälleen se palanen, joka puuttuu Bauhausin ja K-Raudan bottimuurin ja oikean asiakkaan väliltä: tapa erottaa hinnankaapija maksavasta agentista ilman että kumpikin joutuu samaan CAPTCHA-jonoon.

Ja se ennuste, jonka esitin itselleni kokeilun jälkeen — että kestää tuskin kauan ennen kuin Googlen hakua käyttävä tekoäly osaa myös ajaa Chromea ja selata sivustoja toisissa välilehdissä?

Se on jo tapahtunut. Googlen **Auto Browse** Chromessa tekee juuri sitä. Googlen omassa kuvauksessa ominaisuuksien joukossa mainitaan nimenomaan tuotteiden hakeminen ja **lisääminen ostoskoriin, alennuskoodit mukaan lukien**. Toistaiseksi se on Yhdysvalloissa AI Pro- ja Ultra-tilaajille, ja se pysähtyy kysymään ennen varsinaista ostoa.

Eli en ennustanut tulevaisuutta. Kuvailin jotain, mikä oli jo julkaistu — vain eri mantereella. Kun tuo ominaisuus laajenee Suomeen, se ei osu verkkokauppoihin, jotka olisivat valmistautuneet. Se osuu robots.txt-tiedostoihin, joissa lukee `Disallow: /pkginfo/`.

## Mitä kaupan kannattaisi tehdä

Mikään alla olevasta ei vaadi protokollastandardin käyttöönottoa. Nämä ovat viikon töitä, ja ne kannattaisi tehdä ennen kuin agenttiliikenne on merkittävää — koska silloin ne ovat halpoja.

1. **Päätä tietoisesti AI-agenttien suhteen.** Kirjoita robots.txt:ään rivit `GPTBot`, `ClaudeBot`, `Claude-User`, `PerplexityBot`, `Google-Extended`. Sallien tai kieltäen, mutta päätä. Nyt vastaus on vahingossa syntynyt.
2. **Erota indeksointikielto agentin kiellosta.** Hakutulossivun pitäminen pois Googlen indeksistä on eri asia kuin sen kieltäminen asiakkaan agentilta. `noindex`-metatagi hoitaa ensimmäisen ilman että se estää jälkimmäistä.
3. **Lisää schema.org/Product-merkintä** tuote- ja hakutulossivuille: hinta, valuutta, saatavuus, GTIN. Tämä on halvin yksittäinen toimenpide, ja se hyödyttää myös perinteistä hakukonenäkyvyyttä.
4. **Tee saatavuudesta osoitettavaa.** Myymäläkohtainen saldo URL-parametrilla, ei istuntotilana. `?myymala=vantaa` on agentille ero yön ja päivän välillä.
5. **Erottele bottisuojauksessa kaappari asiakkaasta.** Web Bot Auth on olemassa juuri tähän. Vercelin tai Cloudflaren oletushaaste kohtelee maksavaa asiakasta samoin kuin hinnanseurantarobottia.
6. **Ja se epämukava:** mieti mitä suositusmoottorisi tekee agentille. Lyhyellä tähtäimellä agentti on herkkäuskoisempi asiakas kuin ihminen ja kasvattaa keskiostosta. Pidemmällä tähtäimellä ihminen katsoo korin läpi, poistaa ylimääräisen ja muistaa mistä kaupasta se tuli. Minä muistan.

## Mitä agentin käyttäjän kannattaa tehdä

Oma opetukseni on yksinkertainen: **tarvikelista lyödään lukkoon ennen kuin ostaminen alkaa.** Suunnittelu ja hankinta ovat eri vaiheita, ja ne pitää pitää erillään. Jos agentti saa muuttaa listaa samalla kun se täyttää koria, kaupan suositusmoottori pääsee osallistumaan suunnitteluun.

Käytännössä neljä asiaa:

- **Sano "tämä lista, ei mitään muuta"** — älä "lähtökohtana". Minä kirjoitin jälkimmäisen ja sain mitä pyysin.
- **Rajaa substituutiolupa.** Jos annat agentin korvata puuttuvia tuotteita, sano että korvaava tuote lisätään vain puuttuvan tilalle, ei sen lisäksi — ja että jokainen korvaus raportoidaan.
- **Kerro mitä sinulla on jo varastossa.** Se tieto on vain sinun päässäsi, eikä agentti voi arvata sitä.
- **Vaadi eritelty raportti ja loppusumma.** Tämä oli ainoa selkeä ero kahden ajoni välillä, ja se on ilmainen. "Raportoi puuttuvat ja korvatut tuotteet sekä ostoskorin summa" pakottaa agentin perustelemaan jokaisen rivin.
- **Käy kori läpi ennen maksamista.**

Se viimeinen ei ole väliaikainen varotoimi, joka poistuu kun mallit paranevat. Kaupan intressi myydä lisää ja sinun intressisi ostaa vain tarvittava ovat pysyvästi eri suuntiin. Agentti seisoo siinä välissä, ja se tekee mitä pyydät — myös silloin kun pyyntösi jättää raon auki.

Seinä on vielä rakentamatta. Tarvikkeet ovat tulossa, ja niitä on tasan oikea määrä — sen jälkeen kun kävin korin itse läpi.
