Skip to content

jasonEmbedded StdLib

Nilson Lazarin edited this page Aug 20, 2025 · 2 revisions

JasonEmbedded StdLib

Jason Embedded is a spin-off extended version ofthe Jason framework – that provides autonomy, pro-activity, social ability,adaptability, and fault-tolerance to IoT devices. It allows programming agentsdedicated to exchanging KQML messages between different devices andagents dedicated to controlling sensors and actuators and capable of decidingwhen to perceive the environment or yet can define a strategy to gather percep-tions from sensors. Besides, allow the programming of Open MAS, whereagents can move from one system to another using an IoT network.

JasonEmbedded Distributions is composed by ARGO, Communicator, Mailer, and Velluscinum.

Read more:

  • Pantoja, C.E., Jesus, V.S.d., Lazarin, N.M., Viterbo, J. (2023). A Spin-off Version of Jason for IoT and Embedded Multi-Agent Systems. In: Naldi, M.C., Bianchi, R.A.C. (eds) Intelligent Systems. BRACIS 2023. Lecture Notes in Computer Science(), vol 14195. Springer, Cham. https://doi.org/10.1007/978-3-031-45368-7_25

ARGO

ARGO BDI-agent Architecture is a customized Jason agent architecture, capable of sensing and acting directly in the exogenous environment (physical world) over the Javino serial communication protocol.

New Action provided Description
.port(S) Defines a serial communication port with an IoT low-end device. Where S is a literal that represents a serial port (i.e., ttyACM0).
.limit(N) Defines an interval for the cycle of environmental perception. Where N is a positive number (N>0) that represents an interval in milliseconds.
.percepts(close|open) Listens (open) or not (close) the environmental perceptions.
.act(O) Sends an order to the IoT low-end device to execute. Where O is a literal that represents an order for the microcontroller to execute.

Read more:

  • Pantoja, C.E., Stabile, M.F., Lazarin, N.M., Sichman, J.S. (2016). ARGO: An Extended Jason Architecture that Facilitates Embedded Robotic Agents Programming. In: Baldoni, M., Müller, J., Nunes, I., Zalila-Wenkstern, R. (eds) Engineering Multi-Agent Systems. EMAS 2016. Lecture Notes in Computer Science(), vol 10093. Springer, Cham. https://doi.org/10.1007/978-3-319-50983-9_8

  • Lazarin, N.M., Pantoja, C.E., Viterbo, J. (2024). Dealing with the Unpredictability of Physical Resources in Real-World Multi-agent Systems. In: Rocha, A.P., Steels, L., van den Herik, J. (eds) Agents and Artificial Intelligence. ICAART 2023. Lecture Notes in Computer Science(), vol 14546. Springer, Cham. https://doi.org/10.1007/978-3-031-55326-4_3

Communicator

Communicator BDI-agent Architecture is a customized Jason agent architecture, with the ability to communicate with agents from other MAS, which also have Communicator agents. It allow agents from different MAS to interact, exchange knowledge and even collaborate between them. These agent architecture is a client instance of the ContextNet IoMT Middleware.

