Agent oprogramowania — Software agent

W informatyce , wykorzystując czynnik oprogramowanie to program komputerowy, który działa dla użytkownika lub innego programu w związku z agencją, która wywodzi się od łacińskiego Agere (do zrobienia): umowa działać na swym imieniu. Takie „działanie w imieniu” implikuje upoważnienie do decydowania, które, jeśli w ogóle, działanie jest właściwe. Agenci potocznie nazywani są botami , od robota . Mogą być ucieleśnione, na przykład, gdy wykonanie jest sparowane z ciałem robota, lub jako oprogramowanie, takie jak chatbot działający na telefonie (np. Siri ) lub innym urządzeniu komputerowym. Agenci oprogramowania mogą być autonomiczni lub współpracować z innymi agentami lub osobami. Agenty oprogramowania wchodzące w interakcje z ludźmi (np. chatboty , środowiska interakcji człowiek-robot ) mogą posiadać cechy ludzkie, takie jak rozumienie języka naturalnego i mowa, osobowość lub ucieleśniać humanoidalną formę (patrz Asimo ).

Pojęcia pokrewne i pochodne obejmują inteligentne agenty (w szczególności wykazujące pewne aspekty sztucznej inteligencji , takie jak rozumowanie ), agenty autonomiczne (zdolne do modyfikowania metod osiągania swoich celów), agenty rozproszone (wykonywane na fizycznie odrębnych komputerach), wieloagentowe systemy (rozproszeni agenci współpracujący ze sobą, aby osiągnąć cel, którego nie mógłby osiągnąć pojedynczy agent działający samodzielnie) oraz agenci mobilni (agenci, którzy mogą przenieść swoje wykonanie na różne procesory).

Koncepcje

Podstawowe atrybuty autonomicznego agenta oprogramowania to fakt, że agenci

  • nie są przywoływane bezpośrednio do zadania, ale same się aktywują,
  • może znajdować się w stanie oczekiwania na hoście, postrzegając kontekst,
  • może uzyskać status uruchomienia na hoście po spełnieniu warunków startowych,
  • nie wymagają interakcji użytkownika,
  • może powołać się na inne zadania, w tym komunikację.
Kategoria agenta oprogramowania Nwana

Termin „agent” opisuje abstrakcję oprogramowania , ideę lub koncepcję, podobną do terminów OOP, takich jak metody, funkcje i obiekty. Pojęcie agenta zapewnia wygodny i skuteczny sposób opisania złożonej jednostki oprogramowania, która jest zdolna do działania z pewnym stopniem autonomii w celu wykonywania zadań w imieniu swojego hosta. Ale w przeciwieństwie do obiektów, które definiuje się w kategoriach metod i atrybutów , agent jest definiowany w kategoriach swojego zachowania.

Różni autorzy proponowali różne definicje środków, często obejmują one takie pojęcia, jak:

  • trwałość (kod nie jest wykonywany na żądanie, ale działa w sposób ciągły i sam decyduje, kiedy powinien wykonać jakąś czynność)
  • autonomia (agenci mają możliwość wyboru zadań, ustalania priorytetów, zachowania ukierunkowanego na cel, podejmowania decyzji bez interwencji człowieka)
  • zdolność społeczna (agenci są w stanie zaangażować inne komponenty poprzez pewien rodzaj komunikacji i koordynacji, mogą współpracować przy zadaniu)
  • reaktywność (agenci postrzegają kontekst, w którym działają i odpowiednio na niego reagują).

Odróżnianie od programów

Wszystkie agenty są programami, ale nie wszystkie programy są agentami. Zestawienie terminu z powiązanymi pojęciami może pomóc w wyjaśnieniu jego znaczenia. Franklin i Graesser (1997) omawiają cztery kluczowe pojęcia, które odróżniają agentów od arbitralnych programów: reakcję na otoczenie, autonomię, orientację na cel i wytrwałość.

Intuicyjne odróżnianie agentów od przedmiotów

  • Agenci są bardziej autonomiczni niż przedmioty .
  • Agenci mają elastyczne zachowania: reaktywne , proaktywne , społeczne.
  • Agenci mają co najmniej jeden wątek kontroli, ale mogą mieć więcej.

Czynniki odróżniające od systemów eksperckich

  • Systemy eksperckie nie są sprzężone ze swoim środowiskiem.
  • Systemy eksperckie nie są zaprojektowane do reaktywnego, proaktywnego zachowania.
  • Systemy eksperckie nie uwzględniają zdolności społecznych.

Odróżnianie inteligentnych agentów oprogramowania od inteligentnych agentów w sztucznej inteligencji

  • Inteligentni agenci (znani również jako racjonalni agenci ) to nie tylko programy komputerowe: mogą to być również maszyny, istoty ludzkie, społeczności istot ludzkich (takie jak firmy ) lub cokolwiek, co jest zdolne do zachowania ukierunkowanego na cel.
( Russell i Norvig 2003 )

Wpływ agentów oprogramowania

Agenci oprogramowania mogą oferować użytkownikom końcowym różne korzyści, automatyzując złożone lub powtarzalne zadania. Istnieją jednak organizacyjne i kulturowe wpływy tej technologii, które należy wziąć pod uwagę przed wdrożeniem agentów oprogramowania.

Wpływ organizacyjny

Wpływ zadowolenia z pracy i satysfakcji z pracy

Ludzie lubią wykonywać proste zadania dające poczucie sukcesu, chyba że powtarzanie prostych zadań ma wpływ na ogólny wynik. Ogólnie rzecz biorąc, wdrożenie agentów oprogramowania w celu spełnienia wymagań administracyjnych zapewnia znaczny wzrost zadowolenia z pracy, ponieważ administrowanie własną pracą nigdy nie zadowala pracownika. Uwolniony wysiłek służy większemu zaangażowaniu w merytoryczne zadania pracy indywidualnej. W związku z tym agenci oprogramowania mogą zapewniać podstawy do wdrażania samokontrolowanej pracy, wolnej od hierarchicznych kontroli i ingerencji. Takie warunki można zapewnić poprzez zastosowanie agentów oprogramowania dla wymaganego wsparcia formalnego.

Wpływ kulturowy

Skutki kulturowe wdrożenia agentów oprogramowania obejmują utratę zaufania, erozję umiejętności, utratę prywatności i oderwanie społeczne. Niektórzy użytkownicy mogą nie czuć się w pełni komfortowo, całkowicie delegując ważne zadania do aplikacji. Ci, którzy zaczną polegać wyłącznie na inteligentnych agentach, mogą stracić ważne umiejętności, na przykład związane z umiejętnością korzystania z informacji. Aby działać w imieniu użytkownika, agent oprogramowania musi mieć pełne zrozumienie profilu użytkownika, w tym jego osobistych preferencji. To z kolei może prowadzić do nieprzewidywalnych problemów z prywatnością. Kiedy użytkownicy zaczynają bardziej polegać na swoich agentach oprogramowania, zwłaszcza w działaniach komunikacyjnych, mogą stracić kontakt z innymi ludzkimi użytkownikami i patrzeć na świat oczami swoich agentów. Te konsekwencje są tym, co badacze agentów i użytkownicy muszą wziąć pod uwagę, gdy mają do czynienia z inteligentnymi technologiami agentowymi.

Historia

Pojęcie agenta wywodzi się z Modelu Aktora Hewitta (Hewitt, 1977) – „Samodzielny, interaktywny i jednocześnie wykonujący się obiekt, posiadający stan wewnętrzny i zdolność komunikacji”.

Aby być bardziej akademickim, systemy agentów oprogramowania są bezpośrednią ewolucją systemów wieloagentowych (MAS). MAS wyewoluował z rozproszonej sztucznej inteligencji (DAI), rozproszonego rozwiązywania problemów (DPS) i równoległej sztucznej inteligencji (PAI), dziedzicząc w ten sposób wszystkie cechy (dobre i złe) z DAI i AI .

