Skip to content

Instantly share code, notes, and snippets.

@iomz
Last active July 29, 2021 20:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save iomz/538068a3dff7c42bf86a428e67af261a to your computer and use it in GitHub Desktop.
Save iomz/538068a3dff7c42bf86a428e67af261a to your computer and use it in GitHub Desktop.

Terminology and Tooling in Mutli-agent System (MAS)

MAS is a computerized system composed of multiple interacting intelligent agents to solve problems that cannot be solved by a monolithic approach.

The definition of intelligent agents varies between different approaches such as methodic, functional, procedural approaches, algorithmic search, or reinforcement learning.

In this note, I attempt to summarize the terminology and tooling used in one of the MAS approaches; procedural reasoning systems (PRS) based on the belief-desire-intention (BDI) model.

AgentSpeak

AgentSpeak [1] is a programming language to formalize BDI architecture for (cognitive) autonomous agents as an abstraction of one of the implemented PRS, and falls in the logic programming paradigm with horn-clauses. The file extention of AgentSpeak is .asl as in AgentSpeak(L). Due to the nature of horn-clauses, it is difficult to learn the operators and the triggering events notations as shown below.

Types of triggering events (from [2])

Jason is an interpreter implemented in Java and the language interpreted by Jason is an "extended version" of AgentSpeak [2] – the extension includes user-defined components (e.g., internal actions) programmed in Java. Jason also provides a platform (i.e., the Swing-based GUI called "MAS Console") for the development of multi-agent systems. For this reason, Jason is often used to also refer to the extended language. Jason initially stood for "Java-based Agentspeak interpreter used with Saci for multi-agent distribution Over the Net", but it is not based only on SACI anymore.

It is important to notice that the user-defined components in Jason are bound to the Java ecosystem and this constrains AgentSpeak in terms of JVM, tools, IDEs, etc. python-agentspeak is an alternative for AgentSpeak interpreter, and customized actions can be written as Python code in an analogous way to Jason, for example. Meanwhile, Embedded-BDI translates AgentSpeak code to a corresponding C++ header using the Jason parser.

JaCaMo is a MAS framework that is rooted in the JaCa programming model which is designed and programmed as a set of agents which work and cooperate inside a common environment. In JaCa, Jason is adopted to program the agents, and CArtAgo as the framework to program the endogeneous environments (which are mapped to the exogeneous (physical) environments) for those agents. The autonomous BDI agents in JaCaMo MAS are organized by Moise. Hence, JaCaMo is a hierachical MAS framework consisting of three levels: organization (Moise) -> agents (Jason) -> environments (CArtAgO). All the (major) implementations for the three levels are in Java, so the researchers and developers need to be familiar with Java.

Artifiact

Artifacts in the context of JaCaMo are the basic computational bricks defining the environment structure and behavior, representing those resources and tools that agents can create, discover, perceive, and use at runtime. Each artifact provides operations and observable properties defining an artifact’s usage interface, used by agents to observe and operate on artifacts. Operation execution could generate updates to the observable properties and specific observable events. [3] Together with agents, Agents & Artifacts (A&A) is based on interdisciplinary studies involving Activity Theory and Distributed Cognition as main conceptual background frameworks. Concretely, an example of an artifact is a Java class instance implemented with CArtAgO's Artifact abstract class.

Manual

Manual, formally artifact manual, represents the description of the operations, observable properties, and observable events provided by an artifact. These can be mapped well with the interaction affordances in the W3C Web of Things Thing Description.

CArtAgO stands for Common ARTifact infrastructure for AGents Open environments and is used to program the virtual, endogeneous environments for the agents in a MAS. CArtAgO programs artifacts for the endogenous environments whose topology is described as workspaces, where arbitrary agents can join and work together with each other. Each workspace contains a dynamic set of artifacts and multiple workspaces can form a workspace environment. CArtAgO is meant to be orthogonal to the specific agent model or platform adopted to define agent architecture and behavior. However, the actualization of CArtAgO is a Java library that allows developers to program the artifacts of the endogenous environments in Java.

MOISE

Originally, the MOISE (Model of Organization for multI-agent SystEms) is structured along with three levels: (i) the behaviors that an agent is responsible for when it adopts a role (individual level), (ii) the interconnections between roles (social level), and (iii) the aggregation of roles in large structures (collective level). [4] These organizational specifications (OS) are to be used both by the agents to reason about their organization and by an organization platform that enforces that the agents follow the specification. The population of agents functioning under an OS is called organizational entity (OE). Later, MOISE+ [5] was developed to build (i) as roles, (ii) as (role) relations, and (iii) as groups with concepts such as inheritance, compatibility, cardinality, and sub-groups. The Moise implementation is a Java library that adopts MOISE+ to describe the OS/OE for MAS.

The Foundation for Intelligent Physical Agents (FIPA) is an international organization that is developing specifications for interoperability among intelligent agents. The FIPA Request Interaction Protocol, for example, is a standard for request interactions among agents. It is noteworthy that this protocol standard only defines the flow of interactions as a meta-model. The separate specifications define the message transport services, and HTTP can be the transport protocol, for example.

Yggdrasil is a platform for Hypermedia MAS [6] built with Vert.x, a tool-kit for building reactive applications on the JVM. The Hypermedia MAS provides the concrete interactions among heterogeneous agents in a distributed hypermedia environment. The environment in a MAS is a first-class abstraction with dual roles: (i) the environment provides the surrounding conditions for agents to exist, and (ii) the environment provides an exploitable design abstraction for building MAS applications. [7] To this end, IRIs of the W3C WoT TDs are instantiated as Browser artifacts in the hypermedia environment in Yggdrasil which can then be interacted by agents as they would interact with artifacts in a CArtAgO workspace. TD's protocol bindings allow the operations to be seamlessly mapped in the exogenous environments, and thus a hypermedia MAS realizes an agent-oriented organization of cyber-physical systems.

References

[1] Rao, Anand S. "AgentSpeak (L): BDI agents speak out in a logical computable language." European workshop on modeling autonomous agents in a multi-agent world. Springer, Berlin, Heidelberg, 1996.

[2] Bordini, Rafael H., Jomi Fred Hübner, and Michael Wooldridge. Programming multi-agent systems in AgentSpeak using Jason. Vol. 8. John Wiley & Sons, 2007.

[3] Boissier, Olivier, et al. "Multi-agent oriented programming with JaCaMo." Science of Computer Programming 78.6 (2013): 747-761.

[4] Hannoun, Mahdi, et al. "MOISE: An organizational model for multi-agent systems." Advances in Artificial Intelligence. Springer, Berlin, Heidelberg, 2000. 156-165.

[5] Hübner, Jomi Fred, Jaime Simao Sichman, and Olivier Boissier. "A model for the structural, functional, and deontic specification of organizations in multiagent systems." Brazilian Symposium on Artificial Intelligence. Springer, Berlin, Heidelberg, 2002.

[6] Ciortea, Andrei, Olivier Boissier, and Alessandro Ricci. "Engineering world-wide multi-agent systems with hypermedia." International Workshop on Engineering Multi-Agent Systems. Springer, Cham, 2018.

[7] Weyns, Danny, Andrea Omicini, and James Odell. "Environment as a first class abstraction in multiagent systems." Autonomous agents and multi-agent systems 14.1 (2007): 5-30.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment