Inhalt

6. Agenten

Auch bekannt als intelligente Softwareagenten oder einfach Agenten, arbeitet diese Gruppe der KI-Forschung mit einfachen Anwendungen kleiner Programme, die den Nutzer in seiner Arbeit unterstützen. Sie können mobil sein (d.h. ihre Arbeit auf der einen Maschine beenden und auf einer anderen fortsetzen) oder auch statisch (nur auf einer Maschine). Sie sind normalerweise nur für eine Aufgabe konzipiert (und deswegen relativ einfach) und als Hilfe gedacht wie ein Assistent. Die bekannteste Verwendung dieses Anwendungstyps sind derzeit wohl die Web-Robots, die viele der Suchmaschinen (z. B. WebCrawler) verwenden.

Agent

Der Agent ist ein Prototyp für ein Informationsagentensystem. Er ist sowohl plattform- als auch sprachunabhängig, da er Informationen in einfachen gepackten Zeichenketten speichert. Er kann gepackt werden und über jedes Netzwerk mit jedem Format versandt werden, da er in sich selbst seinen aktuellen Zustand speichern kann.

agentTool

Ein weiteres Java-basiertes Agentenentwicklungssystem. Recht einzigartig dabei ist die Betonung der Verwendung eines GUI zur Systementwicklung, wodurch »semi-automatisch Multiagentensysteme synthetisiert werden, um diese Anforderungen zu erfüllen«. Man benötigt übrigens einen Java-fähigen Browser zum Download. :P

Aglets Workbench

Ein Aglet ist ein Java-Objekt, das sich von einem Host im Internet zu einem anderen bewegen kann. Das heißt, ein Aglet, das auf einem Host ausgeführt wird, kann plötzlich seine Ausführung stoppen, sich zu einem anderen Host begeben und dort die Ausführung fortsetzen. Wenn sich das Aglet bewegt, nimmt es sowohl seinen Programmcode als auch seinen aktuellen Zustand (die Daten) mit. Ein eingebauter Sicherheitsmechanismus macht es sicher für einen Computer, unzertifizierte Aglets laufen zu lassen. Die Java Aglet API (J-AAPI) ist ein vorgeschlagener Standard zur Verbindung von Aglets und ihren Umgebungen. J-AAPI enthält die Methoden zur Initialisierung eines Aglets, für das Message-Handling, für die Versendung, das Zurücknehmen, die Deaktivierung/Aktivierung, das Klonen und die Anordnung des Aglets. J-AAPI ist einfach, flexibel und stabil. Anwendungsentwickler können plattformunabhängige Aglets schreiben und erwarten, daß sie auf jedem Host laufen, der J-AAPI unterstützt.

A.L.I.C.E.

Die ALICE-Software implementiert AIML (Artificial Intelligence Markup Language), eine nichtstandardisierte, noch in der Entwicklung befindliche Beschreibungssprache zur Erzeugung von Chat-Robots. Das vorrangige Design-Feature von AIML ist Minimalismus. Verglichen mit anderen Chat-Robot-Sprachen ist AIML vielleicht die einfachste. Die Mustervergleichs-Sprache ist sehr einfach, z. B. erlaubt sie nur ein einziges Wildcardzeichen ('*') pro Muster. AIML ist eine XML-Sprache, was darauf hindeutet, daß sie bestimmten grammatikalischen Regeln unterworfen ist. Die Auswahl von XML gestattet die Integration mit anderen Tools wie XML-Editoren. Ein weiterer ausschlaggebender Punkt für XML ist dessen eingängige Handhabung, besonders für Menschen mit HTML-Erfahrung.

Ara

Ara ist eine Plattform zur portablen und sicheren Ausführung mobiler Agenten in heterogenen Netzen. Mobile Agenten in diesem Sinn sind Programme mit der Fähigkeit, ihren Wirtsrechner während der Ausführung zu wechseln, wobei ihr internen Zustand erhalten bleibt. Dies erlaubt ihnen, Interaktionen lokal abzuhandeln, die sonst entfernt durchgeführt werden mußten. Das spezifische Ziel von Ara im Vergleich zu ähnlichen Plattformen liegt darin, die volle Funktionalität mobiler Agenten zur Verfügung zu stellen und dabei etablierte Programmiermodelle und -sprachen so weit wie möglich zu erhalten.