Film Johna SculleyaNawigator wiedzy ” z 1987 roku przedstawiał obraz relacji między użytkownikami końcowymi a agentami. Będąc idealnym pierwszym, pole to doświadczyło serii nieudanych wdrożeń odgórnych, zamiast podejścia oddolnego kawałek po kawałku. Zakres typów agentów jest obecnie (od 1990 r.) szeroki: WWW, wyszukiwarki itp.

Przykłady inteligentnych agentów oprogramowania

Agenci kupujących (boty zakupowe)

Agenci kupujących poruszają się po sieci (np. w Internecie) wyszukując informacje o towarach i usługach. Agenci ci, znani również jako „boty zakupowe”, działają bardzo wydajnie w przypadku produktów takich jak płyty CD, książki, komponenty elektroniczne i inne produkty uniwersalne. Agenci kupujący są zazwyczaj zoptymalizowani pod kątem usług płatności cyfrowych stosowanych w handlu elektronicznym i tradycyjnych przedsiębiorstwach.

Agenty użytkownika (osoby agenci)

Agenty użytkownika lub agenci osobiści to inteligentni agenci, którzy podejmują działania w Twoim imieniu. Do tej kategorii należą ci inteligentni agenci, którzy już wykonują lub wkrótce wykonają następujące zadania:

  • Sprawdź pocztę e-mail, posortuj ją zgodnie z preferencjami użytkownika i powiadamiaj o nadejściu ważnych wiadomości e-mail.
  • Graj w gry komputerowe jako przeciwnik lub patroluj obszary gry.
  • Przygotuj dla siebie spersonalizowane raporty informacyjne. Istnieje kilka ich wersji, w tym CNN.
  • Znajdź dla siebie informacje na wybrany przez siebie temat.
  • Automatycznie wypełniaj formularze w Internecie, przechowując informacje na przyszłość
  • Skanuj strony internetowe w poszukiwaniu i wyróżniając tekst, który stanowi „ważną” część zawartych tam informacji
  • Porozmawiaj z Tobą na różne tematy, od najgłębszych lęków po sport
  • Ułatwiaj wypełnianie obowiązków związanych z poszukiwaniem pracy online, skanując znane tablice ogłoszeń i wysyłając CV do ofert spełniających pożądane kryteria
  • Synchronizacja profili w heterogenicznych sieciach społecznościowych

Agenci monitorująco-nadzorujący (prognozujący)

Agenci monitoringu i nadzoru są wykorzystywani do obserwacji i raportowania o sprzęcie, zwykle systemach komputerowych. Agenci mogą śledzić poziom zapasów firmy, obserwować ceny konkurentów i przekazywać je z powrotem do firmy, obserwować manipulacje zapasami przez wykorzystywanie informacji poufnych i plotki itp.

monitorowanie usług

Na przykład Laboratorium Napędu Odrzutowego NASA ma agenta, który monitoruje zapasy, planuje, planuje zamówienia sprzętu, aby obniżyć koszty i zarządza magazynami żywności. Agenci ci zwykle monitorują złożone sieci komputerowe, które mogą śledzić konfigurację każdego komputera podłączonego do sieci.

Szczególnym przypadkiem agentów monitoringu i nadzoru są organizacje agentów wykorzystywane do naśladowania procesu podejmowania decyzji przez człowieka podczas operacji taktycznych. Agenci monitorują stan zasobów (amunicja, dostępna broń, platformy do transportu itp.) i otrzymują Cele (Misje) od agentów wyższego poziomu. Agenci następnie realizują Cele mając pod ręką Aktywa, minimalizując wydatki na Aktywa, jednocześnie maksymalizując Osiągnięcie Celu. (Patrz Popplewell, „Agenci i zastosowanie”)

Agenci eksploracji danych

Ten agent wykorzystuje technologię informacyjną do znajdowania trendów i wzorców w obfitości informacji z wielu różnych źródeł. Użytkownik może sortować te informacje, aby znaleźć informacje, których szuka.

Agent eksploracji danych działa w hurtowni danych, odnajdując informacje. „Hurtownia danych” gromadzi informacje z wielu różnych źródeł. „Eksploracja danych” to proces przeszukiwania hurtowni danych w celu znalezienia informacji, które można wykorzystać do podjęcia działań, takich jak sposoby na zwiększenie sprzedaży lub zatrzymanie klientów, którzy rozważają wadliwość.

