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.
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.
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.
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.
Richterinstanzen. Karmapunkte für hilfsbereite Agenten.