250 likes | 387 Views
Multi-Agent Description Language in MAGE. Bo Wang Wenpin Jiao Qijia Tian Zhongzhi Shi Lab of Intelligent Information Processing Institute of Computing Technology Chinese Academy of Sciences, China. Agenda. 1. MAGE Architecture 2. Agent Description Language
E N D
Multi-Agent Description Language in MAGE Bo Wang Wenpin Jiao Qijia Tian Zhongzhi Shi Lab of Intelligent Information Processing Institute of Computing Technology Chinese Academy of Sciences, China
Agenda • 1. MAGE Architecture • 2. Agent Description Language • 3. Agent Development based-on MAGE • 4. Conclusions
Agent Research in ICT-IIP • KISE (1994-96) • AOSDE (1996-1998) • MAGE(1998-2000) • AGECOP (2001-)
End Users GUI Agent Running Frame ADL MAS Function Modules MAGE
MAGE • an integrator to integrate • (1) agent running frame • (2) function modules • into agents with specific purpose or function which is described by ADL.
Agent Running Frame Agent ADL Parser Agent Kernel Function 1 Scheduler Function Module Interface Data ┇ ACL Parser Function n ACL Msg Communicator Msg-In Msg-Out
Function Modules • Build-in: java sentences in ADL session • Accessory: *.exe • Dynamic linking: *.dll
Agent Development MAGE--ADL <Agent> ::= <Definition> <Local Address> <Acquaintance Addresses> <Extra Classes> <Capabilities> <Environment Variables> <Sessions>
ADL [Environment Variables] BEGIN int a = 1 END [Sessions] BEGIN Session buy2; End Session Session if a <> 1 test; END [Acquaintance Addresses] BEGIN Facilitator=192.168.0.162:1666 END [Extra Classes] BEGIN Instance=buying2 Constructor=BuyerAgent(agent, "Seller1") END [Capabilities] BEGIN Name=buy2 Type=0 CommandLine= Source=buying2 Name=test Type=1 CommandLine=c:\windows\notepad.exe Source= END
ADL Session … if (performative.equals(“negotiating”)) { double price = calculate_price( ); msg.setPara(“performative”, “negotiation_result”); msg.setPara(“sender”, receiver); msg.setPara(“receiver”, sender); msg.setPara(“price”, price); sendMessage(msg); } … End session
MAGE Working Mechanism • Agent Initialization Stage • Load ADL script • Load function modules; • Initialize communication module; • Send registration information facilitator • Regular Working Stage • REPEAT • Receiving Thread; • Sending Thread; • ENDREPEAT
Applications • Information / Knowledge Acquisition • Automated Negotiation • Group intelligence / swarm • Coordination in Organizational Decision Making (R&D project selection)
Internet Facilitator Spider1 Spider2 Spider Database Knowledge Acquisition
… Internet/ Intranet ApplicationsGroup Intelligence
Services Agent Base Knowledge Management AGECOP Infrastructure Future Research
<Agent> ::= <Definition> <Local Address> <Acquaintance Addresses> <Extra Classes> <Capabilities> <Environment Variables> <Sessions> <Definition> ::= <Name Section> <Description Section> <Name Section> ::= "[Name]" <agent> = <agent_name> <Description Section> ::= "[Description]" BEGIN <description> END <Local Address> ::= "[Local Address]" <agent> = <host_name>:<port> <Acquaintance Addresses> ::= "[Acquaintance Address]" BEGIN {<acquaintance> = <host_name>:<port>}* END <Extra Classes> ::= "[Extra Classes]" BEGIN {<Class>}* END <Class> ::= Instance = <instance name> CONSTRUCTOR = <constructor> <Capabilities> ::= "[Capabilities]" BEGIN {<Capability>}* END
<Capability> ::= NAME = <capability_name> TYPE = <capability_type> CMDLINE = <capability_command_line> SOURCE = <capability_source> <Environment Variables> ::= "[Environment Variables]" BEGIN {<Variable>}* END <Variable> ::= <Variable Type> <variable_name>[ = <initial_value>] <Variable Type> ::= int|boolean|char|string|float <Sessions> ::= "[SESSIONS]" BEGIN {<Session>}* END <Session> ::= SESSION <Actions>; |<If-Then-Else-Sentence>; |<While-Sentence>; |<Convention>; END SESSION <Actions> ::= <capability_command_line>; |"{" <capability_command_line>; <Actions> "}" |<Session> <If-Then-Else-Sentence> ::= IF (<condition>) <Actions> ELSE <Actions> <While-Sentence> ::= WHILE (<condition>) <Actions> <Convention> ::= (<condition>)=><Actions> |(<acl_message>)=><Actions>