Tietojenkäsittelytieteessä ohjelmistoagentti on ohjelma , joka tulee välittäjäsuhteeseen käyttäjän tai muun ohjelman kanssa. Sana " agentti " tulee latinan sanasta agere (tehdä) ja tarkoittaa sopimusta toimia jonkun puolesta. Tällainen "toimiminen puolesta" tarkoittaa oikeutta päättää, mitkä toimet (jos sellaisia on) ovat asianmukaisia [1] [2] . Ajatuksena on, että agentteja ei käynnistetä suoraan ratkaisemaan tehtävää, vaan ne aktivoituvat itsestään.
Samankaltaisia ja johdettuja käsitteitä ovat älykkäät agentit (erityisesti ne, joilla on joitakin tekoälyn näkökohtia , kuten oppiminen ja päättely ), autonomiset agentit (jotka pystyvät muuttamaan tapaansa saavuttaa tavoitteensa), hajautetut agentit (suorittavat toimintoja fyysisesti eri tietokoneilla), multi- agenttijärjestelmät (hajautetut agentit, joilla ei ole kykyä saavuttaa tavoitetta yksin ja joiden on siksi kommunikoitava) ja liikkuvat agentit (agentit, jotka voivat siirtää suorituksensa muille prosessoreille).
Termi "agentti" kuvaa ohjelmiston abstraktiota , ideaa tai käsitettä, joka on samankaltainen kuin OOP -termit , kuten menetelmä, funktio tai objekti. Agentin käsite tarjoaa kätevän ja tehokkaan tavan kuvata monimutkaista ohjelmistokokonaisuutta, joka pystyy toimimaan jossain määrin itsenäisesti suorittaakseen tehtäviä käyttäjän puolesta. Mutta toisin kuin objektit, jotka määritellään menetelmien ja attribuuttien avulla, agentti määritellään kuvaamalla sen käyttäytymistä [3] .
Eri kirjoittajat tarjoavat erilaisia määritelmiä agentille, jotka sisältävät yleensä käsitteitä, kuten:
Ei ole mitään erityistä järkeä kuvailla, mikä on agentti ja mikä ei. Termin vertaaminen siihen liittyviin käsitteisiin voi kuitenkin selventää sen merkitystä.
Agentin käsite voidaan jäljittää Carl Hewitin toimijamalliin : "autonominen, vuorovaikutteinen ja samanaikaisesti useita tehtäviä suorittava objekti, jolla on sisäinen tila ja tiedonvaihto" [5] .
Akateemisesti puhuen ohjelmistoagentit ovat moniagenttijärjestelmien (MAS) suoraa kehitystä, joka puolestaan kehittyi hajautetusta tekoälystä (DI), hajautetusta ongelmanratkaisijasta (PPS) ja rinnakkaisesta tekoälystä (PAI). Siten ohjelmistoagentit perivät kaikki ominaisuudet (hyvät ja huonot) RAI:lta ja tekoälyltä .
John Scullyn vuonna 1987 luoma Knowledge Navigator oli videolinkki loppukäyttäjän ja agentin välillä. Koska se on ensimmäinen laatuaan, se toimi pohjana kokeelliselle sarjalle epäonnistuneita ylhäältä alas -toteutuksia sen sijaan, että lähestyisi alhaalta ylös -menetelmiä askel askeleelta. Agenttityyppien valikoima on tällä hetkellä (vuodesta 1990 lähtien) melko laaja: WWW, hakukoneet jne.
Stephen Haag uskoo työssään [6] , että älykkäitä ohjelmistoagentteja on vain neljä päätyyppiä:
Ostoagentit selaavat verkkoresursseja (esimerkiksi Internetiä) saadakseen tietoa tuotteista ja palveluista. Nämä agentit, jotka tunnetaan myös nimellä "ostorobotit", toimivat erittäin tehokkaasti kulutustavaroiden, kuten CD-levyjen, kirjojen, elektronisten komponenttien ja muiden "monikäyttöisten" tuotteiden kanssa.
Käyttäjäagentit (henkilökohtaiset)Käyttäjä- tai henkilökohtaiset edustajat ovat älykkäitä edustajia, jotka toimivat puolestasi. Tämä luokka sisältää älykkäät agentit, jotka jo suorittavat tai tulevat suorittamaan seuraavat tehtävät:
Valvonta- ja valvontaagentteja käytetään kohteiden tarkkailuun ja tiedon siirtämiseen laitteisiin, yleensä tietokonejärjestelmiin. Agentit voivat seurata yrityksen materiaalivarastoa, seurata kilpailijoiden hintoja ja tuoda ne yrityksen tietoon, analysoida sisäpiiritietoon ja huhuihin perustuvia osakemanipulaatioita jne.
Esimerkiksi NASAn Jet Propulsion Laboratorylla on agentti, joka valvoo laitteiden saatavuutta ja kuntoa, suunnittelee uusien laitteiden ostotilauksia kustannusten optimoimiseksi ja valvoo ruoan saatavuutta. Tällaiset agentit valvovat tyypillisesti monimutkaisia tietokoneverkkoja ja voivat valvoa jokaisen verkkoon kytketyn tietokoneen kokoonpanoa.
Erityiset valvonta- ja valvonta-agentit ovat agenttirakenteita, joita käytetään mallintamaan päätöksentekoprosessia taktisten operaatioiden aikana. Agentit valvovat omaisuuden tilaa (ammukset, aseet, kulkuvälineet jne.) ja vastaanottavat maaleja (käskyjä) huipputason agenteilta. Agentit saavuttavat tavoitteensa käytettävissä olevilla varoilla minimoiden omaisuuden kustannukset ja maksimoiden samalla tavoitteen saavuttamisen [7] .
Tiedonlouhinta- ja analyysiagentitNämä agentit käyttävät tietotekniikkaa etsiäkseen trendejä ja malleja lukuisista eri lähteistä saatavasta tiedosta. Käyttäjä voi lajitella nämä tiedot valitakseen tarkalleen, mitä hän etsii.
Tiedonlouhinta- ja analyysiagentit työskentelevät löydettyjen tietojen tietovarastossa. "Tietovarasto" kokoaa yhteen tietoa useista eri lähteistä. "Datan louhinta" on prosessi, jossa tarkastellaan dataa varastossa löytääkseen sellaista tietoa, jota voidaan käyttää kohdennettuihin toimiin, kuten myynnin lisäämiseen tai kilpailijoista luopumista harkitsevien asiakkaiden pitämiseen.
Luokittelu on yksi yleisimmistä tiedonlouhinnan tyypeistä, joka etsii avainsanoja tiedosta ja luokittelee sen sitten näiden avainsanojen mukaan. Tiedonlouhinta- ja analytiikkaagentit voivat havaita merkittäviä muutoksia keskeisten mittareiden trendeissä, ja ne voivat myös havaita uusia tietoja ja varoittaa niistä. Esimerkiksi agentti voi havaita talouden rakennusalan taantuman. Rakennusyritykset pystyvät saatujen tietojen perusteella tekemään järkeviä päätöksiä koskien työntekijöiden palkkaamista/irtisanomista tai kaluston hankintaa/vuokraamista, jotka parhaiten sopivat yritykselleen.
Muita esimerkkejä nykyaikaisista älyagenteista ovat roskapostisuodattimet , pelibotit ja palvelimen valvontatyökalut. Hakukoneiden indeksointibotteja pidetään myös älykkäinä agentteina.
Agenttipohjaisten järjestelmien kehittämisessä herää mielenkiintoisia kysymyksiä, nimittäin:
Toimiakseen yhteistyössä ja tehokkaasti ohjelmistoagenttien on jaettava tietonsa semantiikka . Tämä voidaan tehdä käyttämällä tietokonejärjestelmiä kuvaamaan niiden metatiedot .
Agentin käsittelijän määritelmää voidaan tarkastella kahdella toisiinsa liittyvällä tavalla:
Järjestelmäagentteja käytetään mallintamaan reaalimaailman järjestelmiä prosessilaskennan ja rinnakkaiskäsittelyn avulla.
Agentti käyttää pääsymenetelmiään kirjautuakseen paikallisiin ja etätietokantoihin etsiessään sisältöä. Tällaisia pääsymenetelmiä ovat erityisesti menetelmät uutissyötteen toimittamiseksi agentille, ilmoitustaulun lukemiseen tai sivujen lataamiseen Internetistä verkkohämähäkin avulla . Tällä tavalla poimittu sisältö voidaan osittain suodattaa – valitaan uutisia tai tietoa tietokannoista, jotka täyttävät hakukyselyn. Agentti voi sitten käyttää kieliprosessoreita löytääkseen avainsanoja tai valitun sisällön tunnisteominaisuuksia. Tämä abstrakti merkitys (tai tapahtumajoukko) välitetään sitten "ajattelevalle" agentille tai päättelykoneelle, jotta hän voi päättää, mitä tehdä uudelle sisällölle. Tämä prosessi sovittaa sisällön yhteen käyttäjän toimittaman asiantuntijadatan tai tietopohjan kanssa. Jos tämä prosessi löytää hyvän vastaavuuden uudelle sisällölle, agentti voi käyttää muita ominaisuuksiaan yksityiskohtaisemman sisällönhaun suorittamiseen. Lopuksi agentti voi päättää uuden sisällön toiminnan luonteesta: esimerkiksi lähettää käyttäjälle viestin, että tärkeä tapahtuma on tapahtunut. Turvajärjestelmä tarkistaa tämän toiminnon ja sitten käyttäjälle myönnetään tietyt oikeudet. Agentti käyttää käyttäjän käytettävissä olevaa pääsytapaa toimittaakseen tämän viestin käyttäjälle. Jos käyttäjä vahvistaa, että tapahtuma on tärkeä vastaamalla nopeasti ilmoitukseen, agentti voi käyttää tätä tapahtumaa oppimistekijänä lisätäkseen tällaisten tapahtumien painofunktiota.
Ohjelmistoagentit ovat tietysti innovatiivinen tekniikka, joka voi tarjota paljon lisäarvoa loppukäyttäjille automatisoimalla monimutkaisia tai toistuvia tehtäviä [8] . Tällä tekniikalla on kuitenkin useita mahdollisia organisatorisia ja kulttuurisia vaikutuksia, jotka on otettava huomioon.
Organisaatiovaikutuksia ovat koko verkkokaupan alan muutos, toiminnalliset innovaatiot, lisääntynyt paine turvajärjestelmiin. Ohjelmistoagentit voivat etsiä Internetistä nopeasti, löytää parhaat tarjoukset verkossa ja toimittaa nämä tiedot loppukäyttäjille kätevällä tavalla. Siten käyttäjien ei tarvitse manuaalisesti selata monia myyjäsivustoja, agentit voivat löytää parhaan tarjouksen sekunneissa. Samalla se lisää hintakilpailua ja muuttaa koko sähköisen kaupankäynnin yhtenäisiksi markkinoiksi, jolla on virheetön kilpailu. Agenttien käyttö vaatii myös yrityksiltä lisäresursseja, uusia työpaikkoja kauppaketjujen lisäkuormituksen vuoksi sekä uusia turvallisuusmenettelyjä.
Ohjelmistoagenttien käyttöönoton kulttuurisia seurauksia ovat toiveiden tuhoaminen, työtaitojen muuttuminen, yksityisyyden tuhoaminen ja sosiaalisen syrjäytymisen syntyminen. Jotkut käyttäjät eivät ehkä tunne olonsa riittävän tyytyväisiksi tarpeeseen siirtää tärkeitä toimintoja ohjelmistosovelluksille. Ne, jotka alkavat luottaa pelkästään älykkäisiin agentteihin, voivat menettää tärkeitä taitoja, kuten tietolukutaitoon liittyviä taitoja. Voidakseen toimia käyttäjän puolesta ohjelmistoagentilla on oltava täydellinen käsitys käyttäjän profiilista, mukaan lukien hänen henkilökohtaiset mieltymyksensä. Tämä puolestaan voi johtaa arvaamattomiin seurauksiin luottamuksellisuusasioissa. Kun käyttäjät alkavat luottaa enemmän ohjelmistoagentteihinsa erityisesti viestintätoiminnassa, he saattavat menettää yhteyden muihin ihmisiin ja nähdä maailman agenttiensa silmin. Agenttitutkijoiden ja älykkäitä agenttitekniikoita käsittelevien käyttäjien on otettava huomioon nämä vaikutukset [9] .