BattleBots

BattleBots ist ein KI-Programmierspiel, in dem man den Bot durch Auswahl der Ausrüstung und Programmierung seiner CPU entwerfen und ihn dann mit anderen Bots kämpfen lassen kann. Der Wettkampf kann mit Teams geführt werden und hat bestimmte Spielregeln.

Die Ausrüstung für den Bot umfaßt Waffen, eine Engine, Scanner, eine CPU usw. Die Programmiersprache hängt vom CPU-Typ ab und ist assembler-ähnlich.

Bee-gent

Bee-gent ist ein neuer Typus eines Entwicklungssystems, das ein 100% reines Agentensystem ist. Im Gegensatz zu anderen Systemen, die nur etwas Gebrauch von Agenten machen, »agentifiziert« Bee-gent vollständig die Kommunikation, die zwischen den Software-Anwendungen stattfindet. Die Anwendungen werden zu Agenten, und alle Nachrichten werden durch Agenten übermittelt. Dadurch gestattet es Bee-gent, flexible offene verteilte Systeme zu entwickeln, die optimalen Gebrauch von den existierenden Anwendungen machen.

Bond

Noch ein Java-Agentensystem...

Bond ist ein Java-basiertes System verteilter Objekte und ein Agentensystem. Es beinhaltet eine nachrichtenbasierte Middleware und damit verbundene Dienste wie Verzeichnis, Persistenz, Monitoring und Sicherheit. Bond gestattet die einfache Erstellung von Multiagentensystemen und verteilten Anwendungen. Eine weitere Verwendung von Bond wird ein Virtuelles Labor sein, das Datenbeschreibung und Metacomputing unterstützt.

Cadaver

Cadaver ist eine simulierte Welt von Cyborgs und Natur in Echtzeit. Das Schlachtfeld besteht aus Wäldern, Feldern, Wasser, Gras, Leichen (natürlich!) und vielen anderen Dingen. Der Spieleserver verwaltet das Spiel und die Regeln. Man startet das Spiel und verbindet einige Clients. Die Clients kommunizieren über ein sehr einfaches Protokoll mit dem Server. Sie können Cyborgs bestellen um die Felder abzuernten, Feinde zu bekämpfen oder den Wald abzuholzen. Das Spiel ist nicht gedacht, von Menschen gespielt zu werden! Es gibt zu viel zu steuern. Nur für Freaks: einfach über Telnet zum Server verbinden und die Kommandos per Hand eingeben. Die Idee ist, Clients mit künstlicher Intelligenz zu schreiben, die die andere künstliche Intelligenz bezwingen. Man kann eine Sprache (und das Betriebssystem) auswählen um diese Aufgabe zu bewältigen. Es reicht aus, ein Programm zu schreiben, das auf den Standardein- und ausgabekanälen kommuniziert. Dann kann man Programme wie »socket« verwenden, um die Clients mit dem Server zu verbinden. Es ist nicht nötig, TCP/IP-Code zu schreiben, obwohl ich das getan habe :) Der Kampf sollte nicht langweilig sein, und deswegen gibt es einen sogenannten Spionagechef- Client, der die Aktionen graphisch auf dem Bildschirm darstellt.

Cougaar

Cougaar ist eine javabsierte Architektur für die Konstruktion großer verteiler agentenbasierter Anwendungen. Es ist das Produkt eines mehrjährigen DARPA-Forschungsprojektes für große Agentensysteme und beinhaltet nicht nur die Kernarchitektur, sondern auch eine ganze Reihe von Demonstrations-, Visualisierungs- und Management-Komponenten, die die Entwicklung komplexer, verteilter Anwendungen erleichtern. [Noch ein Java-basiertes Agentensystem -- d. Hrsg.]

