Agentenplattform (AP) | stellt die Infrastruktur dar, die notwendig ist, um Agenten laufen zu lassen. Dazu zählen die Hardware, d.h. der Computer selbst (eine Agentenplattform kann auch mehrere Computer umfassen), das Betriebssystem, Anwendungssoftware, die Agenten und die folgenden Komponenten. |
---|---|
Agenten-Management-System (AMS) | von ihm darf es nur eins pro Agentenplattform geben. Das AMS ist zuständig
für:
|
Facilitator | (to facilitate = erleichtern)
ist ein Agent, der eine Art "Gelbe Seiten" für das System darstellt. Er hat hinterlegt, welche Dienste von welchen Agenten, die auch auf der Agentenplattform laufen, bereitgestellt werden. Jeder Agent kann also hier anfragen, ob es einen anderen Agenten gibt, der bestimmte Aufgabe lösen kann. |
Agent Communication Channel (ACC) | ist der Standardweg zur Kommunikation zwischen den Agentenplattformen. Jeder Agent einer Plattform hat Zugriff auf den ACC. |
(salary 015-46-3946 sale 42000)
(> (* (width room1) (length room1)) (* (width room2) (length room2)))
(=> (and (real-number ?x) (even-number ?n)) (> (expt ?x ?n) 0))
(interested joe ´(salary ,?x ,?y ,?z))
(progn (fresh-line)
(print "Hallo")
(fresh-line))
(ask-one
: sender joe
: content (PRICE IBM ?price)
: receiver stock-server
: reply-with ibm-stock
: language LPROLOG
A an B: (tell (> 3 2))
A an B: (perform (print "Hallo"))
B an A: (reply done)
A an B: (ask-if (> (size room1) (size room2)))
B an A: (reply true)
A an B: (subscribe (position ,?s ,?x ,?y))
B an A: (tell (position ship1 8 10))
B an A: (tell (position ship1 8 46))
B an A: (tell (position ship1 8 64))
A an B: (unsubscribe (position ,?s ,?x ,?y))
Kategorie | Name |
---|---|
grundlegende Anfragen | evaluate, ask-if, ask-about, ask-one, ask-all |
Anfragen mit mehreren Antworten | stream-about, stream-all, eos |
Antworten | reply, sorry |
mehrere Antworten | standby, ready, next, rest, discard |
Informationen | tell, achieve, cancel, untell, unachieve |
Fähigkeiten | advertise, subscribe, monitor, import, export |
Netzwerke | register, unregister, forward, broadcast, route |
- speicher <- aktualisiere_speicher(speicher, wahrnehmung)
- handlung <- waehle_beste_handlung(speicher)
- speicher <- aktualisiere_speicher(speicher, handlung)
Es gibt also zwei grundlegende Komponenten, die bei allen Agenten - selbst sehr einfachen
- vorhanden sind. Das sind die Informationen (Überzeugungen) des Agenten und (von
außen) eintreffende Ereignisse.
durch Variablen / Werte-Paare: | MyName = 'Joe' |
durch logische Aussagen: | I_am('Joe') |
NAME Regelname
WHEN
Nachrichtenbedingungen(s)
IF
Wissensbedingungen(s)
THEN
private Handlungen(s)
Wissensänderung(s)
kommunikative Handlungen(s)
NAME "Greenlight Move Forward Rule"
WHEN
?KQMLMessage.Performative EQUALS TELL
?KQMLMessage.Sender EQUALS "stoplight-agent"
?KQMLMessage.Content EQUALS String
IF
?KQMLMessage.Content EQUALS "stoplight-green"
currentMotion.Status EQUALS stoppedAtRedLight
currentLocation EQUALS nextIntersection
NOT (currentLocation EQUALS destination)
FOR_ALL (?BlockIntersection,
NOT (?BlockedIntersection.Location EQUALS currentLocation))
THEN
DO (Go(trafficSpeed))
DO ($nextIntersection =
getNextIntersection(currentLocation, currentMotion.Direction))
ASSERT (SET_VALUE_OF currentMotion.Status TO moving)
ASSERT (SET_VALUE_OF nextIntersection TO $nextIntersection)
SEND (performative = REPLY,
receiver = "stoplight-agent",
content = "acknowledged",
in-reply-to = ?KQMLMessage.Reply-with)