Computer Science Agent Communications CPSC 601.68/CPSC 599.68 Rob Kremer Department of Computer Science University of Calgary 08/04/2015 1 What is an Agent? • Autonomous • Knowledge-based • Reflective or Reactive • Social 08/04/2015 CPSC 609.68/599.68: Agent Communications 2 What is an Agent? An agent Ag is a tuple Ag = (Sit,Act,Dat,fAg) where • Sit is a set of situations Ag can be in • Act is a set of actions Ag can perform • Dat, Ag’s internal data, is the set of possible values Ag’s internal data areas can have • fAg: Sit Dat Act is the agents decision function From outside, Ag seems to be a “function” gAg:SitAct There are lots of other models of agency; this one is usefully general 08/04/2015 CPSC 609.68/599.68: Agent Communications 3 Agents = Object? Both have internal data and receive messages x But the object has no “choice” but to execute the method; the agent can decide if and what method to execute. I might execute method B, or I might do nothing, or I might execute method C or …. message B method A message B method B sensor object method C 08/04/2015 CPSC 609.68/599.68: Agent Communications method A method B method C agent 4 Communicating Agents • Traditional (low level) “Protocols” (eg: TCP/IP) are a bit simple… – They mostly deal with “here’s a message” • Agents need a richer conversation space – Request/Reply, Offer/Reply, Subscribe/Inform • Agents need to handle exceptional cases, complex interactions, and novel new interactions 08/04/2015 CPSC 609.68/599.68: Agent Communications 5 Simple Conversation: naive What time is it? 08/04/2015 It’s 2:00 CPSC 609.68/599.68: Agent Communications 6 Simple Conversation: more complex What time is it? <nod> Just a sec, I’ll check <nod> It’s 2:00 <nod> Thanks <nod> 08/04/2015 CPSC 609.68/599.68: Agent Communications 7 Simple Conversation: failure What time is it? I don’t know, my watch stopped Go ask someone else. <ignore> (didn’t hear) 08/04/2015 CPSC 609.68/599.68: Agent Communications 8 What do we need? • Message format (syntax) • Message semantics • Interpretation of sequences of messages (conversations) – Message sequencing and turn-taking • Conversation semantics 08/04/2015 CPSC 609.68/599.68: Agent Communications 9 Message Syntax Envelope/content • Envelope can be read by all agents in the society • Content is usually understood only by specialized agents 08/04/2015 CPSC 609.68/599.68: Agent Communications 10 Message Syntax performative the type of the communicative act of the message sender the sender of the message receiver the intended recipients of the message reply-to subsequent messages in this conversation thread are to be directed to the agent named content the content of the message; equivalently denotes the object of the action language the language in which the content parameter is expressed encoding the specific encoding of the content field ontology the ontology(s) used to give a meaning to the symbols in the content expression protocol the interaction protocol that the sending agent is employing with this ACL message conversation-id an expression used to identify the sequence of communicative acts that form a conversation reply-with an expression that will be used by the responding agent to identify this message in-reply-to an expression that references an earlier action to which this message is a reply reply-by a time and/or date expression indicating the latest time the sending agent wants a reply 08/04/2015 CPSC 609.68/599.68: Agent Communications 11 Message Syntax: KQML-style ( request :act inviteToJoinCD :to casa://123.181.6.101/Bob :from casa://123.181.6.101/Alice :reply-with casa://123.181.6.101/Alice$$1453 :language casa.URL :language-version 1.0 :content casa://123.181.6.101/CDagent2 ) 08/04/2015 CPSC 609.68/599.68: Agent Communications 12 Message Syntax: xml-style <?xml version=\"1.0\"?> <!DOCTYPE message SYSTEM \"xmlmessage.dtd\"> <CASAmessage> <performative> request </performative> <act> inviteToJoinCD </act> <to> casa://123.181.6.101/Bob </to> <from> casa://123.181.6.101/Alice </from> <reply-with> casa://123.181.6.101/Alice$$1453 </reply-with> <language> casa.URL </language> <language-version> 1.0 </language-version> <content> casa://123.181.6.101/CDagent2 </content> </CASAmessage> </xml> 08/04/2015 CPSC 609.68/599.68: Agent Communications 13 Message Semantics • Typically based on speech-act theory • Performative is the main speech act • FIPA implementation uses the performative and a BDI semantics 08/04/2015 CPSC 609.68/599.68: Agent Communications 14 Message Semantics: FIPA Performatives accept-proposal agree cancel call-for-proposal confirm disconfirm failure Inform inform-if inform-ref not-understood propagate propose proxy query-if query-ref refuse reject-proposal request request-when request-whenever subscribe 08/04/2015 accepting a previous proposal agreeing to perform some action inform another agent that the agent no longer need perform some action calling for proposals to perform an action informs a given proposition is true informs a given proposition is false an action was attempted but failed a given proposition is true inform whether or not a proposition is true inform the object which corresponds to a descriptor did not understand what the receiver just did pass a message on submitting a proposal to perform an action pass on an embedded message asking whether or not a proposition is true asking for the object referred to refusing to perform an action rejecting a proposal during negotiation request to perform some action request to perform some action when some proposition becomes true request to perform some action each time the proposition becomes true requesting to notify of the value of a reference whenever the object changes CPSC 609.68/599.68: Agent Communications 15 Message Semantics: FIPA request <i, request (j, a)> FP: FP (a) [i\j] ∧ Bi Agent (j, a) ∧ ¬Bi Ij Done (a) RE: Done (a) FP(a) [i\j] denotes the part of the FPs of a which are mental attitudes of i. 08/04/2015 CPSC 609.68/599.68: Agent Communications 16 Message Semantics: Social Commitments/CASA 08/04/2015 CPSC 609.68/599.68: Agent Communications 17 Conversation Paradigms • Ad-hoc protocols • BDI (Belief, Desire, Intentions) • Social Commitments 08/04/2015 CPSC 609.68/599.68: Agent Communications 18 Ad-hoc Protocols “Scripts” that the agent follows Issues: • Rigid and Brittle. • Hard to account for all eventualities 08/04/2015 CPSC 609.68/599.68: Agent Communications 19 Ad-hoc Protocols: Petri Nets 08/04/2015 CPSC 609.68/599.68: Agent Communications 20 BDI • Belief – Environment • Desire – Goals • Intention – The current desire(s) chosen by the selection function with the beliefs and desires as input 08/04/2015 CPSC 609.68/599.68: Agent Communications 21 BDI Issues • Sometimes end up with expressions like “I believe that you believe that I believe that you believe that…” • Calls on agents to have a omniscient view of all the other agents • FIPA is based on BDI semantics 08/04/2015 CPSC 609.68/599.68: Agent Communications 22 Social Commitments Many utterances imply some sort of “conversational” social commitment • Eg: a request commits the receiver to reply Other social commitments are negotiated • Eg: “wash my car” Basic Agent body: • When an agent observes (or sends or receives) a message, it uses policies (rules) as social norms that generate (or delete) social commitments • Agents spend their free time trying to fulfill the social commitments for which it is a debtor 08/04/2015 CPSC 609.68/599.68: Agent Communications 23 Social Commitments Bob Alice inform ack(Bob,Alice,x) request ack reply(Bob,Alice,x) inform ack(Alice,Bob,x) ack reply agree ack ack(Alice,Bob,x) act(Bob,Alice,x) inform ack reply reply-propose-discharge(Alice,Bob,x) propose-discharge propose-discharge(Bob,Alice,x) done ack ack inform ack(Bob,Alice,x) reply reply-propose-discharge confirm ack 08/04/2015 CPSC 609.68/599.68: Agent Communications 24 Social Commitments Issues • Deals with complexity • Agents make decisions based only on observable conversational moves (and the Environment and their internal state) • Turn taking follows naturally 08/04/2015 CPSC 609.68/599.68: Agent Communications 25