Uwaga: agenci nadchodzą...

Bez obawy - to nie opowieść o szpiegach. Agenci to autonomiczne moduły aplikacji, które dysponując pewną dozą wbudowanej sztucznej inteligencji ułatwiają pracę z komputerem. Na świecie coraz o nich głośniej, a przodujące firmy programistyczne pracują intensywnie nad tym, by idee przekształcić w gotowe produkty rynkowe.

Bez obawy - to nie opowieść o szpiegach. Agenci to autonomiczne moduły aplikacji, które dysponując pewną dozą wbudowanej sztucznej inteligencji ułatwiają pracę z komputerem. Na świecie coraz o nich głośniej, a przodujące firmy programistyczne pracują intensywnie nad tym, by idee przekształcić w gotowe produkty rynkowe.

Wiele już napisano o głupocie komputerów. Każdy z nas, użytkowników Peceta czy innej równie złośliwej maszyny, wielokrotnie narzekał na swój los biednego, zagubionego petenta wobec potęgi i buty jej wysokości Aplikacji, która nie raczy nas słuchać i zawsze działa po swojemu. Niestety nadal zbyt dużo czasu poświęcamy na walkę z kompletną durnością maszyny, zamiast wykonywać interesujące nas zadanie. Wszechobecne dzisiaj graficzne interfejsy użytkownika wiele zrobiły dobrego by komputer zbliżyć do ludzi, ale wciąż przysłowiowy dialog człowieka z maszyną odbywa się na zasadzie "gadał dziad do obrazu...".

Sytuacja może się zmienić jedynie wówczas jeśli wyposaży się komputery w pewną dozę inteligencji, pozwalającą na wysuwanie wniosków i podejmowanie bazujących na nich działań. Agenci to pomysł polegający na dodaniu do aplikacji swego rodzaju asystenta, którego zadaniem byłoby wspierać użytkownika, poprzez dostarczanie mu potrzebnych informacji i wykonywanie za niego prostych czynności.

Wypadałoby zacząć od podania precyzyjnej definicji, ale tak naprawdę trudno ją znaleźć. Nie ma żadnych kryteriów według których można by określić, kiedy dany kawałek oprogramowania można nazwać agentem. Rozumienie tego pojęcia jest czysto intuicyjne - bardzo ogólnie jest to element aplikacji wyręczający użytkownika w wykonywaniu jakiejś prostej, powtarzalnej i uciążliwej czynności, bądź zajmujący się dostarczaniem potrzebnych w danej chwili informacji.

Głównym zadaniem agentów jest usprawnienie działania znanych nam już dzisiaj aplikacji. W pierwszej kolejności uwzględniono programy w które, z uwagi na jasną strukturę zawartych informacji, najłatwiej wbudować protezy ułatwiające życie użytkownikowi. Są to np. bazy danych (wyszukiwanie informacji) czy aplikacje zarządzające pocztą elektroniczną (filtrowanie przesyłek).

Nomenklatura dotycząca nazewnictwa agentów jest dość bogata. Mówi się m.in. o programach robotach (softbot - software robot), robotach użytkownika (userbot), robotach zadaniowych (taskbot) itd.

Znane są już pewne namiastki agentów takie jak Czarodzieje (Wizards), których zadaniem jest ukazanie drogi prowadzącej do osiągnięcia pożądanych rezultatów, ale ich mała elastyczność zadecydowała o niechętnym przyjęciu ze strony użytkowników. Pewne mechanizmy charakterystyczne dla zachowania agentów, wbudowano także w aplikację Lotus Notes.

Wzajemne zrozumienie

Problemem pozostaje sprawa komunikacji użytkownika z agentami. Badania wykazują, że w praktyce nikły procent użytkowników korzystających na co dzień z komputera potrafi i chce programować. Dotyczy to także pisania wszelkich makr czy skryptów. Wobec tego właściwym rozwiązaniem porozumienia z agentem byłoby przekazywanie mu poleceń i informacji w postaci wizualnej albo zbliżonej do języka naturalnego. Istotną sprawą jest tutaj rola zaangażowania emocjonalnego - duża grupa użytkowników wolałaby współpracować z czymś dostrzegalnym, a nie jakimś ukrytym głęboko w aplikacji niewidzialnym pomocnikiem. Najlepiej żeby była to jakaś postać widoczna na ekranie zachowująca się jak istota żywa, choć wcale nie każdemu może to odpowiadać (na pewno musi to być wyrafinowana, nieprymitywna grafika).

Nie jest dziełem przypadku, że agenci widoczni na zamieszczonej obok ilustracji, przyjęli postać ludzką. W pewnym sensie ze strony aplikacji mogą być postrzegani jako zwyczajni użytkownicy - tak samo korzystają z zasobów, podejmują pewne akcje i komunikują się między sobą, jak ludzie w pracy grupowej. Agenci są tutaj w pewnym sensie niewolnikami dla użytkownika, można się z nimi porozumieć i zlecić wykonanie "czarnej roboty".