D'Agent (was AGENT TCL)

Ein transportabler Agent ist ein Programm, das von einer Maschine auf eine andere in einem heterogenen Netzwerk migrieren kann. Das Programm wählt aus, wann und wohin es migriert. Es kann seine Ausführung zu einem beliebigen Zeitpunkt stoppen, sich zu einer anderen Maschine begeben und die Ausführung auf dieser Maschine fortsetzen. Zum Beispiel migriert ein Mailagent mit einer Mail zunächst zu einem Router und danach in die Mailbox des Empfängers. Der Agent kann beliebige komplexe Verarbeitungen auf jeder Maschine vornehmen, um sicherzustellen, daß die Nachricht den gewünschten Empfänger erreicht.

Dunce

Dunce ist ein einfacher ChatterBot (KI zum Unterhalten) und eine Sprache zur Programmierung solcher ChatterBots. Es verwendet einen einfachen RegEx- Mustervergleich und einen semi-neuralen Regel/Antwort-Feuermechanismus (mit Erregungs- und Beruhigungszyklen).

FIPA-OS

FIPA-OS ist eine OpenSource-Implementation der vorgeschriebenen Elemente innerhalb der FIPA-Spezifikation für die Agenten-Interoperabilität. Zusätzlich zur Unterstützung der FIPA-Konzepte stellt FIPA-OS auch eine komponentenbasierte Architektur zur Verfügung, um die Entwicklung domainspezifischer Agenten zu unterstützen, die sich die Dienste der FIPA-Agenten zunutze machen können. Es wurde in Java geschrieben.

FishMarket

FM - Das FischMarkt-Projekt, wird vom Artificial Intelligence Research Institute (IIIA-CSIC) geleitet. FM ist ein agenten-vermitteltes elektronisches Auktionshaus, das sich in eine Testumgebung für elektronische Auktionsmärkte entwickelt hat. Das System, das geplant und implementiert war als Erweiterung von FM96.5 (eine Java-basierte Version des Fischmarkt-Auktionshauses), erlaubt es, Handels-Szenarios zu definieren, die auf den Fischmarkt-Auktionen basieren (holländische Auktionen). FM stellt das System zur Verfügung, worin Agentendesigner kontrollierte Experimente ausführen können. Dies geschieht in der Weise, daß eine Vielzahl von experimentiellen Marktszenarios ansehen, die wir als Spielszenen zur konkurrierenden Natur dieser Domäne betrachten. Verschiedene Stufen der Realität und Komplexität können spezifiziert, aktiviert und aufgezeichnet werden sowie handelnde (Käufer und Verkäufer) heterogene (Mensch und Software) Agenten verglichen, angepaßt und ausgewertet.

GNU Robots

GNU Robots ist ein (Unterhaltungs-)Spiel, in dem man ein Programm für einen kleinen Roboter kontruieren kann, den man dann die Welt erkunden lassen kann. Die Welt ist mit Feinden gefüllt, die einem wehtun können, mit Objekten, mit denen man zusammenstoßen kann und mit Nahrung, die man essen kann. Das Ziel des Spieles ist es, soviel Preise wie möglich zu sammeln, bevor man von einem Feind getötet wird oder keine Energie mehr hat. Die Roboter können in Guile-Schema oder unter Verwendung einer graphischen Benutzeroberfläche geschrieben werden.

Grasshopper

Ein weiteres Java-Agentensystem, voll ausgestattet und aktiv entwickelt. Es ist kommerziell, aber frei verfügbar. Es zielt von seiner Entstehung her auf eingebettete Systeme ab.

Hive

Hive ist eine Java-Software-Plattform zur Erstellung verteilter Anwendungen. Unter Verwendung von Hive können Programmierer leicht Systeme entwickeln, die sich mit dem Internet verbinden und Daten daraus nutzen. Im Grunde genommen ist Hive eine Umgebung, in der verteilte Agenten leben, kommunizieren und sich bewegen können, um Anwendungen auszuführen. Wir versuchen, das Internet lebendig zu machen.