„Klasyfikacja” to jeden z najczęstszych rodzajów eksploracji danych, który znajduje wzorce w informacjach i dzieli je na różne klasy. Agenci eksploracji danych mogą również wykrywać poważne zmiany trendów lub kluczowego wskaźnika, wykrywać obecność nowych informacji i ostrzegać o nich. Na przykład agent może wykryć spadek w branży budowlanej dla gospodarki; na podstawie tych przekazanych informacji firmy budowlane będą mogły podejmować inteligentne decyzje dotyczące zatrudniania/zwalniania pracowników lub zakupu/dzierżawy sprzętu tak, aby jak najlepiej pasował do ich firmy.

Agenci sieci i komunikacji

Inne przykłady obecnych inteligentnych agentów obejmują filtry antyspamowe , boty gier i narzędzia do monitorowania serwerów. Boty indeksujące w wyszukiwarkach również kwalifikują się jako inteligentni agenci.

  • Agent użytkownika - do przeglądania sieci WWW
  • Agent przesyłania poczty — służy do obsługi poczty e-mail, takiej jak Microsoft Outlook . Czemu? Komunikuje się z serwerem pocztowym POP3, bez konieczności rozumienia przez użytkowników protokołów poleceń POP3 . Ma nawet zestawy reguł, które filtrują pocztę dla użytkownika, oszczędzając mu w ten sposób kłopotu z koniecznością samodzielnego robienia tego.
  • Agent SNMP
  • W serwerach sieciowych w stylu Uniksa httpd jest demonem HTTP, który implementuje protokół przesyłania hipertekstu w katalogu głównym sieci WWW
  • Agenci zarządzania wykorzystywani do zarządzania urządzeniami telekomunikacyjnymi
  • Symulacja tłumu do planowania bezpieczeństwa lub grafiki komputerowej 3D ,
  • Wireless beaconing agent to prosty, jednozadaniowy, hostowany proces, służący do wdrażania bezprzewodowego zamka lub elektronicznej smyczy w połączeniu z bardziej złożonymi agentami oprogramowania hostowanymi np. na odbiornikach bezprzewodowych.
  • Wykorzystanie autonomicznych agentów (celowo wyposażonych w szum) do optymalizacji koordynacji w grupach online.

Agenci rozwoju oprogramowania (inaczej boty oprogramowania)

Boty programowe stają się ważne w inżynierii oprogramowania. Przykładem bota programowego jest bot, który automatycznie naprawia błędy ciągłej integracji.

Agenci ochrony

Agenci są również wykorzystywani w aplikacjach zabezpieczających oprogramowanie do przechwytywania, badania i działania na różnych typach treści. Przykład obejmują:

  • Agenci zapobiegania utracie danych (DLP) — badają operacje użytkownika na komputerze lub w sieci, porównują z politykami określającymi dozwolone działania i podejmują odpowiednie działania (np. zezwalaj, ostrzegaj, zablokuj). Bardziej wszechstronni agenci DLP mogą być również wykorzystywani do wykonywania funkcji EDR.
  • Agenci Endpoint Detection and Response (EDR) — monitorują całą aktywność na komputerze końcowym w celu wykrywania złośliwych działań i reagowania na nie
  • Agenci Cloud Access Security Broker (CASB) — podobni do agentów DLP, jednak badający ruch kierowany do aplikacji w chmurze

Problemy projektowe

Kwestie do rozważenia przy tworzeniu systemów opartych na agentach obejmują:

  • jak zaplanowane są zadania i jak osiągana jest synchronizacja zadań
  • jak zadania są priorytetyzowane przez agentów
  • jak agenci mogą współpracować lub rekrutować zasoby,
  • w jaki sposób agenty mogą być ponownie tworzone w różnych środowiskach i jak można przechowywać ich stan wewnętrzny,
  • jak środowisko będzie badane i jak zmiana środowiska prowadzi do zmian behawioralnych agentów
  • jak można osiągnąć przekaz i komunikację,
  • jakie hierarchie agentów są przydatne (np. agenci realizacji zadań, agenci planowania, dostawcy zasobów...).