Każdy kto pracuje z komputerem, buduje w swoim umyśle jakieś wyobrażenie o tym, jakiego zachowania należy spodziewać się po wykorzystywanej aplikacji. Użytkownik wie czego oczekiwać, poznając reakcje maszyny na podejmowane przez niego działania. Niestety w drugą stronę nigdy to nie zachodzi - program ma swoje wymagania i nie buduje żadnego modelu mentalnego o zachowaniu konkretnego człowieka. Jednym słowem sposobów interakcji zawsze uczy się użytkownik, ale nigdy komputer. Gdy na ekranie pojawia się komunikat w stylu "Naciśnij Enter żeby...", to czasem nabieram wątpliwości, kto tu kim właściwie steruje?

Rozmowa jest jednym z podstawowych sposobów komunikacji między ludźmi. Jej celem jest osiągnięcie wzajemnego zrozumienia. Cała zabawa w sztuczną inteligencję jest w istocie grą o bardzo wysoką stawkę, aby maszyna stała się partnerem w rozmowie z jej użytkownikiem.

Przykład

Ulubionym tematem badań nad agentami są programy służące do obsługi (filtrowania) przychodzącej poczty elektronicznej. Ściśle określona hierarchiczna struktura każdego listu otrzymanego przez e-Mail (bardzo łatwo wyróżnić w nim pola takie jak temat, nadawcę, treść itd.) pozwala na stosunkowo proste uzyskanie informacji o zawartości każdego z nich, bez konieczności rozumienia samego listu. Aplikacja zarządzająca nadchodzącą pocztą może ocenić, z pewnym stopniem pewności, ważność każdego listu. Może je wówczas automatycznie uszeregować, ustawiając te najpilniejsze na samym początku. Jednocześnie do użytkownika może być skierowana informacja o zauważonych śmieciach (garbage mail).

Taki agent pocztowy może zdobywać potrzebną mu wiedzę obserwując działania użytkownika, tj. pamiętając o jego preferencjach względem pilności i konieczności zachowania otrzymywanych listów. Człowiek może także explicite wskazywać jaka informacja jest istotna (przekazując komunikaty w stylu - "Hej agencie! Listy od Jurka są bardzo ważne, a tamte to zawsze kasuj").

Taki program w dużym stopniu ułatwia życie każdemu, kto na co dzień posługuje się tą formą komunikacji i każdego dnia otrzymuje sporą liczbę przesyłek. To w gruncie rzeczy taka automatyczna sekretarka, która co rano przejrzy i posortuje leżące papiery. A użytkownik musi jej w pełni ufać by mieć pewność, że żadna ważna korespondencja nie będzie pominięta i nie zaginie.

Bardzo inteligentny agent pocztowy może wykonywać daleko bardziej skomplikowane zadania, związane np. z wysyłką poczty. Wówczas mimochodem rzucone przez użytkownika zdanie: "Wyślij materiały do Janka", wymagać będzie rozstrzygnięcia bardzo ważnych kwestii (jaki Janek, jakie materiały, gdzie one są, w jaki sposób, itd. itp.). Właściwej interpretacji tego polecenia należy dokonać na podstawie wiedzy zawartej w programie (może do Janka codzienne wysyła się materiały?) i dzięki wykorzystaniu dostępnych narzędzi (np. w Internecie będą to archie, gopher, netfind i in.). Agent musi dbać o to by dobrze spełnić swoje zadanie, ograniczając do niezbędnego minimum konieczność zasięgnięcia od użytkownika uzupełniających informacji.

Należy przypuszczać, że tego typu programy pojawią się na rynku już w ciągu kilku najbliższych lat.

Rozbudzone oczekiwania

Nie należy jednak przeceniać zbawiennego wpływu agentów - są to w sumie dość wyrafinowane narzędzia, ale pracy za nas nie wykonają. Użytkownicy często mają tendencję to przeceniania intelektualnych zdolności maszyny, a wbudowana w programy inteligencja zawsze będzie mocno ograniczona. Poprawne zachowanie agentów będzie zależeć od dostępności pewnej zewnętrznej wiedzy zdroworozsądkowej, a ta jest jak na razie przeszkodą nie do przeskoczenia w rozwoju sztucznej inteligencji. Winny one zawsze zapewnić człowiekowi komfortowe poczucie sprawowania pełnej kontroli - wszak nikt nie lubi, by coś wymykało się z rąk. Muszą być darzone pełnym zaufaniem, tj. użytkownik powinien być pewien, że może na nich polegać. Programy w przyszłości będą bez wątpienia łatwiejsze w obsłudze, ale problemy niestety będą zawsze występować.

Już dzisiaj główne koncerny informatyczne, takie jak Microsoft czy Apple, intensywnie pracują nad rozwojem technik wbudowywania w aplikacje agentów. Kto będzie pierwszy (i lepszy) ten pozyska miliony użytkowników spragnionych bardziej przyjaznego komputera.

Agent nie jest warstwą pośredniczącą między użytkownikiem a aplikacją. Zachowuje się raczej jako inteligentny asystent, pomagający człowiekowi rozwiązywać bieżące zadania. Swoją wiedzę czerpie z następujących źródeł: 1) obserwuje zachowania i akcje podejmowane przez użytkownika; 2) jest uczony za pomocą przykładów; 3) pyta się innych agentów obecnych w systemie; 4) w swoich działaniach jest korygowany przez użytkownika.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200