Metaglue Agent Architecture
lSupport for synchronous and asynchronous communication among distributed agents lMechanisms for resource discovery and management lRobust recovery mechanisms for failed components
lBuilt-in persistent storage
lSupport for multimodal interactions through speech, gesture, and graphical user interfaces.
http://www.ai.mit.edu/projects/iroom/metaglue
In our research group we think of agents as a programming abstraction that extends the object oriented  programming style.  They are differentiated from other such object in that we think of them as independent entities that do one task well.  Agents also have communications with other agents at the forefront of their design.  An agent itself also has a notion of where it’s running and can use this information to its advantage.

The Metaglue Agent Architecture has been built with several advantages in mind.  For more information I invite you to look at the metaglue website.

 It is built to support synchronous and asynchronous communication among distributed agents. This provides for fast communications across the network.

The metaglue agent architecture provides mechanisms for resource discovery and management.  It holds a catalogue of all the agents available in a particular space.  In the software design meeting scenario described here, this is important because the application can query for the available meeting capture devices in the room, and start the most appropriate available device.  For instance, if a room has only audio recording available, it will start the audio recording.  However, if a room has audio and video recording available, it will start the video recording.

The metaglue agent architecture also provides robust recovery mechanisms for failed components.  If an agent fails, metaglue will restart it.  For instance, if the video agent has failed for any reason, the agent will restart it.


Metaglue has built-in persistent storage.  Agents can save information to a database as they are running.  If an agent dies and is restarted, it can be restarted, keeping its old state by using the information stored in the database.

The Metaglue Agent Architecture also provides support for multimodal interactions through speech, gesture, and graphical user interfaces.  We saw some of this support in the some of the previous diagrams.  For instance, to add speech to an agent, the user need only to provide a grammar describing a set of expected utterances and a handler for speech input events.