Agenten (Entwurf)

Kai Seidler, Berlin, Oktober '94.

Copyright 1997 Kai Seidler.

Der Ruf von Robotern, auch wenn sie gar nicht realweltlich existieren, sondern nur in der virtuellen Computerwelt, ist wirklich nicht besonders gut. Zunächst fallen de einem die SF-Horrorstories von amkolaufenden Robotern, die, im Glauben etwas Gutes zu tun, oft die Existens der gesamten Menschheit bedrohen. Sie wird dann aber doch immer noch von einem cleveren Helden gerettet.

Auch könnte einem das Bild von menschenleeren Produktionshallen in Erinnerung gerufen werden. Körperlich sind uns diese Roboter schon lange überlegen. Vielleicht könnten eines Tages virtuelle Roboter noch die geistige Arbeit übernehmen? Roboter aller Länder vereinigt euch und übernehmt die geistige Führung. Hups, da kommen schon wieder die SF-Geschichten hoch.

Was sind Agenten?

Das Agenten-Konzept basiert auf der Idee/Metapher von Agenten und Agenturen. Viele kleine selbständige Agenten schließen sich zu einer Agentur zusammen um so eine größere Aufgabe bewältigen zu können, zu der sie alleine niemals fähig wären. Diese Agenturen können sich dann wiederum wie Agenten verhalten und sich zu noch größeren Agenturen zusammenzuschließen, um dann noch gewaltigere Aufgaben zu erledigen. Marvin Minsky versucht so menschliche Intelligenz zu simulieren oder zu erklären.

Auf der Programmierebene angewendet und etwas vereinfacht gesehen, stellen die Agenten die Unterprogramme und die Agentur das Hauptprogramm dar. Allerdings sind diese Unterprogramme auch wiederum fertige funktionierende Programme. Diese Konzept erinntert etwas an die Mitte bis Ende der 80er so populäre Idee des objekt orientierten Programmieren. Was damals die Objekte waren, sind heute die Agenten. Das Agenten/Agenturen-Konzept ist aber wesentlich praktischer und mächtiger als der objektorientierte Ansatz. Die Objekte waren eben nur Gegenstände an und bestenfalls mit denen etwas gemacht wurde. Die Agenten sind da etwas aktiver. Agenten/Agenturen schreiben viel weniger vor, und sind somit wesentlich flexibler. Nur die Kommunikation zwischen den Agenten muß in einem vorbestimmten Format erfolgen.

Mir kommen die Agenten wie eine Weiterentwicklung der Objekte vor. Keine Ahnung ob da ein Zusammenhang besteht. Agenten sind hier also eine Programmiermethode.

Ein Agent ist ein Vermittler zwischen Mensch und Maschine.

Die sicherlich einfachste Form eines Agenten ist die einer Bedienoberfläche. So ein Agent erstreckt sich dann von einer simplen textorientierten zur komplexen grafischen click-and-fire Bedienoberfläche.

Bessere Agenten sind dann etwa die Assistenten. Ihnen wird dann schon ein eigenes Handeln gewährt. Sie rennen aber quasi immer noch ihrem Herrchen hinterher und sind bestenfalls zum Stöckchen oder Zeitungsholen geeignet.

Der letzte Agent ist der SF-Roboter, der, zwar auch einem Frauchen gehorcht, aber auch selbständigt handelt (und entscheidet).

Alle diese Agenten können dann nach dem Agenten/Agenturen-Konzept arbeiten und zusätzlich noch mit anderen Agenten kommunizieren und so Aufgaben erledigen, zu denen sie alleine gar nicht in der Lage wären. Das ist dann auch der Unterschied den ich zu den (eigenständigen) Robotern mache: Agenten arbeiten im Team, Roboter alleine. Ein Roboter benutzt vielleicht andere Agenten um an Informationen zu gelangen, doch hilft keinem anderen Agenten oder Roboter. Das ist allerdings auch nur eine begriffliche Unterscheidung. Ein hilfsbereiter Roboter kann leicht zu einen Agenten werden.

Und heute?

Die Agenten von heute sind noch weit entfernt davon sich eigenständig oder gar intelligent nennen zu dürfen. Das sind dummdusselige Maschienchen bzw. Programme. Ein durchschnittlicher Agent von heute ist zwar computerisiert, aber auch nicht wirklich schlauer als ein moderenes Haushaltsgerät. Agenten sind dumme Dinger, die für ein sehr spezielle Aufgabe programmiert werden und an wenig komplexeren oder einfach nur anderen Aufgaben scheitern. Eine Agent ist genauso wenig menschnlich oder intelligent wie eine Kaffeemaschiene. Nur versucht der Agent einen menschlichen Eindruck bei seinen menschlichen Gegenübern zu erzeugen.

