120 likes | 323 Views
Open Agent Architecture (OAA) - Part II. -Murali Krishnan. Interagent Communication Language (ICL). Interface, communication & task coordination language shared by all agents Used by agents to perform queries, execute actions, exchange information, set triggers & manipulate data
E N D
Open Agent Architecture (OAA)- Part II -Murali Krishnan
Interagent Communication Language (ICL) • Interface, communication & task coordination language shared by all agents • Used by agents to perform queries, execute actions, exchange information, set triggers & manipulate data • Includes a conversational layer protocol (events, parameters) & content layer (goals, triggers & data elements) • ICL – Unified way of expressing agent functionalities! • Register capability specifications • -Request services of agents in community PROLOG is used!
ICL contd… • Platform independent – supports C, C++, VB, Delphi, Java, Prolog, LISP • Interagent communication – through events & message passing • ev_post_solve (Goals, Params) ->typical event • Agents use ICL to define and publish their capabilities and services provided, to the facilitator • Agents capabilities declarations - SOLVABLES
Solvables: • Procedure solvables • Data solvables • perform a test or action • must have a handler declared • and defined • Provides access to collection • of data • -associated with dynamic collection • of facts Specification of solvables: solvable ( Goal, Parameters, Permissions ) Examples: solvable (send_message (email, +ToPerson, +Params), [type(procedure), callback (send_mail)], [] ) solvable (last_message (email, -MessageId), [type(data), single_value(true)], [write(true)] )
Agent library: • Provides infrastructure for building new agent-based system • Single, unified point of entry for requesting services – library procedure oaa_Solve() • Contains many other procedures like: • oaa_declare, oaa_undeclare, oaa_redeclare – regn. with facilitator • oaa_adddata, oaa_removedata, oaa_replacedata – updates to data solvables • oaa_addtrigger, oaa_removetrigger, oaa_replacetrigger – procedures for trigger-related operations • Inter-agent and Intra-agent communication
OAA Triggers: • Action fired, when condition met • Types: communication, data, task & time • When trigger fires, execution of action is delegated to the facilitator oaa_AddTrigger(Type, conditions, action, params) • Communication triggers: monitor incoming / outgoing events • Data triggers: monitor the state of a data repository • Task triggers: test arbitrary conditions after processing event or timeout • Time triggers: monitor time related conditions
Multimodal User Interfaces: • User is special member of agent community • Agents compete to recognize and act on user actions • Natural Language (NL) translation to & from ICL Multiagent cooperation for ambiguity resolution • Pen: gesture or handwriting? • Reference resolution: “photo of the hotel” - NL Agent: hotel in language context - Gesture Agent: hotel being pointed at - UI Agent: only one hotel visible - Database Agent: “hotel on Smith Street” - Discourse Agent: “the other hotel” • Human User: if still ambiguous, can clarify • Cross-modality ambiguities
Multimodal map --- Example OAA application: Sample Interaction: 2.1 [Speaking] Where is downtown? Map scrolls to appropriate area. 2.2 [Speaking and drawing region] Show me all hotels near here. Icons representing hotels appear. 2.3 [Writes on a hotel] Info? A textual description (price, attributes, etc.) appears. 2.4 [Speaking] I only want hotels with a pool. Some hotels disappear. Natural interface to distributed (web) data Synergistic combination of handwriting, drawing, speech, direct manipulation and so on…
Facilitator Plan + Exe Facilitator Facilitator OAA and Scalability Current Limitations: Facilitator is single point of failure Facilitator is bottleneck for communication Possible Solutions: Multi-Facilitator topologies Replicated Distribution of planning & execution functions of Facilitator + peer-to-peer communication Registry & Planner Agent E CMM2
OAA Characteristics: agents can be created in many languages and interface with existing systems agents can be added or replaced dynamically agents are spread across many computers Parallel execution of subtasks Lightweight interfaces on phone and/or PDA hides software and hardware dependencies handwriting, speech, gestures, and direct manipulation can be combined together Open: Extensible: Distributed: Parallel: Mobile: High-level: Multimodal: CMM2
References: • [CMM1] The Open Agent Architecture: A Framework for Building Distributed Software Systems – David L.Martin, Adam J. Cheyer, Douglas B. Moran, (AI center, SRI International) (Technical paper) • [CMM2] The Open Agent Architecture, by the same authors. (PowerPoint presentation) • Open Agent Architecture: Technical white paper. See website http://ai.sri.com/~oaa • An Open Agent Architecture, Philip Cohen, Adam Cheyer, Michelle Wang, Soon Cheol Baeg. (See website http://ai.sri.com/~oaa