ICM

Das Inter-Agent Communication Model (ICM) ist ein Kommunikationsmechanismus, der für das Senden von Nachrichten zwischen Agenten im asynchronen Modus benutzt werden kann. Das beabsichtigte Anwendungsfeld ist ein Transportmechanismus für Agentenverständigungssprachen (ACLs) wie z. B. KQML und FIPAs ACL.

Jacomma

Jacomma ist eine Agentenentwicklungsplattform zur Entwicklung verteilter, mobiler und reaktiver Informationsagenten in heterogenen Kommunikationsfähigkeiten. Sie wurde in Java und JPython programmiert.

Jacomma stellt ein Entwicklungssystem und und eine Ausführungsumgebung zur Verfügung, die auf der Infrastruktur des Interagenten-Kommunikationsmodells aufsetzt. Das ICM definiert ein Kommunikationsprotokoll, eine Nachrichtenweiterleitungs-Architektur und eine low-level Kommunikations- Infrastruktur zum Nachrichtenaustausch. Die Kommunikation ist asynchron und basiert auf TCP-Sockets.

Für ICM existiert ein Eintrag in diesem Howto, oder man kann es über einen Link auf dieser Seite finden.

Jade

JADE (Java Agent DEvelopment Framework) ist ein vollständig in Java geschriebenes Softwaresystem. Es vereinfacht die Implementierung von Multiagentensystemen über eine Middleware, die den Forderungen der FIPA- Spezifikationen gerecht werden möchte durch eine Sammlung von Werkzeugen, die die Fehlersuche und die Entwicklungsphase unterstützen. Die Agentenplattform kann über mehrere Maschinen verteilt sein (die nicht notwendigerweise dasselbe Betriebssystem haben müssen) und die Konfiguration kann über eine entfernte Benutzeroberfläche gesteuert werden. Sie kann sogar während der Laufzeit durch die Umsetzung von Agenten von einer Maschine zu einer anderen geändert werden (wenn das notwendig wird).

JAM Agent

JAM unterstützt sowohl top-down, zielbasiertes Schließen als auch bottom-up, datengetriebenes Schließen. JAM wählt Ziele und Pläne basierend auf der größten Priorität, wenn das Metaebenen-Schließen nicht verwendet wird. Oder es verwendet nutzerentwickelte Metaebenen-Pläne, falls sie existieren. JAMs Konzeption von Ziel und Zielerreichung ist mehr klassisch definiert (UMPRS ist stärker behavioristisch performance-basiert als wirklich zielbasiert) und unterscheidet zwischen Plänen zur Zielerreichung und Plänen, die nur das Verhalten codieren. Die implementierten Zieltypen beinhalten die Ausführung (einen spezifischen Welt-Zustand zu erreichen), die Erhaltung (Wiedererlangen eines spezifischen Welt-Zustandes) und die Vorführung. Die Ausführung mehrerer gleichzeitiger Ziele wird unterstützt, und zwar mit zeitweiliger Zurückstellung und auch Wiederaufnahme-Möglichkeit für jeden Zielthread. JAM-Pläne besitzen explizite Vorbedingungen und Laufzeitattribute, die ihre Anwendbarkeit einschränken, ein Nachbedingungs-Attribut, und eine Sektion mit Planattributen zur Spezifizierung von plan-/domänenspezifischen Planmerkmalen. Folgende Plankonstruktionen sind verfügbar: Sequenz, Iteration, Unterziele, atomare (nicht unterbrechbare) Plansegmente, verzweigte deterministische und nicht-deterministische bedingte Ausführung, parallele Ausführung mehrerer Plansegmente, ziel- oder weltzustandsbasierte Synchronisation, eine explizite Fehlerbehandlungs-Sektion und einfache Javafunktionen, während in JAM erstellt wird. Darüberhinaus gibt es noch den Aufruf vordefinierter (d. h. alter) Klassen-Member über die Möglichkeiten der Java Reflectionklasse, ohne sie in JAM einbauen zu müssen.

JATLite