New Action provided Description
.connectCN(G,E,U) Joins an IoT network. Where: G is a literal that represents the FQDN or the network address of an gateway; E is a number that represents the network port of an gateway; U is a literal that represents the identification (RFC 9562 Universally Unique IDentifiers (UUIDs)) of the device in the network.
.disconnectCN Disconnects at the ContextNet network.
.sendOut(D,f,M) Dispatches a message to another MAS. Where D is a literal that represents the identification (UUID) of the recipient MAS; f is a KQML illocutionary force (tell | untell | achieve | unachieve | askOne | askAll | askHow | tellHow | untellHow); M is a literal that represents the message.
.moveOut(D,b,A) Carries over the agents to other MAS. Where D is a literal that represents the identification (UUID) of the recipient MAS; b is a bio-inspired protocol (inquilinism | mutualism | predation); A is one, all, or a set of agents (i.e., all, agent or [agent1, agent2, agentn])
.guidance(w,s,D,t,r) Defines if a communication or migration can be accepted or rejected. Where: w is the way that defines if the guidance or policy applies to input or output messages (input|output); s is the scope that defines if a guidance or policy is applied to communication, migration, or both (communication|migration|all); D is a literal that represents the address (with regex support) that the guidance applies; t it the type of message that defines the illocutionary force or bio-inspired protocol of the message (all | kqml |tell | untell | achieve | unachieve | askOne | askAll | askHow | tellHow | untellHow | bioinsp | inquilinism | mutualism | predation); r is the resolution that determines if the guidance or policy will accept or drop the communication (accept|drop).
.policy(w,s,t,r) Defines the accepting or rejecting communication or migration if there isn’t applicable guidance. Where: w is the way that defines if the guidance or policy applies to input or output messages (input|output); s is the scope that defines if a guidance or policy is applied to communication, migration, or both (communication|migration|all); t it the type of message that defines the illocutionary force or bio-inspired protocol of the message (all | kqml |tell | untell | achieve | unachieve | askOne | askAll | askHow | tellHow | untellHow | bioinsp | inquilinism | mutualism | predation); r is the resolution that determines if the guidance or policy will accept or drop the communication (accept|drop).

Read more

  • Souza de Jesus, Vinicius & Pantoja, Carlos. (2025). Comunicabilidade e Mobilidade Entre Sistemas Multiagentes Embarcados e Distribuídos. Dissertação (mestrado) - Instituto de Computação, Universidade Federal Fluminense (UFF). Niterói https://doi.org/10.13140/RG.2.2.10479.96163.

  • PINTO, Vinicius Machado; JATOBA, Nicolas da Silva; LAZARIN, Nilson Mori. A proposal for migration policies for an agent society. In: WORKSHOP-SCHOOL ON AGENTS, ENVIRONMENTS, AND APPLICATIONS (WESAAC), 17. , 2023, Pelotas/RS. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2023 . p. 8-13. ISSN 2326-5434. DOI: https://doi.org/10.5753/wesaac.2023.33444.

  • Souza de Jesus, Vinicius & Bezerra, Eduardo & Pantoja, Carlos. (2020). Transporte de Agentes Cognitivos Baseado nos Conceitos de Relações Ecológicas. Projeto Final (Graduação) - Centro Federal de Educação Tecnológica Celso Suckow da Fonseca (Cefet/RJ). http://doi.org/10.13140/RG.2.2.15497.42086.

  • NUNES, Palloma da S. M.; ALMEIDA, Igor M. de; PICANÇO, Thiago C.; PANTOJA, Carlos E.; SAMYN, Leandro M.; JESUS, Vinicius S. de; MANOEL, Fabian C. P. B.. Exploring Communication Between Embedded Multi-Agent Systems in Smart Environments for IoT: A Proposed Laboratory. In: WORKSHOP-SCHOOL ON AGENTS, ENVIRONMENTS, AND APPLICATIONS (WESAAC), 12. , 2018, Fortaleza/CE. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2018 . p. 238-243. ISSN 2326-5434. DOI: https://doi.org/10.5753/wesaac.2018.33272.

Mailer

Mailer BDI-agent Architecture to allow agents to communicate based on email exchange. The proposed architecture allows agents from an MAS to communicate with other agents. It also allows humans to interact with agents by sending and receiving emails (IMAP and SMTP).

New Action provided Description
.mailer.credentials(E,K) Set email credentials. Where E is a string that represents the email account (e.g., "agent@example.com"); K is a string that represents the e-mail password.
.mailer.eMailService([I,p],[O,q]) Set email provider configurations. Where I is a string that represents the FQDN of the input e-mail server (e.g., "imap.example.com"); p is a literal that represents the input protocol (e.g., imaps); O is a string that represents the FQDN of the output email server(e.g., "smtp.example.com"); q is a literal that represents the output protocol (e.g., smtpOverTLS).
.mailer.sendEMail(D,f,M) Dispatches a email message to another MAS or Human. Where D is a literal that represents the destination email recipient; f is a illocutionary force (tell | untell | achieve | unachieve); M is a literal that represents the message.

