Inom datavetenskap är en mjukvaruagent ett program som går in i en mellanhandsrelation med en användare eller ett annat program. Ordet " agent " kommer från latinets agere (att göra) och betyder en överenskommelse om att utföra handlingar för någons räkning. Sådant "agerande på uppdrag av" innebär rätten att bestämma vilka åtgärder (om några) som är lämpliga [1] [2] . Tanken är att agenter inte lanseras direkt för att lösa en uppgift, utan aktiveras på egen hand.
Besläktade och härledda begrepp inkluderar intelligenta agenter (särskilt de med vissa aspekter av artificiell intelligens såsom inlärning och resonemang ), autonoma agenter (som kan förändra hur de når sina mål), distribuerade agenter (utför åtgärder på fysiskt olika datorer), multi- agentsystem (distribuerade agenter som inte har förmågan att uppnå ett mål ensamma och därför måste kommunicera), och mobila agenter (agenter som kan flytta sin exekvering till andra processorer).
Termen "agent" beskriver en mjukvaruabstraktion , idé eller koncept, liknande OOP- termer som en metod, funktion eller objekt. Konceptet med en agent ger ett bekvämt och kraftfullt sätt att beskriva en komplex mjukvaruenhet som kan agera med en viss grad av autonomi för att utföra uppgifter för användarens räkning. Men till skillnad från objekt, som definieras i termer av metoder och attribut , definieras en agent genom att beskriva dess beteende [3] .
Olika författare erbjuder olika definitioner av en agent, vanligtvis inklusive begrepp som:
Det finns ingen speciell mening med att beskriva vad som är en agent och vad som inte är det. Men att jämföra termen med besläktade begrepp kan klargöra dess innebörd.
Begreppet en agent kan spåras tillbaka till Carl Hewitts skådespelaremodell : "ett autonomt, interaktivt och samtidigt utföra flera funktionsobjekt med ett internt tillstånd och informationsutbyte" [5] .
Mer akademiskt sett är mjukvaruagenter en direkt utveckling av multi-agent system (MAS), som i sin tur utvecklats från distribuerad artificiell intelligens (DI), distribuerad problemlösare (PPS) och parallell artificiell intelligens (PAI). Således ärver mjukvaruagenter alla egenskaper (bra och dåliga) från RAI och AI .
The Knowledge Navigator, skapad 1987 av John Scully, var en videolänk mellan en slutanvändare och en agent. Eftersom den var den första i sitt slag, fungerade den som grunden för en experimentell serie av misslyckade top-down-implementeringar, istället för att närma sig bottom-up-metoder steg för steg. Utbudet av agenttyper är för närvarande (sedan 1990) ganska brett: WWW, sökmotorer, etc.
Stephen Haag tror i sitt arbete [6] att det bara finns fyra huvudtyper av intelligenta mjukvaruagenter:
Köpombud bläddrar onlineresurser (till exempel Internet) för att få information om varor och tjänster. Dessa agenter, även kända som "inköpsrobotar", arbetar mycket effektivt med konsumentvaror som CD-skivor, böcker, elektroniska komponenter och andra "all-purpose"-produkter.
Användaragenter (personliga)Användar- eller personliga agenter är intelligenta agenter som agerar för din räkning. Denna kategori inkluderar intelligenta agenter som redan utför eller kommer att utföra följande uppgifter:
Övervaknings- och övervakningsagenter används för att övervaka objekt och överföra information till utrustning, vanligtvis datorsystem. Agenter kan övervaka företagets lagernivåer av material, övervaka konkurrenters priser och uppmärksamma dem på företaget, analysera aktiemanipulationer baserat på insiderinformation och rykten m.m.
Till exempel har NASA:s Jet Propulsion Laboratory en agent som övervakar utrustningens tillgänglighet och skick, schemalägger ny utrustningsinköpsorder för att optimera kostnaderna och övervakar mattillgången. Sådana agenter övervakar vanligtvis komplexa datornätverk och kan övervaka konfigurationen av varje dator som är ansluten till nätverket.
Specifika övervaknings- och övervakningsagenter är agentstrukturer som används för att modellera beslutsprocessen under taktiska operationer. Agenter övervakar tillgångarnas tillstånd (ammunition, vapen, transportmedel, etc.) och tar emot mål (ordrar) från agenter på högsta nivå. Agenter uppnår mål med tillgängliga tillgångar, minimerar kostnaden för tillgångar samtidigt som de maximerar uppnåendet av målet [7] .
Datautvinning och analysagenterDessa agenter använder informationsteknologi för att leta efter trender och mönster i ett överflöd av information från en mängd olika källor. Användaren kan sortera denna information för att välja exakt vad han letar efter.
Datautvinning och analysagenter arbetar i datalagret för upptäckt information. Ett "datalager" samlar information från många olika källor. "Data mining" är processen att titta på data i ett lager för att hitta sådan information som kan användas för att vidta riktade åtgärder, som att öka försäljningen eller behålla kunder som överväger att lämna konkurrenter.
Klassificering är en av de vanligaste typerna av datautvinning som hittar nyckelord i information och sedan kategoriserar den efter dessa nyckelord. Datautvinnings- och analysagenter kan upptäcka betydande förändringar i trender i nyckelmått och kan också upptäcka och varna dig för ny information. Till exempel kan en agent upptäcka en nedgång i byggbranschen i ekonomin. Byggföretag kommer, baserat på den information som erhållits, att kunna fatta rimliga beslut angående anställning/avskedande av anställda eller köp/leasing av utrustning som bäst passar deras företag.
Andra exempel på moderna smarta agenter är några spamfilter , spelrobotar och serverövervakningsverktyg. Sökmotorindexeringsrobotar anses också vara intelligenta agenter.
I utvecklingen av agentbaserade system uppstår några intressanta frågor, nämligen:
För att samarbeta och effektivt måste programvaruagenter dela semantiken i sina data. Detta kan göras genom att använda datorsystem för att beskriva deras metadata .
Definitionen av en agenthanterare kan ses på två relaterade sätt:
Systemagenter används för att modellera verkliga system med processkalkyl och parallell bearbetning.
Agenten använder sina åtkomstmetoder för att logga in på lokala och fjärrbaserade databaser när den söker efter innehåll. Sådana åtkomstmetoder inkluderar i synnerhet metoderna att leverera ett nyhetsflöde till en agent, läsa en anslagstavla eller ladda ner sidor från Internet med hjälp av en webbspindel . Innehållet som extraheras på detta sätt kan vara delvis filtrerat - nyheter eller information från databaser som uppfyller sökfrågan väljs. Agenten kan sedan använda språkprocessorer för att hitta nyckelord eller identifierande egenskaper hos det valda innehållet. Denna abstraherade betydelse (eller uppsättning händelser) skickas sedan till en "tänkande" agent eller inferensmotor för att bestämma vad som ska göras med det nya innehållet. Denna process matchar innehållet med expertdata eller kunskapsbas som tillhandahålls av användaren. Om denna process hittar en bra matchning för det nya innehållet kan agenten använda sina andra möjligheter för att utföra en mer detaljerad innehållssökning. Slutligen kan agenten bestämma arten av åtgärden på det nya innehållet: till exempel skicka ett meddelande till användaren om att en viktig händelse har inträffat. Denna åtgärd kontrolleras av säkerhetssystemet och sedan beviljas vissa rättigheter till användaren. Agenten använder åtkomstmetoden som är tillgänglig för användaren för att leverera detta meddelande till användaren. Om användaren bekräftar att händelsen är viktig genom att snabbt svara på meddelandet, kan agenten använda denna händelse som en inlärningsfaktor för att öka viktfunktionen för sådana händelser.
Naturligtvis är mjukvaruagenter en innovativ teknik som kan erbjuda mycket värde för slutanvändare genom att automatisera komplexa eller repetitiva uppgifter [8] . Det finns dock flera potentiella organisatoriska och kulturella konsekvenser av denna teknik som måste beaktas.
Organisatoriska implikationer är omvandlingen av hela e-handelsbranschen, operativa innovationer, ökat tryck på säkerhetssystemen. Programvaruagenter kan snabbt söka på Internet, hitta de bästa tillgängliga erbjudandena online och tillhandahålla denna information till slutanvändare på ett bekvämt sätt. Således behöver användare inte manuellt bläddra igenom många säljarwebbplatser, agenter kan hitta det bästa erbjudandet på några sekunder. Samtidigt ökar det priskonkurrensen och förvandlar hela e-handelsbranschen till en inre marknad med felfri konkurrens. Användningen av agenter kräver också ytterligare resurser från företag, nya jobb på grund av den extra belastningen på deras butikskedjor och nya säkerhetsrutiner.
De kulturella konsekvenserna av introduktionen av mjukvaruagenter inkluderar förstörelsen av förhoppningar, förändring av arbetsförmåga, förstörelse av privatlivet och skapandet av social utslagning. Vissa användare kanske inte känner sig tillräckligt bekväma med behovet av att delegera viktiga funktioner till mjukvaruapplikationer. De som börjar förlita sig enbart på intelligenta agenter kan förlora viktiga färdigheter, till exempel de som är relaterade till informationskompetens. För att agera på uppdrag av användaren måste programvaruagenten ha en fullständig förståelse för användarens profil, inklusive hans personliga preferenser. Detta kan i sin tur leda till oförutsägbara konsekvenser i frågor om sekretess. När användare börjar lita mer på sina programvaruagenter, särskilt för kommunikationsaktiviteter, kan de tappa kontakten med andra människor och se världen genom sina agenters ögon. Det är dessa implikationer som måste övervägas av agentforskare och användare som arbetar med intelligenta agentteknologier [9] .