Aby agenci oprogramowania współpracowali wydajnie, muszą współdzielić semantykę swoich elementów danych. Można tego dokonać poprzez publikowanie przez systemy komputerowe swoich metadanych .

Do definicji przetwarzania agentowego można podejść z dwóch powiązanych ze sobą kierunków:

  • przetwarzanie stanów wewnętrznych i ontologie do reprezentacji wiedzy
  • protokoły interakcji – standardy określania komunikacji zadań

Systemy agentowe służą do modelowania rzeczywistych systemów z przetwarzaniem współbieżnym lub równoległym.

  • Agent Machinery – różnego rodzaju silniki, które obsługują różne stopnie inteligencji
  • Treść agenta – dane wykorzystywane przez maszynę w rozumowaniu i uczeniu się
  • Dostęp agenta — metody umożliwiające maszynie postrzeganie treści i wykonywanie działań jako wyników rozumowania
  • Bezpieczeństwo agenta – obawy związane z przetwarzaniem rozproszonym, poszerzone o kilka szczególnych obaw związanych z agentami

Agent używa swoich metod dostępu, aby przejść do lokalnych i zdalnych baz danych w celu wyszukania zawartości. Te metody dostępu mogą obejmować konfigurowanie dostarczania strumienia wiadomości do agenta, pobieranie z tablic ogłoszeniowych lub używanie pająka do chodzenia po sieci. Pobierana w ten sposób treść jest prawdopodobnie już częściowo filtrowana – poprzez wybór kanału informacyjnego lub przeszukiwanych baz danych. Następnie agent może użyć swojej szczegółowej maszynerii wyszukiwania lub przetwarzania języka, aby wyodrębnić słowa kluczowe lub podpisy z treści, która została odebrana lub pobrana. Ta wyabstrahowana treść (lub zdarzenie) jest następnie przekazywana do mechanizmu rozumowania lub wnioskowania agenta w celu podjęcia decyzji, co zrobić z nową treścią. Ten proces łączy treść zdarzenia z treścią opartą na regułach lub treścią wiedzy dostarczoną przez użytkownika. Jeśli ten proces znajdzie dobre trafienie lub dopasowanie w nowej treści, agent może użyć innego elementu swojej maszynerii, aby przeprowadzić bardziej szczegółowe wyszukiwanie treści. Wreszcie agent może podjąć decyzję o podjęciu działania w oparciu o nową treść; na przykład, aby powiadomić użytkownika o wystąpieniu ważnego zdarzenia. Czynność ta jest weryfikowana przez funkcję bezpieczeństwa, a następnie nadawane są uprawnienia użytkownika. Agent korzysta z metody dostępu użytkownika, aby dostarczyć tę wiadomość do użytkownika. Jeśli użytkownik potwierdzi, że zdarzenie jest ważne, działając szybko na powiadomienie, agent może również wykorzystać swoją maszynerię uczącą się, aby zwiększyć swoją wagę dla tego rodzaju zdarzenia.

Boty mogą działać w imieniu swoich twórców, zarówno dobrze, jak i źle. Istnieje kilka sposobów tworzenia botów, aby zademonstrować, że zostały zaprojektowane z najlepszymi intencjami i nie są zbudowane do wyrządzania szkód. Odbywa się to w pierwszej kolejności, gdy bot identyfikuje się w nagłówku HTTP klienta użytkownika podczas komunikowania się z witryną. Źródłowy adres IP musi również zostać zweryfikowany, aby można go było uznać za legalny. Następnie bot musi również zawsze respektować plik robots.txt witryny, ponieważ stał się on standardem w większości sieci. Podobnie jak w przypadku przestrzegania pliku robots.txt, boty powinny unikać zbyt agresywnych zachowań i przestrzegać wszelkich instrukcji dotyczących opóźnień indeksowania.

Pojęcia i ramy dla agentów

Zobacz też

Bibliografia

Zewnętrzne linki