IMPACT: Interactive Maryland Platform for Agents Collaborating Together V.S. Subrahmanian Department of Computer Science University of Maryland vs@cs.umd.edu Part funding from: Army Research Lab, DARPA, University of Maryland, and some non-government sources. Research initiated by: Army Research Office and Army Research Lab 1 IMPACT Technical Overview IMPACT Agent Architecture Key Scientific Contributions Agent development languages Temporal and uncertain agent reasoning Agent security IMPACT Agent Development Environment Key Applications What is an IMPACT agent? What is required of a platform supporting multiagent applications? ARL Combat Information Processor Army Logistics Agent based security Distributed Simulations Planned work for Years 3 and 4 1999 IMPACT Workshop 2 IMPACT Agent Architecture Agent Program Actions Concurr’cy MSG Box Function Calls Legacy/Special Data Structures Action Constraints Integrity Constraints Other agents NETWORK (distributed) data - agent state 1999 IMPACT Workshop 3 Summarized Agent Definitions Many definitions of agents have been proposed. We outline three representative examples - FIPA’s, DARPA’s and Shoham’s. FIPA: Proposed a list of basic agent capabilities, incl. speech, visual, actuator I/O primitives syntactic and semantical info fusion messaging languages, interaction protocols, etc. Darpa Co-ABS: agents act autonomously to accomplish objectives agents adapt to their environment. agent cooperate to achieve common goals. 1999 IMPACT Workshop 4 Agent Definitions Shoham’s definition- an agent is a program supporting: Ongoing execution autonomy adaptiveness intelligence agent awareness mobility anthropomorphism reactivity evaluating courses of action communication planning negotiation All the above definitions are “behavioral” definitions. IMPACT provides a “structural” definition of an agent, together with formal models of the desired “behaviors” specified by FIPA,Co-ABS and Shoham. 1999 IMPACT Workshop 5 IMPACT Agents: Data Access Code Call: d:f(arg1,…,argk). Execute function f defined in data structure d on the specified arguments. Return a set of objects. Oracle:select(‘depots.rel’,item,=,combat boots) Route:plan(‘map1’,20,20,50,43). Code Call Atom: in(X,d:f(arg1,…,argk)). Succeeds if X is in the set of objects returned. In(X, Oracle:select(‘depots.rel’,item,=,combat boots)). Find all tuples with item field equal to “combat boots” in(X, Route:plan(‘map1’,20,20,50,43)). Find all routes returned by route planner between points (20,20) and (50,43) w.r.t. map1. 1999 IMPACT Workshop 6 Code Call Conditions A conjunction of code call atoms and comparison atoms. In(X, Oracle:select(‘depots.rel’,item,=,combat boots)) & X.qty > 1000 & in(R,route:plan(‘map’,99,25,X.xc,X.yc)). The above says: find X,R such that: X is a tuple in an Oracle “depot” relation specifying a depot with over 1000 combat boots, and Y is a route from the location of that depot to a location (99,25) where the entity requesting the combat boots is located. 1999 IMPACT Workshop 7 Agent Integrity Constraints An agent integrity constraint is a condition that the agent’s state must always satisfy. An agent integrity constraint has the form <code call condition> ==> <code call atom> If the agent state satisfies the code call condition, then it must also satisfy the code call atom. All created routes must be over 90% safe. In(R,route:plan(Map,X1,Y1,X2,Y2)) => In(S,route:safe(R)) & S > 0.9 Everybody makes less money than their boss. In(T1,oracle:all(‘emp’)) & in(T2,oracle:select(‘emp’,name,=,T1.boss)) => T1.sal < T2.sal 1999 IMPACT Workshop 8 Agent Actions An action consists of: action name a(a1,...,an) a precondition code call cond. An add list code call cond. A delete list code call cond. An execution algorithm Unlike AI, actions are implemented via imperative code. Preconditions/Add/Delete lists are used by IMPACT to assess effects of the action, not to implement the actions. Each agent has a set of associated actions. Examples of actions: execute request modify request and execute send message(s) clone agent move to remote site do-nothing post web page create file create bar graph construct route update database ETC….. 1999 IMPACT Workshop 9 Agent “Concurrency” Notion Takes several actions as input. Returns a single “merged” action as output. IMPACT has proposed 3 ways of concurrent action execution. They vary in underlying intuitions and application use, but also one is polynomial (efficient !) one is NP complete one is co-NP complete. Lesson: Choosing sophisticated ways of merging actions may be expensive. IMPACT Agent Development Environment supports a library (under development) for the agent developer to choose concurren execution methods. A c t I o n s Notion of concurrency A c t I o n Agent state 1999 IMPACT Workshop 1 Agent action constraints Action constraints specify conditions under which the agent cannot concurrently execute certain actions. They have the form {a1,…,an} <~ <code call condition> This says that if the code call condition is true w.r.t. the agent’s current state, then actions a1,…,an cannot be executed concurrently. Examples: Moves in two different directions cannot be concurrently executed. { move(Dir1),move(Dir2)} <~ Dir1 <> Dir2. Orders must stay within the budget. { order(Item1,Cost1),order(Item2,Cost2)} <~ in(Amt,budget:avail()) & Amt < Cost1 + Cost2. 1999 IMPACT Workshop 1 Agent Program Set of rules of the form Op a(arg1,…,argn) <= <code call condition> & +/- Op1 a1(<args>) & … & +/- Opn an(<args>). Op is a “deontic modality” and is either P - permitted O - obligatory Do - do F - forbidden W - obligation is waived. If the code call condition is true and the deontic modalities in the rule body are true, then Op a(arg1,…,argn) is true. 1999 IMPACT Workshop 1 Example agent program rules Do send-warning(E,M) <= in(Loc,entity:curloc(E)) & in(E’,entity:hostiles()) & in(Loc’,entity:curloc(E’)) & in(D,geo:dist(Loc,Loc’)) & <(D,25) & =(M,file:create(E’,Loc’,D)). Do log(E,M,T) <= Do send-warning(E,M) & in(T,clock:now()) & ~ F logging. Send a warning to entity E if there is a hostile entity within 25 distance units of it. If a warning is sent and logging is not forbidden, then send a log message now. 1999 IMPACT Workshop 1 What is an agent? An IMPACT agent consists of: a set of data types a set of API functions implemented in any language manipulating those types a set of actions implemented in any language a notion of concurrency a set of action constraints a set of integrity constraints an agent program IMPACT agents can provably support the criteria listed in the behavioral definition of an agent given by Shoham, FIPA, IBM, etc. 1999 IMPACT Workshop 1 Agentization Procedure To convert a program to an agent, do the following: describe types manipulated by program describe I/O types of API function calls define agent’s integrity constraints select/define actions that can be executed by agent select/define concurrency notion define agent’s action constraints define agent’s agent program In addition, one may specify yellow pages info and register agent with IMPACT Server specify connect information 1999 IMPACT Workshop 1 Advantages of IMPACT Agents, I Rich mathematical foundation. Demonstrated by two papers in AI journal, one accepted paper for J. of Logic Programming, and accepted book on IMPACT (MIT Press, spring 2000), and several submitted journal papers. Can build on legacy data/code and specialized data structures. Demonstrated today by applications on Army Logistics data, Army JANUS simulation data, ARL CIP servers, Oracle data. Dynamic - can couple arbitrary actions to changes in agent environment. Demonstrated today by coupling of send-mail, create Web pages, file synthesis actions to changes in agent state when new messages are received. Open - can interact with other agent platforms. Demonstrated today by IMPACT connectivity to arbitrary IBM Aglets. Specifically, shows IMPACT security agents interacting with security agents built by Lockheed Sanders’ Mike Gaughan (ATIRP Consortium) and ARL’s LTC. Paul Walczak using the IBM Aglet agent paradigm. 1999 IMPACT Workshop 1 Advantages of IMPACT Agents, II Security - IMPACT agents can be used to make other applications more secure. Demonstrated today via ARL-ATIRP-IMPACT security agents. Intelligence: IMPACT agents are capable of collaborating with one another as well as agents built in other agent platforms. Demonstrated today via bookstore procurement demonstration. creating sophisticated plans. Demonstrated today via noncombatant evacuation ops demonstration. reasoning about time and uncertainty. Demonstrated via research papers and Prof. Dix’s lecture tomorrow. making decisions based on agent objectives (expressed via objective functions). Demonstrated via research papers and Prof. Eiter’s lecture today. 1999 IMPACT Workshop 1 Advantages of IMPACT Agents, III IMPACT agents can be Autonomous. Demonstrated today via logistics agents. Reactive. Demonstrated today via bookstore agents. Mobile. Demonstrated today by IMPACT security agents. IMPACT agents support heterogeneous information integration. Demonstrated today via Army War Reserves Logistics application which integrates Oracle and LOGTAADS data. IMPACT agents can be rapidly created and deployed via AgentDE, the IMPACT agent development environment. 1999 IMPACT Workshop 1 IMPACT Agent Deployment Mobile agent execution Agent deployment AgentDE agentRoost AgentDE AgentDE agentRoost State change/ message AgentDE AgentDE agentRoost 1999 IMPACT Workshop 1 IMPACT Support for Multiagent Applications AgentDE: Used to build individual agents. IMPACT Server: Provides yellow pages and registration services ontology services type services. AgentRoost: Location where agent processes reside after the agent is built and deployed. Supports wake, messaging, replication, and mobility capabilities. AgentLog: Logs all actions (desired by agent developer). Supports browsing and querying of actions, and rendering (some types of) actions. Essential for monitoring system performance and debugging. 1999 IMPACT Workshop 2 AgentDE: Agent Development Environment Built in Java. Allows rapidly building and testing IMPACT Agents. Contains libraries of actions (e.g. mobility, messaging) and compile-time options. Contains connections to different servers (e.g. IMPACT Servers, Oracle, Hermes, IBM Aglet). Built completely during Year 2 of contract. Proposed work in Year 3: Extend action library. Extend range of servers AgentDE can connect to. Develop incremental action computation algorithms. Develop temporal agent programs. Implement agent security mechanisms within IMPACT. 1999 IMPACT Workshop 2 IMPACT Agent Definition Screen 1999 IMPACT Workshop 2 IMPACT AgentDE Connect Library Screen 1999 IMPACT Workshop 2 IMPACT AgentDE Action Library Screen 1999 IMPACT Workshop 2 AgentRoost Built in Java. Functions supported: houses deployed agents processes inter-agent and inter-roost message traffic wakes agents as appropriate dispatches agents to other roosts or sites if needed replicates and dispatches roosts/agents as needed. Red entries above are to be done. Green entries completed. 1999 IMPACT Workshop 2 AgentLog Work done entirely in Year 2. Agent actions and messages are logged by the AgentLog. AgentLog allows agent developer to – query log by content or time – browse log – view actions (when appropriate) – supports playback of video, text and image message objects. Currently only supports message logging (action logging to be added). 1999 IMPACT Workshop 2 IMPACT Server Preliminary IMPACT Server built in year 1 on top of Oracle and ThesDB. Year 2: Integrated IMPACT Server with the massive PARKA Ontology (Hendler et al.). Provides flexible and scalable support for yellow pages services based on nearest neighbor matching. Conducted precision, recall and scalability tests on the IMPACT Server, with promising results. 1999 IMPACT Workshop 2 Key scientific contribution I: Agent development theories Agent definition and agent programs defined in Year 1. In year 2, we developed: Meta agent programs: allow agents to reason about other agents states (what does the other agent know?) and actions (what is the other agent going to do?) Temporal agent programs: allow agents to make commitments over time. Probabilistic agent programs: allow agents to make decisions in the presence of uncertainty. Secure agent programs: provide methods by which agents may provide data/services only to those authorized for that data/services. Defined formal languages and theories for all the above. 1999 IMPACT Workshop 2 Key scientific contribution II: Regular Agent Programs Year 1: We provided a detailed complexity analysis of agent programs - complexity is high ! Year 2: Identified a class of regular agents that have polynomial complexity (hence efficient to implement). Developed/Implemented compile time algorithm which associates with any agent, a set of queries on the agent state. Developed/Implemented an algorithm that computes what the agent is to do, given some recent state changes/messages. Developed an incremental algorithm to update what the agent is to do. Proved correctness and complexity results for all the above. 1999 IMPACT Workshop 2 Key scientific contribution III: AgentDE 1.0 Designed and implemented AgentDE 1.0 supports development of agents includes compile-time syntax checks compile-time check that associates a set of queries with an agent algorithm to compute such queries ran experiments testing the efficiency of agent evaluation developed (first cut) action library supporting agent building developed connections between IMPACT agents and other servers (e.g. Hermes, Oracle, IBM Aglet Tahiti server) AgentRoost and AgentLog built. Validated AgentDE on applications: Army War Reserves logistics Bookstore Inventory with applications to DoD procurement IMPACT agents for network security JANUS Stricom simulation agents 1999 IMPACT Workshop 3 Agent-based Combat Information Processor (AbCIP) Vision CIP is an ARL product that runs tactical battlefield simulations. CIP consists of a set of servers which are hardwired together. AbCIP will agentize CIP’s Display, Entity, DTED and Measures Server allow analysts/commanders to state conditions to be tracked across these servers automatically trigger actions by such conditions allow use of visualization and analytic tools. Ongoing: Vision implemented in part,not full. 1999 IMPACT Workshop 3 Agent-based Security ARL-Lockheed Sanders have used IBM/Aglets to build a network vulnerability (NV) agent examining .rhost files. IMPACT implements security across multiple networked machines, showing cooperation between IMPACT logging agents NV-Aglets This application shows how such agents can automatically shut off access from compromised machines, automatically notify system managers and other machines detect violations to system files. 1999 IMPACT Workshop 3 IMPACT Agent Bookstore IMPACT Agent Bookstore shows a futuristic bookstore that has an inventory tracking agent which updates inventory data and triggers alerts when book inventories drop below specified levels a purchasing agent that responds to the alert and finds a “best” supplier an ordering agent that orders the book and a receiving agent that receives the books and updates the inventory. Sources for Book 1999 IMPACT Workshop 3 IMPACT Janus STRICOM Simulations Just started. JANUS data involves dtec: sensor detections file fires: fire-event file kils: kill-event files All files are binary and record events during simulations. Users can ask for email notification when certain conditions across these binary data sources occur. IMPACT’s JANUS agents automatically provide this. 1999 IMPACT Workshop 3 Research Quality Measures Agent book completed and to be published by MIT Press (expected release: spring 2000). 31 Papers related to contract: 14 Archival journal 16 Conference/workshop + 1 book chapter Invited conference addresses: Keynote address, Workshop on Multimedia Systems, Vienna, Austria, Aug. 1998. 5 lectures on heterogeneous info systems at Italian Summer School, Sep. 1998. Invited talk, ISMIS-99, Warsaw, Poland, July 1999. Invited talk, Compulog Workshop, London, April 1999. Nau etal’s Bridge Baron wins 1997 World Computer Bridge Championship – Articles in Washington Post and New York Times 1999 IMPACT Workshop 3 Army Interactions ARL (P. Emmerman, T. Gregory, LTC. P. Walczak) LIA (Bobby White, Miranda Moore) USMA (LTC. Marin, LTC. Byrnes, Maj. Schafer) STRICOM (LTC. G. Stone) ARL ATIRP Program: Mike Gaughan (Lockheed Sanders) 1999 IMPACT Workshop 3 Planned Work for Year 3 Multiagent Development Environment (MADE) definition of multiagent application development language development of sound, complete and efficient computation algorithm Optimizing the status set computation algorithm Optimizing the incremental status set update algorithm Research on computing optimal status sets Research on implementing temporal agents Research on implementing probabilistic agents Research on implementing secure agents Implementing secure agents in AgentDE Implementing optimal status set computations in AgentDE. Implementing conflict resolution agents. Implementing visualization agents. 1999 IMPACT Workshop 3 Planned Work for Year 4 Implementing temporal agents in AgentDE Implementing probabilistic agents in AgentDE Multiagent planning applications MultiAgent Development Environment (MADE) implementation applications Complete development and deployment of AgentDE with applications to: ARL CIP Logistics Electronic procurement systems Security 1999 IMPACT Workshop 3