Zwei Jahre später sind diese Befürchtungen zwar nicht wahr geworden, die grundlegende Situation ist jedoch aufgrund der vielfältigen Entwicklungen im Umfeld der Agentenforschung eher noch diffuser geworden: noch immer ist in hohem Maße unklar, was einen Agenten im wesentlichen ausmacht und was ihn beispielsweise von einer Suchmaschinen im WWW oder einem automatisch ablaufenden Prozeß unterscheidet. Wird darüber hinaus gar von einem "Intelligenten Agenten" gesprochen, differieren die Meinungen noch stärker.
Die Tatsache, daß der Begriff "Agent" von vielen unterschiedlichen Leuten auf viele verschiedene Arten gebraucht wird, mag auf der einen Seite zeigen, welche wichtige Rolle diesem Konzept in vielen verschiedenen Wissenschaftsbereichen - von der Informatik über Ingenieurwissenschaften bis zu Soziologie und Psychologie - beigemessen wird. Alleine in der Informatik wird der Begriff gebraucht in solchen Zusammenhängen wie Agentenorientierte Programmierung als Erweiterung der Objektorientierung [Petrie 1996], Agenten als intelligente Hilfesysteme (z.B. die Assistenten in Microsoft Office 97 [Microsoft 1997][4], Agenten, die Arbeit und Informationsflut reduzieren helfen ("Agents that reduce work and inforation overload" [Maes 1994]) oder Mobile Software-Agenten als Teil tragbarer Computer (Laptops, PDA[5]s) [Kearney 1996]. Diese Aufzählung ist bei weitem nicht vollständig.
Auf der anderen Seite jedoch kann diese Diversifikation des Begriffes zu unklaren Vorstellungen darüber führen, was einen Agenten überhaupt ausmacht und welche Eigenschaften ihn gegenüber anderen Ansätzen auszeichnen. Falsche Erwartungen und Hoffnungen können entstehen, die durch die tatsächlichen in der Realität erzielten Ergebnisse oder geplanten Möglichkeiten enttäuscht werden. Damit würden Intelligente Agenten dem Weg folgen, den schon die Künstliche Intelligenz vorgezeigt hat[6] 5.1.1.2 .
Ein Ansatz, die Motivation für den Einsatz von Agenten zu beschreiben, geht vom Paradigma der Direkten Manipulation aus, welches zur Zeit in der Informationstechnik vorherrschend ist. Der Benutzer hantiert direkt mit den Objekten, mit denen er arbeitet. Er wählt ein Dokument aus und öffnet es in einer Textverarbeitung oder startet einen WWW-Browser und "surft" zu bestimmten Adressen.
Durch den immer stärker zunehmenden "Information Overload", dem sich Computerbenutzer ausgesetzt sehen, sowie der immer stärkeren Überfrachtung von Anwendungen mit Funktionen ("Function Overload") wird der Ansatz der Direkten Manipulation zur Kommunikation zwischen Computern und Menschen immer unangemessener. Die Tatsache, daß auch immer mehr Leute mit Computern umgehen wollen oder müssen, die kein umfassendes Verständnis von der zugrunde liegenden Informations- und Kommunikationstechnik haben, verschlimmert diese Diskrepanz zwischen Benutzerschnittstelle und -anspruch noch weiter.
Der Ansatz, Agenten als vorherrschende Benutzerschnittstelle einzusetzen, wird mit einem Paradigmenwechsel hin zur Indirekten Manipulation beschrieben. Der Benutzer arbeitet nicht mehr direkt mit den Objekte, die er verändern möchte, sondern er beauftragt Agenten (oder Assistenten) mit dieser Aufgabe. Diese verfügen entweder über ein elaboriertes Benutzermodell und Wissen über den Aufgabenbereich, in dem sie agieren sollen (Domainwissen), so daß sie selbständig den Auftrag ausführen können, oder sie besitzen Mittel und Werkzeuge, sich dieses Wissen zu beschaffen. Dieser Paradigmenwechsel steht erst ganz am Anfang
Es gibt fast so viele Definitionen des Begriffes "Agent", wie es Wissenschaftler, Entwickler und Journalisten gibt, die sich mit dieser Thematik befassen. An dieser Stelle werden einige Definitionen des Begriffes "Agent" vorgestellt, die sich dem Begriff aus jeweils einer andere Sichtweise nähern und unterschiedliche Eigenschaften, die einen Agenten ausmachen sollen, beleuchten. Es soll dabei herausgestellt werden, wodurch sich Agenten von gewöhnlichen Programmen unterscheiden.
Der erste Definitionsansatz soll dabei aus einem "normalen" Lexikon stammen:
"Jeder im Auftrag oder Interesse eines anderen Tätige"
Als Beispiele werden Handelsvertreter, Versicherungsvertreter und Spione aufgeführt. Es ist offensichtlich, daß diese Definition, obgleich sie im Kern schon das Wesen eines "Agenten" umreißt, nicht geeignet ist, den Begriff für den Kontext dieser Arbeit zu definieren. Wir kommen jedoch ganz am Ende der Arbeit nochmals auf diese Definiton zurück.
"Agents can be considered personal software assistants with authority delegated from their users."
Es wird schnell klar, daß auch diese Definitionen nicht ausreichen, den Agentenbegriff ausreichend zu definieren. Die Forderung, ein Agent solle eine Aufgabe für den Benutzer erledigen, muß in dieser Form wohl an jede Art von Werkzeug gestellt werden. Der Autor der ersten Definition erweitert diese im folgenden dann auch um die Erwartung, daß Agenten automatisch immer wiederkehrende Aufgaben ausführen. Die zweite Definition fordert eine Art von Autorität oder Befugnis, die einem Agenten von seinem Benutzer übertragen werden soll. Woraus diese Befugnis genau bestehen soll und was der Agent damit anfangen können soll, bleibt unklar.
Diese Definition fügt einen wichtigen Aspekt zur ersten Definition hinzu: Um sein Ziel zu erreichen, muß ein Agent mit seinem Besitzer, anderen Agenten und seiner Umgebung kommunizieren.
Die Kommunikation mit dem Besitzer führt zu Fragen des Designs einer adäquaten Benutzerschnittstelle: auf welche Art und Weise soll der Besitzer oder besser Auftraggeber eines Agenten diesem seine Wünsche am besten mitteilen? Soll dies über eine spezielle Programmiersprache erfolgen ("SUCHE günstigen Blumenhändler, KAUFE 10 rote Rosen"), oder verfügt der Agent über Mechanismen der Erkennung natürlicher Sprache? ("Ich brauche zehn rote Rosen."). Muß der Agent überhaupt instruiert werden, oder wird er von sich aus aktiv (Beispielsweise könnte er den Rosenkauf automatisch initiieren, wenn er weiß, daß ich heute Abend eine Freundin ins Kino abhole und ich aus diesem Anlaß normalerweise Blumen mitbringe).
Die Frage nach der besten Benutzerschnittstelle ist fast so alt wie Computer selbst; die Kommunikation mit anderen Agenten und der Umgebung wirft jedoch eine Reihe von neuen Fragen auf: In welcher Sprache tauschen Agenten Informationen aus? Wie wird sichergestellt, daß alle an der Kommunikation beteiligten Parteien auch das gleiche meinen?
Pattie Maes, Leiterin der Software Agents Group am MIT Media Lab, fordert, daß Agenten in komplexen und dynamischen Umgebungen agieren können sollen. Außerdem müssen Agenten selbständig sein, das bedeutet, daß sie den Großteil ihrer Aufgaben ohne direkte Intervention von Menschen ausführen und Kontrolle über ihren eigenen Zustand haben. Sie sollen sich also beispielsweise selbständig starten und beenden können. Auch in der Wahl der Mittel, mit denen sie ihre Aufgabe ausführen, sollen Agenten autonom handeln.
- Autonomie ("autonomy"): Agenten arbeiten ohne direkte Einflußnahme durch Menschen oder andere Systeme, haben eine Art von Kontrolle über ihren eigenen Zustand und können ihre Aktionen selbst planen.
- Sozialfähigkeit ("social ability"): Agenten kommunizieren mit anderen Agenten (und vielleicht Menschen) über eine Agentensprache ("agent communication language") [Genesereth, Ketchpel 1994, S. 48ff]
- Reaktionsfähigkeit ("reactivity"): Agenten nehmen ihre Umwelt (die reale Welt, einen Benutzer, eine Menge anderer Agenten, das Internet oder alles kombiniert) war und reagieren auf Änderungen, die in dieser eintreten.
- Selbständigkeit ("proactiveness"): Agenten reagieren nicht einfach nur auf Reize, die sie aus ihrer Umwelt empfangen, sie können auch selbständig aktiv werden, um ihre Ziele zu erreichen.
In der Informatik wird diese Bedeutung eines Agenten als selbständige, parallel ablaufende Entität, die ihren eigenen Zustand einkapselt und mit anderen Entitäten kommuniziert, als eine natürliche Erweiterung der Objektorientierung angesehen.
Insbesondere im Feld der Künstlichen Intelligenz wird mit dem Begriff "Agent" jedoch meist eine "stärkere" Bedeutung verknüpft. Zu den oben dargestellten Eigenschaften soll ein Agent stärker menschliche Züge tragen. Er soll Bewußtseinszustände wie Wissen, Überzeugung, Absicht und Verantwortung implementieren oder sogar Gefühle ausdrücken können (Hat ein Agent beispielsweise irgendwann mal keine Lust mehr, immer wieder die gleiche Aufgabe auszuführen? [Bates 1994, S. 122ff]).
Eine andere Art, um Software-Agenten stärker anthropomorphe Züge zu geben (eine Forderung, die schon in [Foner 1993] als Grundvoraussetzung für einen Agenten gestellt wird.) ist es, sie visuell als animierte Personen oder Gesichter darzustellen [Maes 1994, S. 36].
Andere Eigenschaften von Agenten, die in [Woolridge, Jennings 1995, S.6] angeführt werden, sind Mobilität ("mobility"): Die Eigenschaft eines Agenten, sich in Netzwerken zu bewegen, Wahrhaftigkeit ("veracity"): Die Annahme, daß ein Agent nicht absichtlich falsche Informationen übermittelt, Gutmütigkeit ("benevolence"): Der Ausschluß von Zielkonflikten sowie rationales Verhalten ("rationality"): Ein Agent handelt so, daß er seine Ziele erreichen kann und wird wissentlich keine Schritte ausführen, die dieses verhindern.
Als Kriterium zur Unterscheidung von Agenten und herkömmlicher Software verliert Intelligenz weiter an Bedeutung. Ein großes, komplexes Expertensystem mag vielleicht intelligente Vorschläge zur Lösung bestimmter Probleme liefern, damit ist es aber nicht automatisch ein Agent. Intelligenz ist kein hinreichendes Kriterium für Agenten.
Intelligenz ist keine Eigenschaft, die für Agenten vorausgesetzt wird, sondern eine subjektive Einsicht über deren Verhalten als Folge der Kombination aller ihrer Eigenschaften.
Abbildung 1 - Klassifikation Intelligenter Agenten nach IBM
aus
[IBM
1995]
Diese Form der Klassifikation dient als Grundlage der in dieser Arbeit in Abschnitt 4.4 erstellten Klassifikation von Agenteneigenschaften. Die Bezeichnung der Achsen nach IBM korrespondiert grob mit den Ebenen Kommunikationsfähigkeit, Mobilität und Benutzermodell in der Klassifikation dieser Arbeit.
Als Abschluß dieses Abschnittes soll ein Zitat zum Thema Intelligenz von Alan Turing dienen:
"Inwieweit wir das Verhalten eines Objektes als intelligent beurteilen, hängt sowohl von unserer eigenen Intelligenz und unserer Ausbildung als auch von den Eigenschaften des fraglichen Objektes ab. Wenn wir in der Lage sind, sein Verhalten zu erklären und vorherzusagen, oder wenn ihm keine noch so einfachen Regeln zugrunde liegen, so sind wir wenig geneigt, ihm Intelligenz zuzuschreiben. Deshalb ist es möglich, daß ein und dasselbe Objekt von einer Person als intelligent, von einer anderen Person als nicht intelligent beurteilt wird; letztere hat die Regeln für das Verhalten des Objektes herausgefunden."
In den Definitionen ist von "Agenten" ("agents"), "autonomen Agenten" ("autonomous agents") und "Software Agenten" ("software agents") die Rede. Im Rahmen dieser Arbeit werden alle diese unterschiedlichen Bezeichnungen als verschiedene Ausprägungen eines Agenten verstanden und nicht weiter differenziert. Hier geht es schließlich nur um Software-Agenten im Gegensatz zu physischen Agenten (Robotern). Und ein Grad an Autonomie ist, folgt man der Liste von Anforderungen in [Woolridge, Jennings 1995], ja sogar Voraussetzung für einen Agenten.
In Abschnitt 4.4 wird zum Abschluß dieses Kapitels über Intelligente Agenten eine Klassifikation erstellt, die sich an [Woolridge, Jennings 1995] anlehnt.
In einem komplexen System gibt es nach diesem Modell Agenten, die jeweils ein oder mehrere Elemente des Systems überwachen, einfache Fehler selbst beheben oder gemäß einer Eskalationsstrategie übergeordnete Instanzen bis schließlich hin zu einer zentralen Managementstation benachrichtigen, sofern Situationen eintreten, die der Agent nicht selbst lösen kann. Die Agenten sollen auch aus früheren Fehlern lernen und automatisch Schlüsse ziehen können, wenn ähnliche Situationen erneut auftreten [Gürer et al. 1996].
Agenten können sich über die Zeit hinweg den Bedürfnissen und Aufgaben eines bestimmten Benutzers anpassen, indem sie seine Interessen, Vorlieben und Gewohnheiten Schritt für Schritt kennenlernen und ihm so - ganz wie ein menschlicher Assistent - immer mehr Aufgaben abnehmen und autonom Entscheidungen im Sinne des Benutzers treffen können.
Auch die aktive Suche nach Information läßt sich durch den Einsatz von Agenten vereinfachen. Durch den Zugriff auf immer mehr Informationsquellen und die zunehmende Bedeutung des WWW, werden Agenten benötigt, um relevante Informationen zu finden, sie zu sortieren und anderen, beispielsweise innerhalb einer Arbeitsgruppe, zugänglich zu machen.
Abbildung 2 - Management von Geschäftsprozessen
aus [O'Brien, Wiegand 1997, S. 134]
Nach [Jennings, Woolridge 1996] ist der Einsatz von Agenten ein natürlicher Weg, die Verteilung von Daten, Steuerung und Ressourcen abzubilden.
- Eine weitere Dimension zur Klassifizierung von Agenten ist die Frage, in wie weit sie den Benutzer repräsentieren und unter welchem Grad an Autonomie in seinem Auftrag handeln können. Angefangen von Programmen, die ohne jede Art von Autonomie handeln, indem sie den Benutzer bei jeden Schritt ihrer Tätigkeit explizit einbeziehen, sind mannigfaltige Grade von Autonomie denkbar. Beispielsweise ein Agent, der zwar selbständig aufgrund eines Benutzerprofils Dokumente sucht, diese aber nicht automatisch anfordert (was vielleicht mit Kosten verbunden wäre), sondern diese Entscheidung dem Benutzer überläßt. Ein anderes Beispiel ist ein Agent, der eingehende eMails überprüft, ungewollte eMails automatisch löscht und auf bestimmte Anfragen automatisch antworten kann. Ein Agent mit dem höchsten Grad an Autonomie könnte seinen Benutzer überraschen, indem er für Freitag Abend selbständig Kinokarten reserviert, zwei Termine deswegen verlegt und nach dem Kino einen Tisch beim Italiener reserviert, weil die Freundin per eMail ein Treffen für Freitag Abend vorgeschlagen hat. Das Vertrauen, das der Benutzer einem Agenten entgegenbringt, ist als andere Seite der gleichen Medaille zu sehen: Der Benutzer wird nur bereit sein, einem Agenten so viel Autonomie zuzugestehen, wie weit er ihm Vertrauen schenkt.
- Damit Agenten für den Benutzer sinnvolle Aufgaben wahrnehmen können, müssen sie wissen, was sie für ihn erledigen sollen. Am unteren Ende der Skala, die Benutzermodell genannt werden soll, befinden sich prozedurale Ansätze, eine direkte Benutzerschnittstelle, bei der der Benutzer genau die Tätigkeiten spezifiziert, die für ihn erledigt werden sollen. Nur wenig elaborierter ist der Ansatz, den Benutzer selbst ein Profil erstellen zu lassen, beispielsweise in der Form von Regeln, aus denen das System dann Schlüsse zieht. Höher entwickelte Ansätze erlauben es dem System selbständig ein Benutzermodell zu erstellen und zu verstehen, was der Benutzer erreichen will. Weiterführende Entwicklungen erlauben ein selbständiges Planen von Aktionen, um ein bestimmtes Ziel zu erreichen, und ein Lernen sowohl in Bezug auf das Verhaltens von Benutzern als auch in Bezug zur Umgebung des Agenten, den Ressourcen auf denen er agiert. Solch ein System kann selbständig neue Zusammenhänge und Verbindungen entdecken und diese anwenden, um Benutzerwünsche besser erfüllen zu können.
- Am unteren Ende der Einteilung nach Kommunikationsfähigkeit eines Agenten befinden sich Agenten, die ausschließlich mit dem Benutzer kommunizieren und keinerlei Interaktion mit anderen Agenten oder Systemelementen aufweisen. Obwohl solche Systeme schwer vorstellbar sind, gibt es doch mit sogenannten "Chatterbots" als eine Art "Believable Agents"[7] 4.4.2.1 eine große Menge von Programmen, die in diese Kategorie fallen und "mehr" sind, als beispielsweise ein Taschenrechner. Des weiteren gibt es Systeme, die mit dem Benutzer und einer oder mehreren bestimmten Systemelementen oder Anwendungen kommunizieren können. "Interface Agents"[8] 4.4.2.3 als neue Form der Benutzerschnittstelle oder Hilfesysteme fallen in diese Kategorie. Die Möglichkeit einer zusätzlichen Kommunikation mit anderen Agenten ist eine grundlegende Eigenschaft von Multi Agenten Systemen.
- In vernetzten Umgebungen können Agenten ihre Aufgabe lokal auf einem Netzknoten ausführen, oder sich selbst durch das Netzwerk bewegen. Diese mit Mobilität bezeichnete Eigenschaft eines Agenten kann die beiden Ausprägungen statisch oder mobil annehmen. Auch lokale Agenten können netzweite Ressourcen benutzen.
- stationär und lokal: Der Agent residiert auf der Benutzerseite des Netzwerkes, d.h. auf dem lokalen Computer (Client). Er mag zwar seine Umwelt auf dem lokalen und entfernten Systemen über eine Art von Sensoren wahrnehmen, bewegt sich jedoch nicht selbst durch das Netz. Auch Multi Agenten Systeme, die lokal und stationär arbeiten, sind denkbar.
- stationär und entfernt: Der oder die Agenten residieren an einer festen Stelle außerhalb des lokalen Computersystems (Server). Der Benutzer kommuniziert über das Netzwerk mit ihnen und sie erledigen von ihrer Position aus Aufgaben für ihn.
- mobil: Mobile Agentensysteme[9] 4.4.2.5 zeichnen sich dadurch aus, daß der oder die Agenten (bei mobilen Agentensystemen handelt es sich in der Regel um Multi Agenten Systeme), sich durch das Netzwerk bewegen (das bedeutet, mitsamt ihren Programmcode und allen Daten) und auf verschiedenen Systemen zur Ausführung gelangen, um ihre Aufgabe zu erfüllen.
- Die Architektur des Agenten (deliberativ, reaktiv, hybrid, heterogen (siehe Kapitel 5.1.6)) kann ebenfalls als Klassifikationsebene herangezogen werden.
Während Selbständigkeit, Autonomie, Benutzermodell und Kommunikationsfähigkeit sicherlich Schlüsselaspekte eines intelligenten Agenten darstellen, sind Eigenschaften wie Mobilität oder Architektur als neutrale Eigenschaften zu sehen. Wie in Kapitel 4.2.5 und Kapitel 5.1.1.4 beschrieben, soll "Intelligenz" nicht als eine diskret modellierte und zu messende Eigenschaft von Agenten angesehen werden, sondern sich aus der Benutzerwahrnehmung der Kombination insbesondere aus den Schlüsseleigenschaften ergeben.
Abbildung 3 - Klassifikation Intelligenter Agenten
Die Bedeutung der einzelnen Eigenschaften muß auch in Abhängigkeit der jeweiligen Anwendung unterschiedlich gewichtet werden. Für einen "Interface Agent" beispielsweise kann ein elaboriertes Benutzermodell wichtiger sein als die Kommunikationsfähigkeit mit anderen Agenten
Abbildung 4 - Spence's Bar (Extempo Systems)
aus
[Extempo
1997][10]
In [Bates 1994] wird die Bedeutung der Modellierung von Gefühlen für die Glaubwürdigkeit eines Agenten-Charakters herausgestellt. Im Rahmen des Oz-Projektes an der Carnegie Mellon Universität [Oz 1997] werden durch Computer animierte Figuren, die sogenannten Woggles, entwickelt, die in künstlichen Welten selbständig agieren können.
Extempo Systems [Extempo 1997] entwickeln anthropomorphe Agenten, die mit Menschen kommunizieren sollen. Als Anwendungsbeispiel wird eine Bar mit einer virtuellen Barmixerin vorgestellt, mit der man sich online "unterhalten" kann.
"Extempo's software provides the "minds" for characters that can be integrated with a variety of dialog, animation, and robotic systems to create life-like, intelligent and surprising improvisational behavior."
Eine Möglichkeit zum Einsatz derartiger Agenten sieht Extempo Systems auch in der Onlinepräsentationen von Unternehmen im WWW.
Als letztes, am weitestgehende Beispiel für Believable Agents dienen komplette, virtuelle Welten, wie sie beispielsweise Black Sun Interactive [Blacksun 1997] entwickelt. In diesen dreidimensionalen VRML[11]-Welten bewegen sich durch Menschen gesteuerte, anthropomorphe Agenten, Avatare genannt, interagieren miteinander und können Dienste in Anspruch nehmen, die ihnen von computergesteuerten Avataren angeboten werden. Solche Welten gibt es für Firmen und Organisationen, zur Unterhaltung aber auch als virtuelle Messen. Beispielsweise wurde die Networld-Interop 1996 in Frankfurt/Main auch als virtuelle Messe angeboten [Blacksun 1997][12].
Ein hoher Grad an Selbständigkeit und Autonomie sind wichtige Aspekte dieses Agententyps. Die Architektur des Agentensystems ist letztlich unwichtig, die verlangte Kommunikationsfähigkeit hängt von der jeweiligen Aufgabe ab. Die vorgestellten Beispiele sind nicht mobil. Ein elaboriertes Benutzermodell ist jedoch der Schlüsselfaktor für Believable Agents.
Das "Pleiades project" [Pleiades 1996] der School of Computer Science an der Carnegie Mellon University soll als Beispiel für die Architektur derartiger Systeme angeführt werden.
Zwei Abstraktionsstufen von Agenten interagieren miteinander. Die "Task Assistants" erledigen eine bestimme Aufgabe für den Benutzer, beispielsweise vereinbaren sie Termine oder sammeln interessanten Newsartikel. Diese Agenten arbeiten mit andere Agenten der gleichen Abstraktionsebene zusammen, um zum Beispiel Termine zu koordinieren. Die Informationen, die sie für ihre Arbeit benötigen, liefern ihnen Agenten einer zweiten Abstraktionsebene, die "Information Assistants". Diese werten unterschiedliche Informationsquellen aus und können ebenfalls mit anderen Agenten der gleichen Abstraktionsebene zusammenarbeiten.
Abbildung 5 - Systemdiagramm des Pleiaden-Projekts
nach
[Pleiades
1996][14]
Der Visitor Host ermittelt zuerst den Namen, Interessen, aktuelle Projekte sowie die Organisation des Besuchers. Danach sucht er Personen, die ihn vermutlich treffen möchten und vereinbart über die Kalenderagenten dieser Personen Termine für diese Treffen [Nwana 1996, S.207].
Collaborative Agents sind selbständig und handeln autonom. Sie können ihr Benutzermodell auf unterschiedliche Art und Weise aufbauen. Kommunikation findet zwischen Agenten, Benutzern und Anwendungen statt, Collaborative Agents müssen nicht mobil sein.
Durch den Einsatz von Interface Agents soll nach [Maes 1994] eine neue Art von Benutzerschnittstelle zu Computern entstehen, in der nicht mehr direkte Manipulation sondern Delegation und Kooperation das Verhältnis zwischen Mensch und Maschine bestimmen. Maes stellt zwei Kernprobleme von Interface Agents heraus:
Das erste Problem ist die Frage nach der Kompetenz des Agenten: Wie erlangt er das Wissen, um dem Benutzer helfen zu können? Das zweite Problem besteht aus der Frage, wie man es erreichen kann, daß der Benutzer dem Agenten vertraut, wenn dieser ihm Ratschläge erteilt oder Aufgaben für ihn wahrnimmt.
Der Ansatz einer selbständig lernenden Architektur, wie sie im letzten Abschnitt beschrieben ist, stellt für Maes die Lösung des Problems dar. Kompetent erlangt der Agent durch Beobachten des Benutzers und Vertrauen dadurch, daß er dem Benutzer nur nach und nach immer mehr Aufgaben abnimmt. Dieses langsame Übernehmen von Aufgaben geschieht für den Benutzer transparent; das bedeutet, er kann immer genaue Erklärungen verlangen, wieso der Agent nun gerade etwas tut, und kann ihn auf einfache Art und Weise dazu bringen, dies in Zukunft nicht mehr zu tun.
In [Pearson 1996] werden verschiedene Funktionen von Interface Agents unterschieden: sie können beratend oder anleitend tätig sein, dem Benutzer bei der Ausführung von Aufgaben helfen, als Stellvertreter fungieren oder bei der Suche nach und dem Filtern von Information unterstützen.
Abbildung 6 - Interface Agents
nach
[Maes
1994, S.33]
"This is only "Version 1.0". Future revs of the Assistant will be monitoring our every keystroke, tracking how long we "dwell" on a particular menu oder toolbar icon, poderung what kind of question we have asked in he past, and guessing what we might be trying in the future".
Die technischen Voraussetzungen für einen Erfolg der Assistenten scheinen gegeben zu sein, jedoch führen Vorstellungen von einem den Benutzer beobachtenden Computerprogramm schnell, wie Maes das vorhergesehen hat, zu Assoziationen von einer Überwachung durch die Maschine, die sich in Überschriften niederschlagen wie
"Office 97 - or Office 1984. Move into Microsoft's suite and Big Brother Paper Clip will be watching you."
Ob die Assistenten jemals das Vertrauen ihrer menschlichen Benutzer erlange werden, bleibt eine spannende Frage.
Die wesentlichen Aspekte von Interface Agents sind das Benutzermodell, das im Laufe der Zeit aufgebaut werden muß, und die Selbständigkeit und insbesondere Autonomie, die sie im Laufe der Zeit gewinnen müssen. Kommunikation mit anderen Agenten kann wichtig sein, ist aber kein Schlüsselfaktor. Interface Agents sind in der Regel Einzelagenten.
Die Selbständigkeit und Autonomie von Information Agents ist weniger wichtig als ein zutreffendes Benutzermodell. Information Agents müssen in erster Linie mit den Informationslieferanten kommunizieren können. Sie können lokal, entfernt oder mobil arbeiten.
- Geringere Kommunikationskosten: Anstatt eine große Menge von Informationen von einem entfernten Server zu übertragen, um sie lokal zu verdichten oder die relevanten Teile zu filtern, kann ein mobiler Agent die Daten im Auftrag des Benutzers auf Serverseite bearbeiten und dann nur mit der relevanten Information zurückkommen. Dazu kommt, daß der Benutzer nicht ständig mit dem Netz in Verbindung stehen muß, während sein Agent Aufgaben für ihn erledigt.
- Beschränkte lokale Ressourcen: Auf Seiten des Benutzers können die Ressourcen zur Durchführung und Speicherung großer Datenbankabfragen nicht ausreichen. Ein kleiner mobiler Agent jedoch kann mit den nötigen Informationen versehen diese Aufgaben auf einem Server durchführen und nur mit dem Ergebnis zum lokalen Computer zurückkehren.
- Ein flexibler Ansatz für verteilte Systeme; neue Agenten, sowohl als Dienstanbieter als auch als Nachfrager, können einfach hinzugefügt werden, ohne das Gesamtsystem zu beeinträchtigen.
Den grundlegenden Unterschied zwischen dem bekannten Client-Server Paradigma verteilter Anwendungen und dem Ansatz über Mobile Agenten zeigt Abbildung 7.
Mobilen Agenten sind Objekte mit einem Verhalten, Zustand und Ort [Sommers 1997].
Die Aufgabe des Mobilen Agenten bestimmt sein Verhalten. Ein speziell für Mobile Agenten nötiges Verhalten ist die Bewegung von Ort zu Ort. Außerdem sind Nachrichten zwischen Agenten ebenfalls ein wesentlicher Bestandteil des Verhaltens Mobiler Agenten.
Der Zustand eines Mobilen Agenten, also sein Programmcode und alle seine Daten, müssen derart gekapselt (von der Umwelt abgeschirmt und eigenständig) sein, daß sie auf einfache Weise zu einem neuen Ort geschickt werden können, um dort wieder zur Ausführung zu gelangen. Die wesentlichen Ereignisse im Lebenszyklus eines Mobilen Agenten, durch die dessen Zustand geändert wird, sind seine Erzeugung ("creation"), das Ende ("disposal"), der Aufbruch zu einem neuen Ort ("dispatch"), die Ankunft an einem neuen Ort ("arrival") und die Kommunikation mit andere Agenten ("comunication").
Abbildung 7 - Client-Server und Mobile Agenten
nach
[White
1996]
Ein weiterer wesentlicher Aspekt Mobiler Agenten ist die Sicherheit. Die Sicherheit der zugrunde liegenden Systemumgebungen soll durch das Konzept der Orte gewährleistet werden. Jedoch muß auch den Agenten ein gewisses Maß an Schutz vor den Systemumgebungen gewährleistet werden, die ein Interesse daran haben könnten, an die Informationen der Agenten zu gelangen oder diese zu verändern [Green et al. 1997, S. 29].
Als ein Beispiel für den Einsatz Mobiler Agenten sei das Stormcast-Projekt an der Universität Tromso, Norwegen angeführt [Johansen 1997b]. Im Rahmen dieses Projektes, welches schon seit einigen Jahren läuft, werden Wetterinformationen (insbesondere Satellitenbilder) der See um Norwegen gesammelt und zur Verfügung gestellt. Auf Basis von TACOMA [Johansen 1997a] wird das System nun dahingehend weiterentwickelt, daß die Benutzer über ihren WWW-Browser einen Agenten erzeugen, und diesen dann zum Stormcast-Server schicken. Dort soll er aus der Menge von Daten und insbesondere Bildern die benötigten Informationen auswählen und schließlich nur mit diesen zum Benutzer zurückkehren. Durch den Einsatz von Agenten soll die zu übertragende Datenmenge reduziert werden.
Abbildung 8 - Orte für Mobile Agenten
nach
[MAF
1997, S. 5]
Eigenschaft
|
Vorteil
|
Mehrwert
|
Automation
|
Ausführen
sich wiederholender Aufgaben
|
Erhöhte
Produktivität
|
Anpassung
|
Anpassung
an Informationsverhalten
|
Reduzierter
Information-Overload
|
Benachrichtigung
|
Asynchrone
Mitteilungen
|
Verringerter
Aufwand
|
Lernen
|
Benutzerverhalten
erlernen
|
Vorausschauende
Unterstützung
|
Schulen
|
Benutzer
im gleichen Umfeld schulen
|
Geringerer
Schulungsaufwand
|
Mobilität
|
Entferntes
Ausführen von Tätigkeiten
|
Geringerer
Zeitaufwand
|
[4]: <http://www.microsoft.com/officefreestuff/office/assistants.htm>
[5]: Ein PDA ("Personal Digital Assistant") ist ein tragbare Kleinstcomputer.
[6] : siehe Abschnitt
[7]: siehe Abschnitt
[8]: siehe Abschnitt
[9]: siehe Abschnitt
[10]: <http://www.extempo.com/webBar/>
[11]: VRML ("Virtual Reality Markup Language") ist eine standardisierte Programmiersprache zur Erzeugung virtueller Räume.
[12]: <http://www.blacksun.de/cool/guide/trade.html>
[13]: siehe Abschnitt
[14]: <http://www.cs.cmu.edu/afs/cs.cmu.edu/project/theo-5/www/pleiades.ps.Z>