Download presentation
Presentation is loading. Please wait.
Published byLoreen McCormick Modified over 8 years ago
1
Building Distributed Software Systems with the Open Agent Architecture SRI International David Martin Adam Cheyer Douglas Moran PAAM ’98
2
SRI International 3/24/98 PAAM ’98 Outline n Overview of OAA n Requirements & Goals n System Architecture n Concluding Remarks
3
SRI International 3/24/98 PAAM ’98 What Is an Agent? Mobile Agents Programs that move among computer hosts Autonomous Agents Based on planning technologies Learning Agents User preferences, collaborative filtering,... Animated Interface Agents Avatars, chatbots,... Simulation-based Entities Data/Info finding, filtering and merging Cooperative Agents Cooperation among distributed heterogeneous programmatic components Examples Voyager, Aglets, Odyssey Robots, Softbots, BDI Microsoft Agent, Julia ModSAF, RoboCup OAA, KQML, FIPA FireFly, MIT Media Lab SIMS, InfoSleuth, IR
4
SRI International 3/24/98 PAAM ’98 Approaches to Building Applications MonolithicApplicationsObject-OrientedApplications Distributed Object Applications OAA Applications Dynamic membership OAA: A framework for integrating a community of software agents in a dynamic, distributed environment
5
SRI International 3/24/98 PAAM ’98 OAA-based Applications 1. Automated Office 2. Unified Messaging 3. Multimodal Maps 4. CommandTalk 5. ATIS-Web 6. Spoken Dialog Summarization 7. Agent Development Tools 8. InfoBroker 9. Rental Finder 10. InfoWiz Kiosk 11. Multi-Robot Control 12. MVIEWS Video Tools 13. MARVEL 14. SOLVIT 15. Surgical Training 16. Instant Collaboration 17.Crisis Response 18. WebGrader 19. Speech Translation 20-25+...
6
SRI International 3/24/98 PAAM ’98 Outline n Overview of OAA n Requirements & Goals u Interoperation u User Interfaces u Software Engineering n System Architecture n Concluding Remarks
7
SRI International 3/24/98 PAAM ’98 Interoperation Goals n Dynamic, distributed environments n Flexibility & ease in: u Assembling communities of autonomous service- providers u Structuring cooperative interactions n Imposing the right amount of structure n Legacy & “owned-elsewhere” applications u Wrappers & surrogates u Integration with standards David Martin: Reference, importance of legacy applications: Pitfalls of Agent-Oriented Development Reference, integration with standards: ADEPT’s use of CORBA David Martin: Reference, importance of legacy applications: Pitfalls of Agent-Oriented Development Reference, integration with standards: ADEPT’s use of CORBA
8
SRI International 3/24/98 PAAM ’98 User Interface Goals n Conceptually natural for users u Make user requests comprehensible to system u Make system results comprehensible to user u Help user understand system complexity … F Multiple autonomous actors F Dynamic communities u … Or not be required to n User as privileged member of agent community n Integrate multimodality n Collaboration
9
SRI International 3/24/98 PAAM ’98 Software Engineering Goals n Minimal effort to create new agents n Encourage reuse n Support lightweight, mobile platforms n Minimize platform & language barriers n Provide economical means of coding interactions
10
SRI International 3/24/98 PAAM ’98 Outline n Overview of OAA n Requirements & Goals n System Architecture u Interagent Communication Language u Providing and Requesting Services u Facilitation u Data Management u Temporal Control / Triggers n Concluding Remarks
11
SRI International 3/24/98 PAAM ’98 OAA Architecture Facilitator Agent Modality Agents Application Agent Application API Meta Agent Registry Support Agent User Interface Agent Interagent Communication Language
12
SRI International 3/24/98 PAAM ’98 Interagent Communication Language n Used by Agents to: u Declare Capabilities u Request Services of Community u Respond to Requests from Other Agents u Manage and Exchange Information n Ex.: ev_post_solve(Goal, Parameters) n Conversation & Content Layers u Conversation defined by event type + params u Content Visible to Facilitator n Advice/Constraints Can Accompany Requests
13
SRI International 3/24/98 PAAM ’98 Providing Services n Declaring capabilities u solvable(Goal, Parameters, Permissions) n Examples of parameters u type: {data, procedure} u test: procedure returning boolean u utility: [0.. 10] n Modifiable at any time u oaa_Declare(Solvables, GlobalParams) solvable(send_message(email, +ToPerson, +Params), [type(procedure), callback(send_mail)], []), solvable(last_message(email, -MessageId), [type(data), single_value(true)], [write(true)])
14
SRI International 3/24/98 PAAM ’98 Requesting Services oaa_Solve(TaskExpr, ParamList) Expressions: logic-based (cf. Prolog) Parameters: provide advice & constraints High-level task types: query, action, inform,... Low-level: solution_limit(N), time_limit(T), parallel_ok(TF), priority(P), address(Agt), reply(Mode), block(TF), collect(Mode),... Ex. oaa_Solve((manager(‘John Bear’,M), phone_number(M,P)), [query]) Exchange of messages handled transparently Interaction pattern determined by parameters
15
SRI International 3/24/98 PAAM ’98 Compound Goals n Address:Goal::Parameters u Address & parameters optional; facilitator responsible for full instantiation u Value-returning parameters u Global & local parameters n Composable using Prolog-style operators n Can be viewed as Prolog goals, extended by: u Address, parameters u Parallel conjunction, disjunction oaa_Solve( (locate(‘Adam Cheyer’, Where)::[strategy(query)], notify(MsgRef, ‘Adam Cheyer’, [at(Where), by(fax)])::[strategy(action)]), [])
16
SRI International 3/24/98 PAAM ’98 OAA Data Management n Declaring & utilizing data solvables u Unified with other types of services u Ex.: solvable(phone(Name, Phone#), [type(data)], []) n Built-in support n Example parameters u Single_value(t_f), unique_values(t_f) u Bookkeeping(t_f), persistent(t_f) u Synonym(synonym, original) u Rules_ok(t_f) n Maintaining data solvables Ex.: oaa_AddData(DataExpr, ParamList)
17
SRI International 3/24/98 PAAM ’98 Collaboration-ready Data Management n Store data using OAA Data Management u oaa_DeclareData(icon(Id, X, Y, PictureType), [shareable, callback(icon_change)]) n Separate code which changes data from results, using callback feature u NOT: { oaa_AddData(icon(hilton, 100, 100, hotel), []) map_Display(icon(hilton, 100, 100, hotel)) } u BUT: { oaa_AddData(icon(hilton, 100, 100, hotel), []) } icon_change(add, icon(Id, X, Y, Picture)) :- map_Display(icon(Id, X, Y, Picture)).
18
SRI International 3/24/98 PAAM ’98 OAA Triggers OAA agents can dynamically register interest in any data change, communication event, or real- world occurrence accessible by any agent. oaa_AddTrigger(Type, Cond, Action, Params) comm:on_send, on_receive message time: “in ten minutes”, “every day at 5pm” data: on_change, on_remove, on_add task: “when mail arrives about...” The actions of triggers may be any ICL expression solvable by the community of agents Trigger Types Purpose Actions Adding a Trigger
19
SRI International 3/24/98 PAAM ’98 Facilitation Provider Requester Facilitator Goal Planning Plan Execution Registry
20
SRI International 3/24/98 PAAM ’98 Facilitator’s Role n Monitors membership of a dynamic community n Transparent delegation & distribution u Goals, information, triggers u Subject to advice & constraints u Yielding a variety of interaction patterns u Exploits parallelism where appropriate n Allows application agents to be lighter-weight n Can provide a blackboard style of interaction n Can be extended to provide mediation services n Coordinator, not controller
21
SRI International 3/24/98 PAAM ’98 Using Speech & NL n User Interface responsible for: u Accepting user input, sending requests, displaying results u Controlling interactions of speech and NL n Complex interpretation processed by external domain agent
22
SRI International 3/24/98 PAAM ’98 Multimodal Interfaces using Parallel Distributed Agents n Competition and cooperation among agents at many levels u Pen input: gesture recognizer vs. handwriting recognizer u Natural language: multiple NL systems (multilingual, diff. capabilities) u Reference Resolution n Multiple modalities for resolving ambiguities u e.g.arrow + “scroll map” vs. arrow + “photo of this hotel”
23
SRI International 3/24/98 PAAM ’98 Multimodal Reference Resolution u Context by object type: “show photo of the hotel” u Deictic: “Find distance from here to here”, “this one” u Positional context: Write “photo?” on hotel u Visual context: “Photo of the [visible] hotel” u Database queries: “show photo of the hotel in Menlo Park” u Discourse: “No, the other one” u User disambiguation through prompting: “Which hotel?”
24
SRI International 3/24/98 PAAM ’98 A Sample Text-to-Speech Agent in C #include ICLTerm capabilities = icl_TermFromStr(“[play(tts, Msg)]”); ICLTerm oaa_AppDoEvent(ICLTerm Event, ICLTerm Params) { if (strcmp(icl_Str(Event), “play”) == 0) { return playTTS(icl_ArgumentAsStr(Event, 2)); } else return NULL; } main() { com_Connect(“parent”, connectionInfo); oaa_Register(“parent”, “tts”, capabilities); oaa_MainLoop(True); } Include libraries List capabilities Define capabilities Agent Startup
25
SRI International 3/24/98 PAAM ’98 A Sample Text-to-Speech Agent in Prolog :- use_module(com). :- use_module(oaa). capabilities([ solvable(play(tts, Msg), [type(procedure), callback(tts_events)], [])]). tts_events(play(tts, Msg), Params) :- tts_api(Msg). start :- capabilities(C), com_Connect(parent, ConnectionInfo), oaa_Register(parent, tts, C), oaa_MainLoop(true). Include libraries List capabilities Define capabilities Agent Startup
26
SRI International 3/24/98 PAAM ’98 OAA and Scalability Facilitator is single point of failure Facilitator is bottleneck for communication Limitations: Solutions? Facilitator Multi-Facilitator topologies Distribution of planning & execution functions of Facilitator + peer-to-peer communication Registry & Planner Agent E Replicated Plan + Exe Facilitator
27
SRI International 3/24/98 PAAM ’98 Summary: OAA Characteristics Open: Extensible: User- friendly: Developer- friendly: Multimodal: Agents can be created in many languages and interface with existing systems Agents can be added or replaced dynamically User as privileged member of agent community; tasks expressible at a high level Unified approach to service provision, data management, temporal control Handwriting, speech, gestures, and direct manipulation can be combined
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.