JATLite stellt eine Sammlung von Javapaketen zur Verfügung, die den Bau von Multiagentensystemen mit Java erleichtert. JATLite stellt nur schlanke, kleine Mengen von Paketen zur Verfügung, so daß der Entwickler die Pakete mit nur geringem Aufwand verwalten kann. JATLite stellt vier unterschiedliche Ebenen zur Verfügung, und zwar von der abstrakten bis zur Router-Implementation. Ein Nutzer kann auf jede Ebene zugreifen, die man zur Verfügung stellt. Jede Ebene hat eine andere Menge von Annahmen. Der Nutzer kann die passende Ebene entsprechend den Annahmen der Ebene und der Nutzeranwendung aussuchen. Die Einführungsseite enthält JATLite-Merkmale und die Menge der Annahmen für jede Ebene.

JATLiteBeans

Java(tm) Agent Template

Der JAT stellt eine voll funktionsfähige Vorlage zur Verfügung, die vollständig in Java geschrieben wurde. Er unterstützt die Konstruktion von Softwareagenten, die Punkt-zu-Punkt mit anderen Agenten kommunizieren, die über das Internet verteilt sind. Obwohl Teile des Codes, der jeden Agenten definiert, portierbar sind, sind JAT-Agenten nicht migrierend, sondern laufen eher auf einem einzelnen Rechner. Dieses Verhalten steht im Kontrast zu vielen anderen »Agententechnologien«. (Dennoch können JAT Agenten unter Verwendung der Java-RMI dynamisch zu einem entfernten Rechner migrieren, und zwar über einen Agenten, der auf diesem Rechner läuft.) Zur Zeit verwenden alle Agentennachrichten KQML als oberste Protokollebene. Der JAT enthält Funktionen für den dynamischen Austausch von »Ressourcen«, die Javaklassen beinhalten können (z. B. neue Sprachen und Interpreter, Fernsteuerungsdienste usw.), Datendateien und Informationen, die in den KQML-Nachrichten stehen.

Khepera Simulator

Khepera Simulator ist ein Softwarepaket aus dem Public Domain-Bereich, geschrieben von Olivier MICHEL während der Vorbereitung auf seine Dissertation beim Laboratoire I3S, dem URA 1376 der CNRS und der University of Nice-Sophia Antipolis, Frankreich. Es gestattet, eigene Steuerungen für den mobilen Roboter Khepera unter Verwendung von C und C++ zu schreiben und sie in einer simulierten Umgebung zu testen. Er verfügt über eine ansprechende farbige X11-Oberfläche. Wenn man einen eigenen Khepera-Roboter besitzt, kann die Steuerung den echten Roboter über dieselben Steueralgorithmen ansprechen. Sie ist hauptsächlich auf Forscher ausgerichtet, die autonome Agenten untersuchen.

lyntin

Lyntin ist ein erweiterbarer MUD-Client und ein System zum Erzeugen autonomer Agenten oder Robotern, ebenso wie für MUD im allgemeinen. Lyntin wurde in Python programmiert, einer dynamischen, objektorientierten und gut bedienbaren Programmiersprache, basierend auf TinTin++, einem niedlichen MUD-Client.

Mole

Mole ist ein in Java programmiertes Agentensystem, das mobile Agenten unterstützt. Die Agenten von Mole bestehen aus einem Objektcluster, der keine Beziehungen zur Außenwelt hat und als Ganzes die Aufgaben abarbeitet, die ihm vom Nutzer oder einem anderen Agenen vorgegeben werden. Sie haben die Möglichkeit, in einem Netz von »locations« autonom umherzustreifen. Diese »locations« sind eine Abstraktion von realen, existierenden Knoten im darunterliegenden Netzwerk. Sie können ortsspezifische Ressourcen durch die Kommunikation mit bestimmten Agenten verwenden, die diese Dienste repräsentieren. Die Agenten können die Dienste anderer Agenten benutzen und selber Dienste bereitstellen.

Narval