Read more

  • Lazarin, N.M., de Souza, J.P.B., Pantoja, C.E., Alexandre, T., Viterbo, J. (2025). Human and BDI-Agent Interaction via KQML Messages over IMAP and SMTP. In: Mathieu, P., De la Prieta, F. (eds) Advances in Practical Applications of Agents, Multi-Agent Systems, and Digital Twins: The PAAMS Collection. PAAMS 2024. Lecture Notes in Computer Science(), vol 15157. Springer, Cham. https://doi.org/10.1007/978-3-031-70415-4_15

  • Souza, João & Pantoja, Carlos & Lazarin, Nilson. (2023). Comunicação entre SMA Embarcados: Uma Arquitetura Baseada em Protocolos da Camada de Aplicação. Projeto Final (Graduação) - Centro Federal de Educação Tecnológica Celso Suckow da Fonseca (Cefet/RJ). http://doi.org/10.13140/RG.2.2.21002.44481

Velluscinum

Velluscinum Middleware allows using digital assets in the relationships between cognitive agents to represent the transfer of funds, registration of ownership of artifacts, declaration of promises or agreements, and dissemination of knowledge. It comprises several new internal actions that operate in the agents’ dimension, allowing them to manipulate assets and wallets directly in the DLT. So, the agents can create and transfer divisible and indivisible assets and manage digital wallets on a permissioned DLT (BigChainDB).

New Action provided Description
.velluscinum.buildWallet(w) Generates a digital wallet and returns the belief: w(P,Q). Where P e Q are literals that represent the agent's key pair.
.velluscinum.deployNFT(S,P,Q,I,M,b) Registers an asset and returns the belief: b(A). Where A is a literal that represents a indivisible asset; S is a literal that represents the address of a DLT node; P and Q are literals that represent the agent's key pair; I is a key-value array that represents the immutable data of an asset; M is a key-value array representing asset or transaction metadata;
.velluscinum.transferNFT(S,P,Q,A,R,M,b) Transfers an asset and returns the belief: b(T). Where T is a literal that represents a transaction performed in the DTL; S is a literal that represents the address of a DLT node; P and Q are literals that represent the agent's key pair; A is a literal that represents a indivisible asset; R is a literal that represents the public key of a recipient agent; M is a key-value array representing asset or transaction metadata;
.velluscinum.deployToken(S,P,Q,I,V,b) Creates V units from an asset, returns the belief: b(C). Where C is a literal that represents a divisible asset; S is a literal that represents the address of a DLT node; P and Q are literals that represent the agent's key pair; I is a key-value array that represents the immutable data of an asset.
.velluscinum.transferToken(S,P,Q,C,R,V,b) Transfers V units of C and returns the belief: b(T). Where T is a literal that represents a transaction performed in the DTL; S is a literal that represents the address of a DLT node; P and Q are literals that represent the agent's key pair; C is a literal that represents a divisible asset; R is a literal that represents the public key of a recipient agent; V is a literal that represents the number of parts of a C.
.velluscinum.stampTransaction(S,P,Q,T) Stamps a transaction (T). Where S is a literal that represents the address of a DLT node; P and Q are literals that represent the agent's key pair.
.velluscinum.tokenBalance(S,P,Q,C,q) Check the wallet Q and return the belief: q(C,V). Where C is a literal that represents a divisible asset; V is a literal that represents the number of parts of a C; S is a literal that represents the address of a DLT node; P and Q are literals that represent the agent's key pair.

Read more

  • Mori Lazarin, N., Machado Coelho, I., Pantoja, C.E., Viterbo, J. (2023). Velluscinum: A Middleware for Using Digital Assets in Multi-agent Systems. In: Mathieu, P., Dignum, F., Novais, P., De la Prieta, F. (eds) Advances in Practical Applications of Agents, Multi-Agent Systems, and Cognitive Mimetics. The PAAMS Collection. PAAMS 2023. Lecture Notes in Computer Science(), vol 13955. Springer, Cham. https://doi.org/10.1007/978-3-031-37616-0_17

Clone this wiki locally