Agent Building and Learning Environment ABLE 2.0 Overview Joe Bigus, Ph.D. IBM T.J. Watson Research Center October, 29 2003
Outline • ABLE Project overview • Intelligent Agents • ABLE Agent Framework • ABLE Component Library • ABLE Rule Language • ABLE Agent Platform • ABLE Development Tools • Example Applications • Tutorial : Differentiated Quality of Service 5/12/2005 Able Overview 2
What is ABLE? • A Java framework and toolkit for constructing hybrid intelligent agents (1999) • A productivity toolkit for adding intelligent software functions to Java applications (2000) • A toolkit for building multiagent intelligent autonomic systems (2002) • A business rules and policy run-time framework • “A RAD environment for agents” • An Autonomic Computing core technology (2003) • A commercial multi-agent platform 5/12/2005 Able Overview 3
ABLE Project Overview Classification Data Scripting Rules Clustering Simple if-then rules Mining Prediction ABLE Rete’ net Optimization Framework Prolog Fuzzy systems Neural Networks Planning Decision Tree Event Correlation Naïve Bayes Agents Templates k-NN Author/Debug tools Genetic algorithms Autonomous Asynchronous event processing Timer-based processing Distributed multi-agent platform and admin console Conversational support Author/Test/Debug tools 5/12/2005 Able Overview 4
What Are I ntelligent Agents? Agents are active, persistent software components that perceive, reason, Agents are active, persistent software components that perceive, reason, act, and communicate. (Huhns and S ingh) act, and communicate. (Huhns and S ingh) Sof t ware t hat assist s assist s people and act s on t heir behalf Sof t ware t hat people and act s on t heir behalf Agent s can help people people and and processes processes Agent s can help Agent s are used f or aut omat ion and cont rol Agent s are used f or aut omat ion and cont rol finding and fixing problems finding and filtering information automating complex procedures personalizing your environment finding "best fit" procedures negotiating for services pattern recognition and classification automating tedious tasks predictions and recommendations taking actions you delegate negotiate and cooperate with other learning about you over time organizations' agents collaborating with other agents capturing individual and organizational knowledge sharing knowledge 5/12/2005 Able Overview 5
Intelligent Agent - Abstract Architecture Domain Knowledge Attention Planning Reasoning Decision-making Perception Behavior Learning Memory Sensors Effectors Environment 5/12/2005 Able Overview 6
What can ABLE do? � Describe autonomic manager behavior using rules � Learn from experience and predict future states � Analyze sensor data using classification and clustering algorithms to detect complex states and diagnose problems � Have stateful conversations with other autonomic elements � Interface with other autonomic components via web services � Reason using domain-specific application objects � Use boolean forward and backward chaining, predicates, fuzzy � Have autonomous (proactive) behavior and goals � Provide tooling to build, test, and debug these kinds of agents � Plan sequences of actions for an autonomic manager � Correlate events into situations, reason, and take actions 5/12/2005 Able Overview 7
ABLE Agent Framework 5/12/2005 Able Overview 8
AbleBeans – Java Agent Building Blocks Not if icat ion Event s AbleBean AbleEvent s AbleBean Act ion Event s Dir ect met hod calls AbleBean, AbleRemoteBean : a Java interface (local and remote) AbleObject : AbleBean instantiation with autonomous thread Bean interactions: Direct method calls and event passing AbleEvents : Notification and Action events with synchronous and asynchronous event handling AbleBeanInfo and Customizer required for use in Agent Editor Set of core data access and algorithm beans supplied 5/12/2005 Able Overview 9
AbleAgents – Intelligent JavaBeans App/ Service 1 App/ Service 2 AbleBean A get app data AbleAgent Ef f ect or Sensor AbleBean C AbleBean B call app action AbleAgent, AbleRemoteAgent : a Java interface (extends AbleBean) Composable : can contain other AbleBeans and AbleAgents Sensors and Effectors : Allow agents to interface with apps Can be distributed, synchronous or asynchronous (autonomous) 5/12/2005 Able Overview 10
AbleBean Source File import com.ibm.able.*; public class SampleAbleBean extends AbleObject implements Serializable { public SampleAbleBean() throws RemoteException { this("SampleBean"); } public void init() throws RemoteException { // need to initialize state of this bean, algorithm vars, etc. -- do ONE TIME initializations // initialize asynchronous Timer (if used) and define Event processing behavior } public void process() throws RemoteException { // perform synchronous processing on caller's thread } public void processTimerEvent() throws RemoteException { // perform autonomous (asynchronous) processing on own thread } } 5/12/2005 Able Overview 11
ABLE Component Library 5/12/2005 Able Overview 12
ABLE Component Library Classification Autotune (closed loop control) Clustering Storage manager (multiple QoS) Agents Prediction Machine Machine Da ta Learning Reasoning Access/Analysis Text/DB read/write Back propagation Script (procedures) Cache, Filter, Transform Forward / Backward chaining Self organizing maps Statistical routines Radial Basis Functions Predicate logic (Prolog) Genetic algorithms TD-Lambda Rete'-based pattern match other math analysis Fuzzy systems Decision Trees Planning (STRIPS) Naive Bayes 5/12/2005 Able Overview 13
ABLE Applicat ion Design Applicat ion ABLE Libr ar y Agent Cust om Beans ABLE Cor e Beans (domain-specif ic) 5/12/2005 Able Overview 14
AbleBean W r apper Design Pat t er n my A l gor i t h mBean t heA l gor i t hm i n my A l gor i t h mBean( ) s t a n c e i ni t () pr ocess( ) t h eA l gor i t h m( ) pr ocessT i mer Event ( ) init () get t er s( ) set t er s( ) pr ocess( ) my A l gor i t h mBeanI nf o get t er s( ) my A l gor i t h mCust omi z er set t er s( ) A l l ows easy i nt egr at i on of ex i st i ng J ava al gor i t hms i nt o t he A b l e envi r onment Requi r es cr eat i on of 3 J ava cl asses, Bean wr apper , BeanI nf o and Cust omi z er Bean cont ai ns an i nst ance of t he al gor i t hm and cal l s met hod s on i t N o ( or mi ni mal ) sour ce changes r equi r ed i n t he al gor i t hm cl ass 5/12/2005 Able Overview 15
ABLE Rule Language 5/12/2005 Able Overview 16
Ingredients of a Modern Rules Environment Authoring Tools Rule Logic Templates Partitioning Testing Tools Powerful Flexibility: Inference Choice of Rule Debugging Tools Algorithms Engines Procedural Extensible Scripting Scalable Run-Time Easy to Integrate Optimization Machine Tracing/Logging Algorithms Learning 5/12/2005 Able Overview 17
ARL Design Objectives • A scripting language for AbleBeans and AbleAgents • A business rule and policy specification language • Very tight integration with Java objects and code • Allow mix of procedural scripting and declarative inferencing as required • Rich set of inferencing algorithm support • Pluggable inference engines – optimized for run-time requirements • Java-like text syntax and XML Schema representation 5/12/2005 Able Overview 18
ABLE Rules Architecture Application Text XML program Pluggable engines Ruleset Ruleset Text Grammar XML Schema Inference Working Engine Memory ARL Parser ARML Parser Inference Rule APIs Engine ... Variables Rules RuleBlocks Inference Literals Clauses Functions Working Memory Engine Expressions RuleBlock Methods Java classes AbleRuleSet bean 5/12/2005 Able Overview 19
Language Concepts • import and use Java classes, fields, methods • Domain-specific user-defined function libraries • Global variables, input/output variable lists • Rules : assertions, if-then, if-then-else, when-do, while- do, for-loop, predicates • Rule blocks – sets of rules and inference engines • “Pluggable” Inference Engines – control algorithms • Working Memory • AbleRuleSet bean is run-time object 5/12/2005 Able Overview 20
ARL RuleSet Structure import <package>.class; import <package>.class; D D library <package>.class; library <package>.class; A A variables { } ; variables { } ; T T predicates{} ; functions{} ; A A inputs{}; outputs{}; inputs{}; outputs{}; init() ruleblock init() ruleblock processTimerEvent() ruleblock Inf. Engine & controls R R preProcess() ruleblock preProcess() ruleblock processAbleEvent() ruleblock Inf. Engine & controls U U L L process() ruleblock process() ruleblock Inf. Engine & controls catch() ruleblock E E S S postProcess() ruleblock finally() ruleblock <myName>() ruleblock Inf. Engine & controls … <myName>() ruleblock <myName..N>() ruleblock 5/12/2005 Able Overview 21
Recommend
More recommend