Narval ist ein Akronym für »Network Assistant Reasoning with a Validating Agent Language« (Netzwerkunterstütztes Schließen mit einer überprüfenden Agentensprache). Es ist ein persönlicher Netzwerkassistent, der auf künstlicher Intelligenz und Agententechnologien aufsetzt. Es führt Anweisungsfolgen (Rezepte) zur Aufgabenerfüllung aus. Es ist einfach, eine neue Aktion über XML zu spezifizieren und sie mittels Python zu implementieren. Die »Rezepte« können mit Hilfe einer graphischen Benutzeroberfläche gebaut und getestet werden.

NeL

NeL ist eigentlich eine Spieleentwicklungs-Bibliothek (für massive Multiplayer-Spiele), aber ich habe es hier mit aufgeführt, da es eine ziemlich große KI-Bibliothek beinhaltet. Hier ein kurzer Auszug aus dem Whitepaper:

Der Zweck der KI-Bibliothek ist es, ein praktisches Verfahren zum Erstellen einer Plattform für verteilte Agenten zu liefern. Der Fokus liegt auf den Agenten; individuelle Einheiten, die miteinander unter Verwendung eines Aktion/Reaktion-Modells kommunizieren, ohne Berücksichtigung des Ortes.

OAA

Die OAA (Offene Agentenarchitektur) ist eine Plattform, auf der eine Gemeinschaft von Softwareagenten, die auf verteilten Systemen arbeiten, bei Aufgaben kooperieren können, die sie von menschlichen oder nicht-menschlichen Teilnehmern der Gemeinschaft empfangen haben. Die verteilte Kooperation und die Hochsprachen-Kommunikation sind die zwei zentralen Gedanken, die zur Gründung der OAA geführt haben.

Es definiert eine Interagenten-Sprache und unterstützt mehrere Plattformen und Programmiersprachen.

PAI

PAI (Programmierbare Künstliche Intelligenz) ist ein Programm, das zur Unterhaltung in seiner Muttersprache Englisch fähig ist. Es wurde in C++ geschrieben.

Penguin!

Penguin! ist ein Perl 5-Modul. Es stellt folgende Funktionen zur Verfügung:

Die Kombination dieser Funktionen ermöglichen ein direktes Codieren der Algorithmen in Perl, um sicheren Internethandel, mobile Informationssammlungs- Agenten, verteilte lastenbalancierte Berechnungen, Hilfsanwendungen im Browser per »Live-Content«, Software-Updates auf entfernten Rechnern, content-basierte Informationsverbreitung, internetweite Anwendungen mit gemeinsam genutzten Dateien, Netzwerkanwendungs-Generatoren usw. zu handhaben.

Ps-i

Ps-i ist eine Umgebung für agentenbasierte Simulationen. Es ist plattformübergreifend, mit ausführbaren Dateien für Win32. Ps-i besitzt folgende Merkmale:

RealTimeBattle

RealTimeBattle ist ein Programmierspiel, in dem programmgesteuerte Roboter gegeneinander kämpfen. Ziel ist es, die Feinde in die Flucht zu schlagen, das Radar zur Überwachung der Umgebung zu nutzen und die Kanone zum Schießen.

Remembrance Agents

Remembrance Agents (RA) sind eine Sammlung von Anwendungen, die einem Nutzer »über die Schulter schauen« und Informationen zur aktuellen Situation vorschlagen. Während abfragebasierte Speicherunterstützungen mit direkten Rückfragen helfen, sind RAs ein vergrößerter assoziativer Speicher. Zum Beispiel aktualisiert die Textverarbeitungs-Version der RAs ständig eine Liste der Dokumente, die für das wichtig sind, was gerade in den emacs-Puffer hineingeschrieben oder ausgelesen wird. Diese vorgeschlagenen Dokumente können beliebige Textdateien sein, die gerade wichtig für das aktuell bearbeitete Dokument sind. Es können alte E-Mails sein, die mit der gerade Gelesenen in Verbindung stehen, oder auch Zusammenfassungen von Abhandlungen oder Zeitungsartikeln, die das gerade Geschriebene diskutieren.

