Agent (programowanie)

Agent – program komputerowy w kontekście programowania agentowego

Agent to program komputerowy, który znajduje zastosowanie w programowaniu agentowym.

Definicja agenta

W związku z brakiem jednolitych standardów, definicja agenta nie jest uzgodniona. Możemy jednak scharakteryzować agenta jako podmiot działający w określonym środowisku, który potrafi komunikować się, obserwować swoje otoczenie oraz podejmować autonomiczne decyzje, aby realizować cele wyznaczone podczas jego projektowania lub działania.

Agent powinien mieć następujące cechy:

  • autonomiczność (zdolność do samodzielnego podejmowania decyzji),
  • komunikatywność (umiejętność interakcji z innymi agentami oraz użytkownikami),
  • percepcja (zdolność do dostrzegania i reagowania na zmiany w otoczeniu).

Inną, często podnoszoną cechą, jest mobilność.

Do innych popularnych cech agentów należą:

  • zdolność do wykorzystywania wiedzy,
  • tolerancyjność na błędy oraz niepoprawne dane wejściowe,
  • zdolność do używania symboli i abstrakcji,
  • zdolność do adaptacji w celu osiągnięcia zamierzonych celów,
  • zdolność do uczenia się,
  • zdolność do przeprowadzania operacji w czasie rzeczywistym,
  • zdolność do komunikacji w języku naturalnym.

Rodzaje agentów

Agenci mogą być klasyfikowani na podstawie sposobu, w jaki postrzegają otoczenie, ingerują w środowisko oraz podejmują decyzje:

  • agenty reaktywne,
  • agenty intencjonalne,
  • agenty socjalne.

Istnieją dwa podejścia do tworzenia systemów opartych na agentach: wykorzystanie pojedynczego agenta lub rozwijanie systemu wieloagentowego.

Podział według przeznaczenia i reakcji użytkowników

  1. Agenty zarządzające informacją – ich celem jest wsparcie użytkownika. Przykładem jest „asystent-doradca” w aplikacjach Microsoft Office.
  2. Agenty zarządzające pocztą elektroniczną – odpowiedzialne za filtrowanie i sortowanie wiadomości, a także odpowiadanie na standardowe pytania.
  3. Agenty organizujące dzień – pomagają użytkownikowi w planowaniu dnia. Przykładem są asystenci, jak 'spinacz’ w MS Word, którzy potrafią realizować bardziej złożone cele niż proste awatary i mają większą swobodę działania. Czasami tego rodzaju agenty określane są jako 'agenty interfejsu’.
  4. Agenty dostarczające zindywidualizowane informacje – odpowiedzialne za filtrację i selekcję danych.
  5. Agenty monitorujące lub zarządzające – klasa agentów zajmująca się obserwacją zjawisk i podejmowaniem działań w imieniu użytkownika. W tej grupie znajdują się agenty aktorzy, które w niewielkim stopniu są zależne od człowieka, jak np. bot w kanale IRC, oraz agenty awatary, będące bezpośrednią reprezentacją użytkownika w cyberprzestrzeni, jak w chatroomach czy na IRC-u. Takie agenty realizują polecenia użytkownika i mają ograniczoną swobodę działania.
  1. Agenty w systemach rozproszonych
  2. Agenty poszukujące informacji – ich zadaniem jest odnalezienie konkretnej informacji dla użytkownika.
  3. Agenty przeszukujące Internet – skanują sieć w poszukiwaniu różnorodnych informacji potrzebnych użytkownikowi.
  4. Agenty e-biznesu i m-biznesu – działają w obszarze handlu internetowego.
  5. Agenty zarządzające siecią – służą do zarządzania aktualizacjami oprogramowania lub wykrywaniem ataków.
  1. Agenty w modelowaniu systemów złożonych
  2. Agenty modelujące negocjacje cenowe – wykorzystywane w handlu elektronicznym.
  3. Agenty modelujące proces zarządzania produkcją – wspierają zarządzanie przedsiębiorstwem, jako agentowe systemy ekspertowe.

Zobacz też

Bibliografia

Stanisław Stanek, Marcin Mazur, Bogdan Sadecki, Zastosowanie kreatywnego agenta oprogramowania w module giełdowym IKGSWI wspomagającym inwestycje kapitałowe, Systemy Wspomagania Organizacji SWO’2004, Katowice.

Marcin Paprzycki, Agenci programowi jako metodologia tworzenia oprogramowania, Computer Science Department, Oklahoma State University, Tulsa, OK 74106 USA.