2. Outline
• Agent review
• Approaches to building applications
• Agent & interagent programming tips
• Incremental system development & evaluation
• Summary
2/20
3. What is an Agent?
Voyager, Aglets,
Odyssey Mobile Agents
Programs that move among computer hosts
Robots, Softbots, Autonomous Agents
BDI
Based on planning technologies
FireFly, MIT Media Learning Agents
Lab
User preferences, collaborative filtering,...
Microsoft Agent,
Julia
Animated Interface Agents
Avatars, chatbots, ...
ModSAF, RoboCup Simulation-based Entities
SIMS, InfoSleuth, IR Data/Info finding, filtering and merging
OAA, KQML, FIPA Cooperative Agents
Cooperation among distributed
heterogeneous programmatic components
3/20
4. Approaches to Building Applications
Monolithic Object-Oriented Distributed Object
Applications Applications Applications
Objective
Suitable for Internet environment
Virtual community of dynamic services
Adaptable to changing, evolving Dynamic addition
network resources
Flexible interactions among OAA
components Applications
4/20
5. Approaches to Distributed Computing
• Mobile objects
• Blackboard architectures
• Agent communication languages (ACL)
• Publish & subscribe brokers
5/20
6. Mobile Objects (Agents)
• Objects move under their own power (e.g., Voyager, Aglets)
• Advantages
– Network bandwidth for certain classes of problems
– Parallelism - many objects can be spawned
• Disadvantages
– Programmatically specify where to go and what to do, through a known interface
– Little automated support for inter-object cooperation
– Programming language specific (non-heterogeneous)
6/20
7. Blackboard Architectures
• Knowledge Sources read and write tuples from a common information
space
(e.g. LINDA, FLiPSiDE)
• Advantages
– Eliminates explicitly programmed interactions among participants
• Disadvantages
– KS cannot coordinate interactions tuple(abc,1,2,3)
– Polling
7/20
9. Agent Communication Languages
• Communication message types based on speech acts (e.g., ask, tell,
deny) + conversational policies
• Examples: FIPA ACL, KQML
• Advantages
– Rich interaction model, peer-to-peer based
– Standardized message types, content-agnostic
• Disadvantages
– Conformance to specs not universal
– Explicitly coded interactions among participants
Ask
ANS, Service Broker
Reply
9/20
10. Comparison of Distributed Approaches
Distributed Dist. Objects,
Mobile Agents,
ACL, Blackboards, Pub/Sub
Heterogeneous languages Distributed Objects,
ACL, Blackboards
Non-coded interactions Blackboards, Pub/Sub
Parallel Services Blackboards
Compound Expressions (Mobile Agents)
Constraints No
10/20
10/20
11. Agent & Interagent Programming Tips
• Choosing an agent Interface
• Information sharing strategies
• Domain-specific vs. domain-independent agents
• Adding speech & NL to interfaces
11/20
11/20
12. Choosing an Agent Interface
• Natural-language inspired interfaces
– Imperative Verb, Direct Object, ParamList, (Result)
– Parameter lists hold Adjs, Advs & Prepositions as well as extensible programmatic
instruction
• Classes tagged by type
– inform(phone, ringing, Params)
– send_message(MsgRef, Params) :-
memberchk(by(fax), Params)
• Succeed once with list vs. Multiple success
– get(email, message_headers, +Params, -ListOfHeaders)
– phone_number(Person, PhoneNum)
12/20
12/20
13. Information Sharing Strategies (1)
• Example: Phone dialer agent
• 1. Query
– When an agent wants to know the status of the
phone, it asks the Facilitator who asks the phone
agent
– pa: oaa_Declare(status(phone, S),[])
– ?a: oaa_Solve(status(phone, S), [])
• 2. Post (Blackboard)
– The phone agent writes its status to the Facilitator;
agents can query the facilitator for status, and
install a trigger which proactively monitors changes
to status
– pa: oaa_AddData(status(phone, busy), [])
– ia: oaa_Solve(status(phone, S), []),
oaa_AddTrigger(data, status(phone,S), notify(Me,
phone(S)), [on(change)])
13/20
13/20
15. Domain-specific vs. Domain-independent
• Move domain-dependent code into separate agent
• Employ hooks and parameters to allow domain-specific tailoring of
functionality
• Always ask:
Domain-specific or domain independent?
– Phone agent?
– Office interface?
– Notify agent?
– Speech recognition?
– Natural language?
– Facilitator?
15/20
15/20
16. Adding Speech & NL
• User Interface responsible for:
– accepting user input, sending requests, displaying results
– controlling interactions of speech and NL
• Complex interpretation processed by external domain agent
16/20
16/20
17. Incremental System Development & Evaluation
• Collaborative Multimodal Map application adapted for Wizard Of Oz
(WOZ) experiment to elicit data about coordinated use of language
and gesture
17/20
17/20
19. Hybrid Wizard Of Oz Experiment
• Naive user free to write, draw, or speak without constraints imposed
by current technology
• Wizard must respond quickly and accurately by using existing means,
including pen and voice
• Simultaneous evaluation of:
– Experienced user manipulating real system
– New user, providing data for future extensions
• Bootstrap effect: continuous loop from data to theory, to system
enhancement
• Improvements from data analysis quantifiable
• General-purpose approach
19/20
19/20
20. Hybrid WOZ: Implementation
• System logging and playback “for free” using OAA collaboration
facilities
• “Subject mode”: functional interpretation (mostly) turned off
• Addition of simple Wizard Feedback panel (separate agent) for text-
to-speech messages
(e.g., “Function not available.”)
20/20
20/20
21. Summary
• Review of designing issues in software agents
• Not good for every application, but good for:
– integrating numerous components which need to cooperate, often across language
boundaries
– supporting media translation
– distributed reference resolution
– tasking through adaptable or multimodal user interfaces
– human/agent collaborative systems & incremental dvpt
– exploring direct manipulation/task delegation tradeoffs
21/20
21/20