RoboTournament

RoboTournament ist ein von RoboRally inspiriertes Spiel, bei dem die Spieler ihre Roboter programmieren, um ihre Gegner zu besiegen. Die Merkmale von RoboTournament sind:

SimRobot

SimRobot ist ein Programm zur Simulation eines sensorbasierten Roboters in einer 3D-Umgebung. Es wurde in C++ geschrieben, läuft unter Unix und X11 und benötigt das Graphik-Toolkit XView.

Sulawesi

Ein Sulawesi getauftes System wurde entworfen und implementiert, um das aufzugreifen, was als große Herausforderung erkannt wurde in einer tragbaren Nutzerschnittstelle. Dadurch besteht die Möglichkeit, Eingaben einer beliebigen Anzahl von Modalitäten entgegenzunehmen und sie wenn nötig einer Umsetzung in eine beliebige Anzahl modaler Ausgaben umzusetzen. Dies wird vorrangig durch eine Menge proaktiver Agenten erreicht, die auf die Eingaben wirken.

TclRobots

TclRobots ist ein Programmierspiel ähnlich dem »Core War«. Um TclRobots spielen zukönnen, muß man ein Tcl-Programm schreiben, das einen Roboter steuert. Die Aufgabe des Roboters ist es, im Kampf gegen andere Roboter zu überleben. Zwei, drei oder vier Roboter kämpfen während des Gefechts, und jeder hat unterschiedliche Programme laufen (oder möglicherweise läuft auch dasselbe Programm in unterschiedlichen Robotern). Jeder Roboter ist ausgestattet mit einem Scanner, einer Kanone und einem Mechanismus zur Fortbewegung. Ein einzelnes Spiel läuft solange, bis nur noch ein Roboter übrig bleibt. Die Roboter können individuell kämpfen oder sich in Mannschaften zusammenfinden. Eine Spielesitzung (mit mehreren Spielen) kann mit einer beliebigen Anzahl von Programmen laufen, jeder Roboter spielt gegen jeden anderen in einer Art Round- Robin- Strategie. Ein Kampfsimulator ist zur Fehlersuche der Roboterprogramme verfügbar.

Das Programm TclRobots stellt eine physische Umgebung zur Verfügung, die bestimmte Spielparameter festlegt, an die sich die Roboter zu halten haben. TclRobots stellt auch eine Ansicht auf das Spiel bereit sowie eine Nutzerschnittstelle zur Steuerung. Die Anforderungen des Spieles sind ein wish- Interpreter von Tcl 7.4 und Tk 4.0.

TKQML

TKQML ist eine KQML-Anwendung/Erweiterung zu Tcl/Tk, die es Tcl-basierten Systemen gestattet, leicht mit einer mächtigen Agentenkommunikationssprache zu kommunizieren.

The Tacoma Project

Ein Agent ist ein Prozeß, der sich durch ein Computernetzwerk bewegen kann, um Nutzeranfragen zu bedienen. Agenten sind eine aussichtsreiche Möglichkeit von netzweiten Berechnungen.

Das TACOMA-Projekt legt seinen Schwerpunkt auf die Betriebssystem-Unterstützung für Agenten und wie Agenten verwendet werden können, um Probleme zu lösen, die traditionell von den Betriebssystemen bearbeitet wurden. Wir haben eine Serie von Prototypsystemen entwickelt, um Agenten zu unterstützen.

TACOMA Version 1.2 basiert auf Unix und TCP. Das System unterstützt Agenten, die in C, Tcl/Tk, Perl, Python und Scheme (Elk) geschrieben wurden. Das System wurde in C implementiert. Diese TACOMA-Version wurde im April 1996 als Public Domain freigegeben.

Zur Zeit konzentrieren wir uns auf Heterogenitäts-, Fehlertoleranz-, Sicherheits- und Management-Themen. Es sind auch verschiedene TACOMA-Anwendungen in der Entwicklung. Wir haben StormCast 4.0 unter Verwendung von TACOMA und Java entwickelt, ein Weitverkehrsnetz zur Wetterbeobachtung über das Internet. Jetzt testen wir diese Anwendung und planen eine neue Version im Juni 1997.