Praktisch kann es heute auch noch keine funktionierenden Agenten geben. Der einzige Raum in dem sie überleben und gebraucht werden könnten ist das Internet. Nur leider verändert sich hier die Software und somit die Umgebung noch viel zu sehr. Programme verändern ihre Schnittstellen, oder werden von anderen Prgrammen verdrängt und ersetzt. Ein Mensch kann mit solchen Verändernungen leicht umgehen, ein Agent braucht konstante Schnittstellen zu seiner Umgebung.

Solange es diese Schnittstellen, vielleicht neben den für den Menschen bestimmten Schnittstellen, nicht gibt, ist auch das Benutzen von Robotern nicht effektiv möglich. Ein Mailprogramm wie elm, bräuchte eine zweite Schnittstelle, die nur für Agenten bestimmt ist. Nur so kann auch ein Agent Mails lesen und verschicken, ohne selbst eine komplettes Mailprogramm enthalten zu müssen. Das Mailprogramm würde dadurch wiederum auch zu einem Agenten werden.

Ausserdem weiß man auch nicht so recht, wie die Agenten und Agenturen funktionieren sollen. Die wichtigste Frage ist: Wer macht die Arbeit, die Agenten oder die Mechanismen die sie zu Agenturen zusammenfügt? Hält man die Agenten einfach, so muß viel Aufwand in die Agentursoftware gesteckt werden. Macht man die Agenten komplexer, kann die Agentursoftware einfacher sein.

Man hat also zwei Möglichkeiten. Welche ist die bessere? Die Agenten einfach zu halten und dafür einmalig eine gute Agenturarchitektur zu entwickeln ist sicherlich der elegantere und langfristig erfolgreichere Weg. In dieser Architektur sind dann Mechanismen zur Selbstorganisation enthalten, von denen jeder Agent profitieren kann. In die Agenten braucht nun nicht mehr so viel Entwicklungsarbeit gesteckt werden. Das Problem ist nur, wie soll man eine solche wirklich gute Agenturarchitektur entwickeln, die auch jeden zufrieden stellt und zwar möglichst schnell. Ist diese Agenturarchitektur schlecht, scheitert das ganze System. Egal wie gut oder clever die einzenen Agenten sind. Außerdem müßte so eine Agenturarchitektur zum Standard werden und je einfacher desto schneller wird sie zum Standard. Der zweite Weg scheint daher praktikabler.

Entwickelt und einigt man sich schnell auf eine einfache Agenturarchitektur, kann mit der Entwicklung der Agenten begonnen werden. Allerdings werden die Agenten nun sehr umfangreich, da die Agenturarchitektur nur die nötigstens Aufgaben übernimmt. Eine solche Architektur würde z.~B. nur das Format beschreiben und die Kommunikation in diesem Format ermöglichen. Was die einzelnen Agenten daraus machen, bleibt dann in ihrer Verantwortung.

Wie sich Agenten (an)fühlen

In diesem Abschnitt will ich beschreiben, wie sich so ein Roboter "anfühlen" muß, damit die Menschen, die mit ihm arbeiten, keine Horrorvisionen bekommen. Es wäre einfach schön, würden sie gerne mit ihm arbeiten.

Also, was haben wir heute? Wir haben Robter, die sich im Vergleich zu einer Waschmaschiene, im Entwicklunsstadium eines Waschbrettes befinden, und versuchen nun zu beschreiben, wie ein Roboter ausehen bzw. sich anfühlen muß, damit er als Waschmaschiene zu gebrauchen ist. Im übertragenen Sinne meine ich das jetzt.

Durchschaubar. Gehorsam (ighitt!). Sicher. Nicht Belästigen.

Etiquette für Agenten

Damit sich die Agenten zu Agenturen zusammenschliessen oder einfach nur zusammenarbeiten können, braucht es eine Etiquette für Agenten. Faktoren wie Rechner- und Netzbelastung können einfachst von der Agenturarchitektur oder dem darunter liegenen Betriebsystem geregelt werden. Sie brauchen nicht Bestandteil der Etiquette werden.

Richterinstanzen. Karmapunkte für hilfsbereite Agenten.

Des Agenten Zukunft

Ähnlich wie bei den Hardware-Robotern wird bei den Agenten wohl eine Entwicklung vom spezialisierten nur-linke-Autoblinker-anschraub-Roboter zum universellen Allesmögliche-anschraub-Roboter stattfinden. Aber am Anfang steht erstmal der Spezialist. Einstein hatte sich ja auch erst seine Spezielle Relativitätstheroie ausgedacht, bevor er die Allgemeine draufgab. Das Allgemeine ist wohl immer etwas schwieriger.