Ummon

Ummon ist ein erweiterter Open-Source ChatterBot. Das Hauptprinzip des Roboters ist, daß er kein Anfangswissen von Worten oder Grammatik besitzt; er lernt alles im laufenden Betrieb. Zahlreiche KI-Techniken werden bei der Entwicklung von Ummon untersucht, um eine realistische »menschliche « Kommunikation zu erreichen, mit Unterstützung für unterschiedliche, anpaßbare Persönlichkeitsprofile.

UMPRS Agent

UMPRS unterstützt Top-Down-, zielbasiertes Schließen und wählt Ziel und Pläne basierend auf der höchsten Priorität aus. Die Ausführung mehrerer gleichzeitiger Ziele wird unterstützt, und zwar mit zeitweiliger Zurückstellung und auch Wiederaufnahme-Möglichkeit für jeden Zielthread. UMPRS plant, ein integriertes Vorbedingungs/Laufzeit-Attribut zu haben, das seine Anwendbarkeit einschränkt. Folgende Plankonstruktionen sind verfügbar: Sequenz, Iteration, Unterziele, atomare (nicht unterbrechbare) Plansegmente, verzweigte deterministische bedingte Ausführung, explizite Fehlerbearbeitung und Funktionsdefintion für C++- Primitiven.

Virtual Secretary Project (ViSe)

(Tcl/Tk)

Die Motivation für das Virtual Secretary Project ist es, einen nutzermodell- basierten intelligenten Softwareagenten zu konstruieren, der in den meisten Fällen den Mensch für Sekretariatsaufgaben ablösen kan, basierend auf modernem mobilem Comnputing und Computer-Netzwerken. Das Projekt beinhaltet zwei unterschiedliche Phasen: die erste Phase (ViSe1) konzentriert sich auf die Informationsfilterung und Prozeßmigration. Ihr Ziel ist es, eine sichere Umgebung für die Softwareagenten unter Verwendung von Nutzermodellen zu schaffen. Die zweite Phase (ViSe2) richtet sich auf die intelligente und effiziente Kooperation des Agenten in einer verteilten Umgebung. Ihr Ziel ist es, kooperative Agenten zur Erreichung hoher Intelligenz zu konstruieren. (Implementiert in Tcl/TclX/Tix/Tk).

VWORLD

Vworld ist eine simulierte Umgebung zur Forschung mit autonomem Agenten, die in Prolog geschrieben wurde. Sie ist zur Zeit in einer Art Betastadium. Vworld arbeitet gut mit SWI-Prolog, müßte aber auch mit ein paar kleinen Änderungen mit Quintus-Prolog laufen. Es wurde als Ausbildungswerkzeug für Klassenprojekte entworfen für die Arbeit mit Prolog und autonomen Agenten. Es wird mit mit drei Demo-Welten oder -Umgebungen sowie entsprechenden Beispielagenten ausgeliefert. Es gibt jetzt zwei Versionen. Eine wurde für SWI-Prolog geschrieben und eine für LPA- Prolog. Die Dokumentation ist im groben fertig (mit einem Studenten/Professor-System im Hinterkopf), und eine graphische Oberfläche ist geplant.

WebMate

WebMate ist ein persönlicher Agent zum Internetsurfen und zur Suche. Er begleitet Sie auf Ihrer Reise durch das Internet und versorgt Sie mit allem, was Sie möchten. Folgende Merkmale beinhaltet WebMate:

Zeus

Die Konstruktion von Multiagentensystemen bedingt lange Entwicklungszeiten und benötigt Lösungen für manche technischen Schwierigkeiten. Das hat die Entwicklung des ZEUS-Toolkits angeregt, das eine Bibliothek von Softwarekomponenten und Werkzeugen zur Verfügung stellt, die den schnellen Entwurf, die Entwicklung und Verteilung von Agentensystemen ermöglichen.


Inhalt